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.
sequence that didn't come from the input stream (e.g. `mode-line'
prefixing a mouse click, or an expansion from function-key-map),
and end up with a sequence that runs off the end of the current
maps, return the entire key sequence, not just the initial portion
which was bound or unbound.
change.
* sysdep.c (closedir): Only define this if autoconf can't find
HAVE_CLOSEDIR. If we're running under solaris (defined (sun) &&
defined (USG5_4)), then don't free the buffer separately.
Glickstein <bobg@zindigo.z-code.com>:
* m/iris4d.h (LIB_STANDARD): Do list -lbsd here.
* s/irix4-0.h (getpgrp, setpgrp): #define these to call BSDgetpgrp
and BSDsetpgrp.
(GETPGRP_NO_ARG): Don't #define this.
* emacs.c (main): Don't test GETPGRP_NO_ARG.
* sysdep.c (sys_suspend): Don't test GETPGRP_NO_ARG.
* config.h.in (HAVE_CLOSEDIR): Add an #undef for autoconf to
change.
* sysdep.c (closedir): Only define this if autoconf can't find
HAVE_CLOSEDIR. If we're running under solaris (defined (sun) &&
defined (USG5_4)), then don't free the buffer separately.
CHECK_VECTOR, CHECK_BUFFER, CHECK_WINDOW, CHECK_LIVE_WINDOW,
CHECK_PROCESS, CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER,
CHECK_NUMBER_COERCE_MARKER, CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT,
CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY): Wrap a do
... while (0) around these compound statements to make them
syntactically equivalent to a single statement.
any visible frame.
* buffer.c (Fother_buffer): Pass Qvisible as the second argument
to Fget_buffer_window.
* window.c (Qvisible): New symbol.
(window_loop): In GET_BUFFER_WINDOW case, if frames is Qvisible,
ignore non-visible frames.
(Fget_buffer_window): Expand doc string to mention that Qvisible
is an interesting value for FRAME argument.
(syms_of_window): Init and staticpro Qvisible.
* lisp.h (Qvisible): New declaration.