Jim Blandy [Wed, 23 Sep 1992 03:51:13 +0000 (03:51 +0000)]
* sysdep.c (sys_suspend): Don't try to use "nice (- nice (0))" to
set the subshell's priority to normal; nice doesn't return a
defined value on all systems. Instead, since emacs_priority gives
the priority that Emacs was nastied to, we can use it to reset the
priority in a straightforward way.
[BSD4_1], [USG], [VMS] (setpriority): Remove dummy and
compatibility definitions of setpriority.
Jim Blandy [Tue, 22 Sep 1992 06:23:30 +0000 (06:23 +0000)]
* eval.c (unbind_catch): Do the long-jump here. Take a VALUE
argument, which specifies the value to return to the catch, or the
data to give to the condition handler. Renamed to
unwind_to_catch, to reflect new role.
(Fsignal, Fthrow): Removed code to set catch tag value and do the
long-jump; this is taken care of by unwind_to_catch.
Jim Blandy [Tue, 22 Sep 1992 05:18:34 +0000 (05:18 +0000)]
* lisp.h (struct handler): Remove the poll_suppress_count member
of this structure; it is always equal to the poll_suppress_count
of its catchtag structure. The non-local exit code in eval.c is
difficult enough to understand as it is; needless duplication
doesn't help.
* lisp.h (struct specbinding, struct handler): More documentation.
Jim Blandy [Tue, 22 Sep 1992 05:17:48 +0000 (05:17 +0000)]
* eval.c (Fcondition_case): Rearranged for clarity. Don't worry
about setting h.poll_suppress_count; it's guaranteed to be the
same as c.poll_suppress_count.
(internal_condition_case): Don't worry about
h.poll_suppress_count.
(Fsignal): Use h->tag->poll_suppress_count instead of
h->poll_suppress_count.
* eval.c (Fsignal): It's okay for the debugger to return to the
caller if the caller was signalling a quit.
* eval.c (unbind_catch): Restore the polling suppression count
here, instead of in Fsignal and Fthrow.
(Fthrow, Fsignal): Don't restore the polling suppression count here.
* eval.c (struct catchtag): More documentation.
* eval.c (entering_debugger): Variable renamed
when_entered_debugger, and is now a timestamp based on
num_nonmacro_input_chars.
(init_eval): Initialize when_entered_debugger, not
entering_debugger.
(call_debugger): Set when_entered_debugger to the current value of
num_nonmacro_input_chars.
(find_handler_clause): Don't call debugger unless
num_nonmacro_input_chars is greater than when_entered_debugger;
that way, we won't call the debugger unless the user has had a
chance to take control.
(Fbacktrace): Don't clear entering_debugger here.
Jim Blandy [Tue, 22 Sep 1992 04:29:25 +0000 (04:29 +0000)]
* fns.c (Fy_or_n_p): After testing for a QUIT, clear Vquit_flag.
Otherwise, if Fy_or_n_p is called while Vinhibit_quit is true and
the user presses C-g, this function goes into an infinite loop.
Jim Blandy [Tue, 22 Sep 1992 04:29:12 +0000 (04:29 +0000)]
* dispnew.c (get_display_line): Don't abort if the frame is
invisible; since unmap events are handled at the interrupt level,
a screen may become invisible at any time.
Richard M. Stallman [Sun, 20 Sep 1992 20:17:16 +0000 (20:17 +0000)]
Don't include sys/dir.h.
(Fverify_visited_file_modtime):
Pass buffer itself to handler, if have handler.
(Fwrite_region): GCPRO around Fexpand_file_name, Ffie_name_directory.
(Fread_file_name_internal): GCPRO around file name manip.
(Ffile_writable_p, Ffile_readable_p): Use abspath, not filename,
(Ffile_executable_p, Ffile_exists_p): to run the handler.
(Fset_file_modes, Ffile_directory_p, Ffile_modes): Likewise.
(Ffile_newer_than_file_p): GCPRO around expand_and_dir_to_file.
Richard M. Stallman [Sat, 19 Sep 1992 17:52:07 +0000 (17:52 +0000)]
(scan_lists): When searching back for comment:
if comment-end is 2 chars, assume it does end a comment.
Otherwise, scan back to previous comment-end to see if there's
a comment starter between. Also record whether the string quotes
between the start and the end are paired and uniform.
If so, skip to comment starter. If not, scan from start of
defun to find comment starter if any.
(find_defun_start): New function.
Jim Blandy [Sun, 13 Sep 1992 12:54:09 +0000 (12:54 +0000)]
* xterm.c (x_wm_set_size_hint): Set the base_width and base_height
members of size_hints, if they're available (X11R4 and after);
otherwise, approximate the right thing, by using min_width and
min_height as the base size.
* xterm.c (x_catch_errors): Don't forget to initialize
x_caught_error_message to the null string, so x_check_errors can
tell when an error has occurred.
Jim Blandy [Sun, 13 Sep 1992 12:48:38 +0000 (12:48 +0000)]
* xrdb.c: Don't include <X11/Xos.h>. Under R4, it stupidly
insists on defining SIGCHLD, even if it already has a definition.
(file_p): Use the constant 4 instead of R_OK; empirically, the
number is more portable than the symbol if you count the #include
hair you have to go through to get R_OK defined. Ffile_readable_p
does this too.
Jim Blandy [Sun, 13 Sep 1992 12:45:33 +0000 (12:45 +0000)]
* xdisp.c (display_mode_line): If the only other frames are
minibuffer frames, don't name the frame after the in the selected
window. We can use Fnext_frame to do this test easily.
Jim Blandy [Sun, 13 Sep 1992 12:38:21 +0000 (12:38 +0000)]
* window.c (minibuffer_window): Accept an optional FRAME argument;
if specified, return the minibuffer used by that frame.
* window.c (Fset_window_configuration): Don't signal an error
if the frame size saved in the window configuration doesn't
match the frame's current size; instead, temporarily resize
the frame while installing the window configuration. This is
important because using the minibuffer saves and restores the
current window configuration, and you don't want to signal an
error just because the user resized the frame while using the
minibuffer.
Jim Blandy [Sun, 13 Sep 1992 12:33:23 +0000 (12:33 +0000)]
* keymap.c (describe_buffer_bindings): Adjust key_heading to match
the format used by describe_map_tree. Also, don't reprint the
"key binding" header above the global bindings if we've already
printed it for the local bindings; it's clear enough that the
columns mean the same thing as above.
* keymap.c (describe_buffer_bindings): Declare buf and bufend...
* keymap.c (describe_buffer_bindings): Set the current buffer to
descbuf before calling current_minor_maps; that function's value
depends on the values of buffer-local variables. Don't set the
current buffer to Vstandard_output until afterwards.
* keymap.c (describe_buffer_bindings): If
Vkeyboard_translate_table is in effect, describe its effects.
Jim Blandy [Sun, 13 Sep 1992 12:31:15 +0000 (12:31 +0000)]
* keyboard.c (kbd_buffer_get_event): When performing the
FRAME_FOCUS_FRAME redirection, don't modify the frame field of
the event; that fatally corrupts mouse click events. Instead,
just perform the redirection on the value assigned to
Vlast_event_frame.
* keyboard.c (input_available_signal): Declare this to return
SIGTYPE.
Jim Blandy [Sun, 13 Sep 1992 12:21:15 +0000 (12:21 +0000)]
* editfns.c (Fcurrent_time_string): Change docstring to
indicate that we will probably add the timezone to the end,
now that we have it available on many systems.
Jim Blandy [Sun, 13 Sep 1992 12:19:42 +0000 (12:19 +0000)]
* callint.c (Fcall_interactively): Remove the 'K' interactive
code, in favor of 'e'; that's a better name.
* callint.c (Fcall_interactively): Don't try to get the
`enable-recursive-minibuffers' property from FUNCTION unless
FUNCTION is actually a symbol; there are some cases where a key
sequence is bound directly to a lambda form, and there's no reason
to break these.
Jim Blandy [Sun, 13 Sep 1992 12:14:54 +0000 (12:14 +0000)]
* alloc.c (mark_object): mark a symbol's name after marking its
value, function, and property list rather than before; this way,
symbols' names are readable, giving us a chance to detect some
kinds of heap corruption.