new properties. Only record old property values for those
properties whose values have changed.
* textprop.c (set_properties): Don't try to make undo records if
OBJECT is a string.
New arg TITLE.
(describe_buffer_bindings): Corresponding changes.
(shadow_lookup): New function.
(describe_map_2): Call it. SHADOW is now a list of maps.
(describe_vector): Likewise.
(describe_map): SHADOW is now a list of maps.
(describe_map_tree): Likewise.
(describe_buffer_bindings): Build suitable list to pass as SHADOW.
(Faccessible_keymaps): New arg PREFIX. Callers changed.
(describe_map_tree): New arg PREFIX.
(Fdescribe_bindings): New arg PREFIX.
Pass to describe_buffer_bindings along with buffer.
(describe_buffer_bindings): Extract PREFIX and pass along.
current_global_map, not global_map; the latter is only meant to be
used for initial_define_key.
* commands.h: Doc fix.
* commands.h (Vglobal_mouse_map): Removed; unused.
* xfns.c (Vglobal_mouse_map): Same.
it to nil, unless we find the current buffer.
(Flist_buffers): Don't try to set point in the buffer list unless
list_buffers_1 actually returns an integer. Don't use a full
save_excursion; just save and restore the buffer.
from the computed faces (the combinations created by
compute_char_face), so that we don't waste global face id's.
* xterm.h (struct x_display): Replace the fields faces and n_faces
with fields param_faces, n_param_faces, computed_faces,
n_computed_faces, and size_computed_faces.
(FRAME_FACES, FRAME_N_FACES): Replaced by...
(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
FRAME_N_PARAM_FACES): New macros.
* xfaces.c: Doc fixes.
(init_frame_faces): Call new_computed_face to create entries for
the default and mode line faces. Use the FRAME...PARAM_FACES
macros.
(free_frame_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Don't use the copy flag; all
parameter faces have real X resources, and all computed faces just
have copies. Free both the parameter and computed face arrays.
(new_computed_face): New function.
(intern_computed_face): Renamed from intern_frame_face; callers
changed. Call new_computed_face.
(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
FRAME...PARAM_FACES macros.
(recompute_basic_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Produce the computed faces by
starting with the base faces and merging in the parameter faces.
(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
macros. Just call recompute_basic_faces if the default or mode
line faces have changed.
* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
* dispextern.h (struct face): Remove the copy member. This is no
longer necessary; all computed faces are copies, and no parameter
faces are.
from the computed faces (the combinations created by
compute_char_face), so that we don't waste global face id's.
* xterm.h (struct x_display): Replace the fields faces and n_faces
with fields param_faces, n_param_faces, computed_faces,
n_computed_faces, and size_computed_faces.
(FRAME_FACES, FRAME_N_FACES): Replaced by...
(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
FRAME_N_PARAM_FACES): New macros.
* xfaces.c: Doc fixes.
(init_frame_faces): Call new_computed_face to create entries for
the default and mode line faces. Use the FRAME...PARAM_FACES
macros.
(free_frame_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Don't use the copy flag; all
parameter faces have real X resources, and all computed faces just
have copies. Free both the parameter and computed face arrays.
(new_computed_face): New function.
(intern_computed_face): Renamed from intern_frame_face; callers
changed. Call new_computed_face.
(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
FRAME...PARAM_FACES macros.
(recompute_basic_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Produce the computed faces by
starting with the base faces and merging in the parameter faces.
(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
macros. Just call recompute_basic_faces if the default or mode
line faces have changed.
* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
* dispextern.h (struct face): Remove the copy member. This is no
longer necessary; all computed faces are copies, and no parameter
faces are.
* xfaces.c (face_vector, nfaces, nfaces_allocated): Make these
static.
from the computed faces (the combinations created by
compute_char_face), so that we don't waste global face id's.
* xterm.h (struct x_display): Replace the fields faces and n_faces
with fields param_faces, n_param_faces, computed_faces,
n_computed_faces, and size_computed_faces.
(FRAME_FACES, FRAME_N_FACES): Replaced by...
(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
FRAME_N_PARAM_FACES): New macros.
* xfaces.c: Doc fixes.
(init_frame_faces): Call new_computed_face to create entries for
the default and mode line faces. Use the FRAME...PARAM_FACES
macros.
(free_frame_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Don't use the copy flag; all
parameter faces have real X resources, and all computed faces just
have copies. Free both the parameter and computed face arrays.
(new_computed_face): New function.
(intern_computed_face): Renamed from intern_frame_face; callers
changed. Call new_computed_face.
(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
FRAME...PARAM_FACES macros.
(recompute_basic_faces): Use the FRAME...PARAM_FACES and
FRAME...COMPUTED_FACES macros. Produce the computed faces by
starting with the base faces and merging in the parameter faces.
(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
macros. Just call recompute_basic_faces if the default or mode
line faces have changed.
* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
* dispextern.h (struct face): Remove the copy member. This is no
longer necessary; all computed faces are copies, and no parameter
faces are.
* xfns.c (Fx_open_connection): Remember to block input while
calling x_load_resources.
* xrdb.c: Undo change of June 19th; it was a BLOCK_INPUT problem,
not a server-specific bug.
and triple-click events.
(parse_modifiers_uncached, apply_modifiers_uncached): Same.
(read_key_sequence): Coerce double-clicks to clicks, and triple-clicks
to double-clicks or clicks, by analogy with drag events.
(double_click_time): Added variable.
* termhooks.h: Added multi-click event modifier bits.
const away on systems which don't have it; any system with
prototypes will declare the arguments const (the ones to which I
have access do); and systems without prototypes won't notice.
* s/irix4-0.h: Get rid of our fake definitions for setpgrp and
getpgrp.
* callproc.c (Fcall_process): Go ahead and use the USG calling
convention for setpgrp.
* ymakefile (pre-crt0.o): Add rule for this. Perhaps it will help
separate-source-directory compilation.
* emacs.c (shut_down_emacs): Some USG systems #define
EMACS_HAVE_TTY_PGRP; call getpgrp as appropriate for such systems.
* sysdep.c (sys_suspend): Call getpgrp as appropriate for USG and
non-USG.
* process.c [IRIX] (create_process): Don't put child in process
group zero before opening the tty; Irix is like USG in this
regard.
now calling the BSD[sg]etpgrp functions directly, so this library
is not needed; it just provides the BSD[sg]etpgrp functions under
the [sg]etpgrp names.
* callproc.c [IRIX] (child_setup): Don't call setpgrp this time.
It's already been called up in Fcall_process, and create_process.
Although we don't use this feature now, face_eql notices it.
* xfaces.c (compute_base_face): Set cached_index to an invalid
index, to avoid an unnecessary comparison.
call setpgrp with arguments, even if USG is #defined.
* process.c [IRIX] (create_process): Don't call setpgrp before
opening the pty. Call it after doing the TIOCNOTTY ioctl.
function-key-map expansion, and continue reading mock events when
the current sequence is unbound.
* keyboard.c (read_key_sequence): After providing a prefix symbol
for a mouse event, modify the mouse event to indicate that that
won't need to be done again, by putting the event's position
symbol in a list.
* keyboard.c (read_key_sequence): When returning mock input which
has run off the end of the current maps, make sure the events get
echoed, and make it into this-command-keys.
* keyboard.c (read_key_sequence): When re-reading a previously
read mouse click which requires a prefix symbol, make sure to set
last_real_key_start appropriately, so we can properly drop
button-down events.
any visible frame.
* buffer.c (Fother_buffer): Pass Qt as the second argument
to Fget_buffer_window.
* window.c (window_loop): In GET_BUFFER_WINDOW case, ignore
non-visible frames.
(Fget_buffer_window): Change doc string to mention that passing Qt
for the FRAME argument returns windows on visible frames only.
(Qvisible): Removed.
any visible frame.
* buffer.c (Fother_buffer): Pass Qt as the second argument
to Fget_buffer_window.
* window.c (window_loop): In GET_BUFFER_WINDOW case, ignore
non-visible frames.
(Fget_buffer_window): Change doc string to mention that passing Qt
for the FRAME argument returns windows on visible frames only.