Jim Blandy [Sun, 18 Jul 1993 06:40:09 +0000 (06:40 +0000)]
* files.el (insert-directory): Doc fix.
* files.el (insert-directory): If FULL-DIRECTORY-P is non-nil,
add "." component to the end of the path, so that if file is a
symlink, we get the contents of the directory, not the symlink
itself.
Jim Blandy [Sun, 18 Jul 1993 06:29:19 +0000 (06:29 +0000)]
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
use XrmSetDatabase only when HAVE_X11R5 is defined.
* xfns.c (Vx_resource_name): Renamed from Vxrdb_name, and made a
lisp-visible variable, so lisp/term/x-win.el can set it. Doc it
for "internal use only"; no need for NEWS entry.
(validate_x_resource_name): New function.
(Fx_get_resource): Doc fix. References to Vxrdb_name renamed. Call
validate_x_resource_name.
(x_window): References to Vxrdb_name renamed. Call
validate_x_resource_name.
(Fx_open_connection): References to Vxrdb_name renamed. Instead
of setting and validating its value here, just call
validate_x_resource_name.
(syms_of_xfns): Add DEFVAR_LISP for Vx_resource_name.
* xfns.c (x_set_frame_parameters): Don't set the frame's size and
position unless those parameters are actually specified in ALIST.
* xrdb.c: Implement search for app-defaults directory and
localized default databases, along with some other functionality
provided by Xt.
#include <stdio.h>, since we call sprintf.
[emacs] (malloc, realloc, free): #define these to xmalloc,
xrealloc, and xfree.
(x_get_string_resource, file_p): Add forward declarations for
these.
(x_customization_string): New variable.
(x_get_customization_string): New function.
(gethomedir): Return malloc'ed space of the right size, instead of
writing into a fixed-size buffer; this means that our callers do
not impose an arbitrary limit on file name length.
(magic_file_p): Rewrite of decode_magic; actually do the
substitutions, instead of expanding all %-escapes to "". Support
the customization string. Return 0 or the expanded file name,
instead of just zero or one. Allocate the space for the expanded
file name ourselves, instead of writing into a fixed-size buffer
passed to us; this removes an arbitrary limit.
(search_magic_path): Rewrite of magic_searchpath_decoder. Return
0 or the expanded file name, instead of just zero or one.
Allocate the space for the expanded file name ourselves, instead
of writing into a fixed-size buffer passed to us; this means that
our callers do not impose an arbitrary limit on file name length.
(get_system_app): Changed to work with search_magic_path.
(get_user_app): Rewritten to work with search_magic_path, and not
to assume that the values of XAPPLRESDIR is a single directory.
(get_user_db): Properly use the new version of gethomedir.
(get_environ_db): Remove arbitrary limit on length of host name.
(x_load_resources): Take a new argument, myname. Call get_user_db
early to obtain the customization string.
Changes to stand-alone testing code.
* xfns.c (Fx_open_connection): Set Vxrdb_name early, and pass it
to x_load_resources.
Jim Blandy [Sun, 18 Jul 1993 06:28:40 +0000 (06:28 +0000)]
* window.c [not MULTI_FRAME] (Fdelete_windows_on): Set FRAME
argument to Qt, instead of trying to typecheck it.
* window.c (Fdelete_windows_on): New optional argument FRAME; if
nil, delete windows on all frames. If t, delete windows on the
selected frame only. If a frame, delete windows on that frame
only.
* window.c (Fnext_window, Fprevious_window): Put these docstrings
in comments; the strings are too long for some C compilers.
Jim Blandy [Sun, 18 Jul 1993 06:28:12 +0000 (06:28 +0000)]
* intervals.c (split_interval_left, split_interval_right): Change
OFFSET argument of these functions to be origin 0, not origin 1.
This is what all the callers currently want.
* intervals.c, textprop.c: All callers changed.
* textprop.c (Ftext_property_not_all): Renamed from
Ftext_property_all, and changed sense of return value, so that it
returns useful information if not all characters have properties
EQ to value. Now all the existential and universal questions can
be asked.
* textprop.c (syms_of_textprop): Don't forget defsubr for
Stext_property_all.
* textprop.c (Ftext_property_any, Ftext_property_all): Use EQ to
compare property values, not Fequal.
* textprop.c (Ftext_property_any, Ftext_property_all): New
functions, from David Gillespie.
* intervals.h (Ftext_property_any, Ftext_property_all): Declare them.
Jim Blandy [Sun, 18 Jul 1993 06:27:38 +0000 (06:27 +0000)]
* termhooks.h: In order to avoid declaring struct input_event
(which contains Lisp_Objects) in those .c files which need access
to the terminal hooks but don't #include lisp.h (like cm.c), test
to see if the macro CONSP is #defined. We used to test XINT, but
config.h will #define that everywhere on systems that use tailored
tagging schemes.
Jim Blandy [Sun, 18 Jul 1993 06:26:28 +0000 (06:26 +0000)]
* print.c (float_to_string): Distinguish between a precision of
zero and an omitted precision. Do allow %.0f to produce strings
containing no decimal point or exponent.
(syms_of_print): Doc fix for float-output-format.
Jim Blandy [Sun, 18 Jul 1993 06:26:10 +0000 (06:26 +0000)]
Consistently use the mark bit of the root interval's parent field
to say whether or not the interval tree has been visited (and skip
it when revisited), and the mark bit of the plist field to say
whether or not that interval has been visited (and abort if
revisited); don't try to use the plist mark bit for both
meanings.
* alloc.c (mark_interval_tree): Don't test if the interval tree
has already been visited here; let the MARK_INTERVAL_TREE macro do
that; avoid function call overhead. Mark the interval tree as
having been visited by setting TREE->parent's mark bit.
(MARK_INTERVAL_TREE): If the tree has been visited (according to
I->parent's mark bit), don't call mark_interval_tree.
(gc_sweep): Rebalance the interval trees of those large strings
which are still alive. This also clears the mark bits of those
trees' root intervals' parent fields.
(compact_strings): Rebalance the interval tree of each small
strings which is still alive. This also clears the mark bits of
that tree's root interval's parent field. Since the string has
moved, update the root interval's parent pointer to contain the
new address.
* lisp.h (struct interval): Doc fix; explain the roles of the mark
bits of the parent and plist members.
Jim Blandy [Sun, 18 Jul 1993 06:25:40 +0000 (06:25 +0000)]
* keyboard.c (read_key_sequence): Accept both strings and vectors
as bindings in function-key-map.
* keymap.c (Vfunction_key_map in syms_of_keymap): Doc fix.
Jim Blandy [Sun, 18 Jul 1993 06:25:09 +0000 (06:25 +0000)]
* keyboard.c (read_key_sequence): Accept both strings and vectors
as bindings in function-key-map.
* keymap.c (Vfunction_key_map in syms_of_keymap): Doc fix.
* keyboard.c (Fsuspend_emacs): Pass selected_frame as the first
argument to change_frame_size, not 0. This function may be called
in an Emacs compiled with multi-frame support.
Jim Blandy [Sun, 18 Jul 1993 06:24:48 +0000 (06:24 +0000)]
* textprop.c (Ftext_property_any, Ftext_property_all): New
functions, from David Gillespie.
* intervals.h (Ftext_property_any, Ftext_property_all): Declare them.
Jim Blandy [Sun, 18 Jul 1993 06:24:25 +0000 (06:24 +0000)]
* intervals.c (split_interval_left, split_interval_right): Change
OFFSET argument of these functions to be origin 0, not origin 1.
This is what all the callers currently want.
* intervals.c, textprop.c: All callers changed.
* intervals.c (graft_intervals_into_buffer): Properly compute
length of buffer.
Jim Blandy [Sun, 18 Jul 1993 06:23:32 +0000 (06:23 +0000)]
* dispnew.c (direct_output_for_insert): By the time this function
is called, we have already inserted the character into the buffer;
the proper buffer position to pass to compute_char_face is point
- 1, not point.
Jim Blandy [Sun, 18 Jul 1993 06:21:42 +0000 (06:21 +0000)]
* term/x-win.el: Include (invocation-name) in the error messages
which might occur during startup.
* term/x-win.el: Make the `-rn NAME' option specify a resource
name, as documented, and not a resource database string. Make
`-name NAME' act like `-rn NAME' and also set the name of the
initial frame.
(command-switch-alist): Process the `-rn' and `-name' options
using the x-handle-name-rn-switch function.
(x-handle-name-rn-switch): New function, which sets the
x-resource-name variable.
(opening connection): Make sure x-resource-name is valid. If it's
not a string, set it to (invocation-name), with any periods or
asterisks changed to hyphens.
* term/x-win.el: Make the `-xrm STRING' option specify a resource
database string. `-rn' used to behave this way.
(command-switch-alist): Process the `-xrm' switch using
x-handle-xrm-switch.
(x-handle-xrm-switch): Renamed from x-handle-rn-switch; this
function does the right thing for `-xrm', not for `-rn'.
* term/x-win.el: Recognize affirmative values for reverseVideo
properly. Include "on" in the list of recognized values.
Jim Blandy [Sun, 18 Jul 1993 06:20:15 +0000 (06:20 +0000)]
* hippie-exp.el: Renamed from hippie.el.
Changes from Anders Holst, to bring hippie-expand up to version 1.2:
* hippie-exp.el (hippie-expand-max-buffers): New variable.
(try-expand-line-all-buffers, try-expand-list-all-buffers,
try-expand-dabbrev-all-buffers): Use it.
(try-expand-list, try-expand-list-all-buffers): New functions.
(he-string-beg, he-string-end, he-search-loc): These values are
now markers, not integers. Uses changed.
(he-reset-string, he-substitute-string): Use a marker to preserve
the old position of point.
(try-expand-all-abbrevs): handle case the same way as the
usual expand-abbrev (which is not a very good way, but for
consistency...).
(he-dabbrev-beg): Use `skip-syntax' instead of `skip-chars', to
adjust its behavior to different modes.
(hippie-expand): Don't messages which try function it is using,
when the expansion itself is done in the minibuffer (it was very
annoying to have the message obscuring the expansion).
(try-complete-file-name, try-complete-file-name-partially,
try-complete-lisp-symbol, try-complete-lisp-symbol-partially,
try-expand-line, try-expand-line-all-buffers,
try-expand-all-abbrevs, try-expand-dabbrev,
try-expand-dabbrev-all-buffers): No unnecessary "resetting" of the
epansion, when no expansion is done (caused the buffer to be
marked as changed, although nothing was done, among other things).
(he-reset-string): Undoing of last expansion at a later occasion, now
undoes correctly (before, it garbled things up).
(make-hippie-expand-function): now uses "(function ...)"
instead of "'" (matters for compilation).
(try-expand-line, try-expand-line-all-buffers,
he-line-search-regexp): uses `comint-prompt-regexp' instead of
`shell-prompt-pattern', to strip off prompt in process buffers.
Jim Blandy [Sun, 18 Jul 1993 06:18:45 +0000 (06:18 +0000)]
* bytecomp.el (byte-compile-from-buffer): Bind float-output-format
to "%.20e", not "%20e"; the latter is always ignored, since it
doesn't have a decimal point after the percent sign.
Jim Blandy [Sun, 18 Jul 1993 06:12:49 +0000 (06:12 +0000)]
* etags.c (print_help): Break up the very long strings containing
the help message into shorter strings, to placate chintzy C
compilers which can't handle strings that long.
Jim Blandy [Sun, 18 Jul 1993 06:10:46 +0000 (06:10 +0000)]
* Makefile.in (src/Makefile): Propagate C_SWITCH_SYSTEM to the src
directory's makefile. This allows the invocation of CPP which
builds xmakefile to receive these switches. The SunSoft C
preprocessor inserts spaces between tokens if it doesn't get the
-Xs flag requested in src/s/sol2.h.
Richard M. Stallman [Sun, 18 Jul 1993 04:47:10 +0000 (04:47 +0000)]
Enable the hook only if window-system.
Clear blink-paren-function at the same time.
(show-paren-command-hook): If after a closeparen,
highlight that closeparen as well as matching open.
Use a different color for a mismatch, if color screen.
Richard M. Stallman [Sat, 17 Jul 1993 01:43:00 +0000 (01:43 +0000)]
(revert-buffer): Make menu-enable form more accurate
using revert-buffer-function and verify-visited-file-modtime.
(menu-bar-help-menu): Put back under global-map.
(menu-bar-final-items): Set it.
Roland McGrath [Fri, 16 Jul 1993 20:30:18 +0000 (20:30 +0000)]
(comint-{next,prev}-prompt, comint-send-eof): New functions.
(comint-mode-map): Bind C-c C-n, C-c C-p, and C-c C-d to those.
Bind C-c C-y to comint-previous-input, for compatibility with v18 shell.el.
Richard M. Stallman [Fri, 16 Jul 1993 04:19:04 +0000 (04:19 +0000)]
(rmail-mail-new-frame): New variable.
(rmail-start-mail): New function.
(rmail-mail, rmail-continue, rmail-reply, rmail-forward)
(rmail-retry-failure): Use rmail-start-mail.
Richard M. Stallman [Thu, 15 Jul 1993 06:56:17 +0000 (06:56 +0000)]
(read_char_menu_prompt): If the user rejects a menu,
return t. This makes read_char also return t.
(read_key_sequence): If read_char returned t, return -1.
(Fread_key_sequence): If read_key_sequence returned -1, quit.
(command_loop_1): If read_key_sequence returned -1, loop around.
Jim Blandy [Thu, 15 Jul 1993 04:58:59 +0000 (04:58 +0000)]
* keyboard.c (menu_bar_one_keymap): If the key's binding is the
symbol `undefined', don't try to take that symbol's cdr before
passing it to menu_bar_item; pass the `undefined' binding itself,
so menu_bar_item can remove bindings for the same key from result.
Roland McGrath [Thu, 15 Jul 1993 01:55:13 +0000 (01:55 +0000)]
(gud-debugger-startup): Replaced with gud-massage-args.
(gud-{gdb,sdb,xdb}-debugger-startup): Replaced with gud-*-massage-args.
(gdb, sdb, xdb): Argument is command line, not args for it. Remove
debugger name from prompt and put it in the default input instead.
Overload gud-massage-args instead of gud-debugger-startup.
(gud-chop-words): New function; subr for gud-common-init.
(gud-common-init): Argument is command line, not args for it.
Rewritten to use gud-chop-words instead of temp buffer and kludge involving
read. Find the program name as the first word of the command line.
Use make-comint and gud-massage-args in place of gud-debugger-startup.
Expand the file name before passing it to gud-massage-args.
Roland McGrath [Wed, 14 Jul 1993 23:36:04 +0000 (23:36 +0000)]
(cookie-cache): New defvar.
(cookie-snarf): Cache cookies in `cookie-cache', not in obarray (idiot).
Also store the modtime and punt the cache when it changes.
Jim Blandy [Tue, 13 Jul 1993 03:21:39 +0000 (03:21 +0000)]
* autoload.el (generate-file-autoloads): Correctly detect when the
buffer receiving the autoload forms is in a parent of or the same
directory as FILE, even in the presence of symlinks.
Richard M. Stallman [Mon, 12 Jul 1993 23:32:43 +0000 (23:32 +0000)]
(Qundefined): New variable.
(syms_of_keyboard): Set up Qundefined.
(menu_bar_items): Don't reverse the items.
Process the maps in reverse order.
(menu_bar_item): If definition is `undefined',
delete any menu bar item already made, and don't make one.
Richard M. Stallman [Fri, 9 Jul 1993 20:46:42 +0000 (20:46 +0000)]
(rmail-output): If file is an Rmail file,
use rmail-output-to-rmail-file.
(rmail-output-to-rmail-file): If file exists
and is not an Rmail file, use rmail-output.
If we find an element in rmail-output-file-alist, eval it.
(rmail-file-p): New function.
(rmail-output-file-alist): Now contains expressions to eval.
Jim Blandy [Fri, 9 Jul 1993 19:44:58 +0000 (19:44 +0000)]
* etags.c (alloca): removed all references to it.
(main): now calls xnew instead of alloca for portability.
(../src/config.h): included only if HAVE_CONFIG_H.
(const): void definition removed--config.h takes care of it.
Richard M. Stallman [Fri, 9 Jul 1993 18:56:47 +0000 (18:56 +0000)]
(consider_token): was `==', now is `='.
(consider_token): DEFUNs now treated like funcs in ctags mode.
(LEVEL_OK_FOR_FUNCDEF): removed.
(C_entries): optimized the test that used LEVEL_OK_FOR_FUNCDEF.
(C_entries): removed a piece of useless code.
(C_entries): making typedef tags is delayed until a semicolon
is met. This handles "typedef int X, Y, Z;" correctly.
Richard M. Stallman [Fri, 9 Jul 1993 06:33:05 +0000 (06:33 +0000)]
(byte-compile-setq-default):
Generate a progn of calls to set-default, then compile it.
(byte-compile-file-form-defmumble): Put back second arg of
byte-compile-keep-pending, accidentally deleted before.