1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-10 05:30:45 -08:00
Commit graph

556 commits

Author SHA1 Message Date
Gerd Moellmann
da8f73681d (kbd_buffer_gcpro): Renamed from
kbd_buffer_frame_or_window.  Now used for all Lisp objects
referenced from the input queue.
(kbd_buffer_store_event): Always use structure assignment for
copying input events.  Record all Lisp objects referenced from
events in kbd_buffer_gcpro.
(kbd_buffer_get_event): Construct Lisp `help-echo' events
differently from input events.  Test for prefix menu_bar_events
and TOOL_BAR_EVENTs differently.  Reset all slots used by an input
event in kbd_buffer_gcpro to nil.
(make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
frame_or_window is equal to its arg member as prefix events.
(stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
used by an input event to nil.
(init_keyboard): Use two times the size of the input queue
for kbd_buffer_gcpro.
(syms_of_keyboard): Likewise.
2000-07-13 14:07:45 +00:00
Eli Zaretskii
adc84f484d (show_help_echo): Accept additional parameter
ok_to_overwrite_keystroke_echo.
(read_char): Call show_help_echo with a zero
ok_to_overwrite_keystroke_echo argument.
2000-07-11 07:33:06 +00:00
Stefan Monnier
31f84d0328 (show_help_echo): New function, extracted from read_char.
Feval its `msg' argument if it's a cons cell.
(read_char): Use it.
(follow_key): Pass `autoload' to get_keyelt.
2000-07-05 14:01:15 +00:00
Gerd Moellmann
3e9ac4b71e (adjust_point_for_property): Check if display
property should be treated as intangible by looking at its
value.
2000-06-20 19:43:51 +00:00
Ken Raeburn
ebdb31e4f2 missed one in last checkin 2000-06-19 07:42:41 +00:00
Ken Raeburn
140c4ac6f3 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key value, or checks
for CHAR_META will fail.
* keymap.c (get_keyelt): Likewise.
2000-06-19 07:16:27 +00:00
Ken Raeburn
52e386c2dc fix up more Lisp_Object/int conversion issues 2000-06-18 20:14:37 +00:00
Gerd Moellmann
9c3f66a3d1 (read_char): Bind message-truncate-lines to t
while displaying a help-echo.
2000-06-13 23:51:00 +00:00
Gerd Moellmann
c51c7093e9 (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
generating a switch-frame event if necessary.
2000-06-08 20:57:01 +00:00
Jason Rumney
e1bfeab2bd (make_lispy_event) [WINDOWS_NT]: Pass a window pointer to
glyph_to_pixel_coords, not a frame.
2000-05-30 21:35:02 +00:00
Dave Love
306904961b (menu_bar_items, tool_bar_items, Fexecute_extended_command): Deal with
`keymap' property.
(read_key_sequence): Track map from `keymap' property as well as
`local_map'.
2000-05-29 11:48:25 +00:00
Kenichi Handa
8d76911517 (read_char): Allow character codes 128..255 to be
handled by input-method-function.
2000-05-23 02:19:20 +00:00
Gerd Moellmann
1172eb8dfa (read_char): Don't clear current message for help
events; let the code handling help events handle this.  Change
code detecting help events that should be ignored.
2000-05-11 12:23:55 +00:00
Gerd Moellmann
bd55b8608a (timer_check): Fix typo in comment. 2000-04-21 13:02:41 +00:00
Gerd Moellmann
59a84f8e16 (echo_message_buffer): New variable.
(echo_now): Set echo_message_buffer to the echo area buffer used
to display the echo.
(cancel_echoing): Reset echo_message_buffer to nil.
(read_char): Code rewritten that handles canceling an echo or
echoing a dash, respectively.
2000-04-20 21:00:43 +00:00
Ken Raeburn
7c752c8099 make_number/XINT/XUINT conversions; EQ/== fixes; ==Qnil -> NILP 2000-04-05 17:29:31 +00:00
Gerd Moellmann
8e1e42402f (lispy_mouse_names): Variable removed.
(Vlispy_mouse_stem): New variable.
(syms_of_keyboard): Initialize Vlispy_mouse_stem.
(make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
for any mouse button number.  Increase size of mouse_syms and
button_down_location as needed.  Call modify_event_symbol with
different arguments.
(make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
Call modify_event_symbol with different arguments.
(make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
for any button number.  Call modify_event_symbol with different
arguments.
(modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
Accept a string for NAME_ALIST_OR_STEM.
2000-04-03 12:11:39 +00:00
Gerd Moellmann
6e7b24574b (lispy_mouse_names): Add additional mouse names. 2000-04-01 11:50:58 +00:00
Gerd Moellmann
2c9cf2c821 (Ftop_level): Cancel busy-cursor. 2000-03-29 12:58:52 +00:00
Jason Rumney
3cd2f3279a (make_lispy_event): Call buffer_posn_from_coords with correct parameters. 2000-03-03 20:32:33 +00:00
Kenichi Handa
15fa88ab76 (read_char): Set `usec' correctly. 2000-02-26 02:55:10 +00:00
Gerd Moellmann
842650279c (recursive_edit_1): Cancel busy-cursor. 2000-02-25 14:05:03 +00:00
Gerd Moellmann
d0c484784c (command_loop_1): Call start_busy_cursor before
Fcommand_execute and cancel_busy_cursor after it.
(timer_check): Remove busy-cursor code.
(Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
cursor timer.
2000-02-25 13:30:50 +00:00
Dave Love
f2647d044c Amend last change to check for echo-keystrokes being zero, not nil. 2000-02-18 21:34:40 +00:00
Dave Love
39aab67990 (echo_keystrokes): Remove declaration.
(Vecho_keystrokes) New variable.
(read_char, record_menu_key, read_key_sequence): Use it to allow use of
float value.
(syms_of_keyboard): Change Vecho_keystrokes declaration.
2000-02-18 20:10:00 +00:00
Gerd Moellmann
6fe007f7d1 (bind_polling_period): Stop all timers except
poll_timer.
2000-02-12 13:11:29 +00:00
Gerd Moellmann
8a9f5d3c42 (toplevel): Include systime.h and atimer.h.
(polling_for_input): Removed because unused.
(input_poll_signal) [POLL_FOR_INPUT]: Removed.
(poll_timer): New variable.
(poll_for_input, poll_for_input_1): New functions.
(start_polling, stop_polling): Rewritten.
2000-01-25 15:57:26 +00:00
Gerd Moellmann
e27b53f62f Add last change to doc string. 2000-01-11 13:14:54 +00:00
Gerd Moellmann
fb0dde6c62 (Fclear_this_command_keys): Clear recent_keys
vector, too.
2000-01-11 13:11:14 +00:00
Kenichi Handa
adf5cb9c38 (Vdisable_point_adjustment): New variable.
(Vglobal_disable_point_adjustment): New variable.
(syms_of_keyboard): Declare them as Lisp variables.
(command_loop_1): Check them and call adjust_point_for_property if
necessary.
(adjust_point_for_property): New function.
1999-12-15 00:15:16 +00:00
Stefan Monnier
eef28553ff * keyboard.c (Qratio): New symbol.
(scroll_bar_parts): Add `Qratio' to it.
(syms_of_keyboard): Init `Qratio'.
1999-12-10 01:39:53 +00:00
Kenichi Handa
2d0ffc9aa8 (echo_char): Use KEY_DESCRIPTION_SIZE to check free
memory for push_key_description.
1999-11-18 05:09:18 +00:00
Gerd Moellmann
e35b612304 (command_loop_1): Remove no_redisplay. 1999-11-16 15:55:07 +00:00
Gerd Moellmann
339ee9797d Remove USE_TEXT_PROPERTIES. 1999-11-11 11:45:06 +00:00
Ken Raeburn
7539e11fca more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine 1999-10-25 04:58:18 +00:00
Paul Eggert
68c45bf065 Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.

* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.

* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.

* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.

* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.

* coding.h (emacs_strerror, Vlocale_coding_system): New decls.

* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.

* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.

* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.

* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back.  Synchronize time
locale before invoking lower level function.  Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.

* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly.  But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.

* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size.  Report IO errors
with emacs_strerror, not strerror.

* fns.c (Fgethash): Declare dflt parameter.

* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.

* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.

* lread.c (file_offset, file_tell): New macros.  All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.

* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.

* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.

* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.

* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.

* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.

* m/delta.h, s/ptx.h, s/template.h: Doc fix.

* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.

* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.

* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.

* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.

* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.

* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open.  Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.

* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.

* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.

* w32proc.c (sys_siglist): Remove decl.

* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.

* xfns.c (Fx_show_tip): Declare timeout param.

* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
Gerd Moellmann
dace7f4e1c (auto-save-interval): Fix doc string. 1999-10-10 21:09:05 +00:00
Gerd Moellmann
03cee6ae65 (Frecursive_edit): Remove unused variable.
(command_loop_1, safe_run_hooks, kbd_buffer_get_event,
timer_check, make_lispy_event, menu_bar_items,
menu_bar_one_keymap, menu_bar_item, parse_menu_item,
parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
read_key_sequence): Ditto.  Fread_key_sequence,
Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
(read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
used when GOBBLE_FIRST_EVENT is defined in #ifdef
(Fexecute_extended_command): Cast XINT to long for %ld.
(toplevel) [HAVE_UNISTD_H]: Include unistd.h.
(toplevel): Include sys/types.h.
1999-09-20 00:34:37 +00:00
Gerd Moellmann
788f89eb86 (command_loop_1): Change for Lisp_Object
selected_frame.
(cmd_error_internal, command_loop_1, read_char,
kbd_buffer_get_event, read_avail_input,
read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
interrupt_signal, quit_throw_to_read_char): Ditto.
1999-09-13 11:13:36 +00:00
Gerd Moellmann
8f12e41de7 (command_loop_1): Resize mini-window to the
exact size of a message displayed, if any.
1999-09-12 20:21:53 +00:00
Gerd Moellmann
045dee35ff Change
`top-line' and `top_line' to `header-line' and `header_line'.
Likewise for similar spellings.
1999-09-05 16:39:19 +00:00
Gerd Moellmann
9ea173e830 Change spelling of toolbar' to tool_bar' or `tool-bar'.
Likewise for upper-case etc.
1999-09-05 15:49:07 +00:00
Richard M. Stallman
f019cded83 [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
(512) because Mac compilers limit local data of a function to 32K.
1999-09-03 18:48:46 +00:00
Gerd Moellmann
9351ebd055 (command_loop_1): Set beg/end_unchanged per
buffer.
1999-08-23 00:11:47 +00:00
Gerd Moellmann
985f9f6642 Call change_frame_size and do_pending_window_change with
new parameter.
(ok_to_echo_at_next_pause): Make it a pointer to
a struct kboard.
(echo_kboard): New.
(echo_now): Set echo_kboard to the current kboard.
(cancel_echoing): Set echo_kboard to null.
(cmd_error_internal): Use clear_message, remove references
to echo_area_glyphs and echo_area_message.
(command_loop_1): Check for echo area messages differently.
(read_char): Likewise.
(record_menu_key): Use clear_message.
(Fexecute_extended_command):  Check for echo area messages
differently.  Use push_message, restore_message, pop_message.
1999-08-21 19:29:53 +00:00
Eli Zaretskii
e6a77d6cab (cmd_error_internal): Don't kill Emacs if this is an
MSDOS frame.
1999-07-30 08:28:18 +00:00
Gerd Moellmann
7ee32cda42 (read_char): Use message3_nolog to show help-echo.
(make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
(kbd_store_ptr): Declare it as a volatile pointer
instead of a pointer to a volatile input_event.
(kbd_buffer_store_event): Remove volatile modifier from
declaration of local variable `sp'.
(Fdiscard_input): Don't cast when assigning kbd_store_ptr
to kbd_fetch_ptr.
(make_lispy_event): Handle mouse on top lines.
(make_lispy_movement): Ditto.
(read_char): Rename local variable echo_area_message
because it shadows the global one.
(cmd_error_internal): Set echo_areA_message.
(command_loop_1): Test echo_areA_message.
(read_char): Ditto.
(record_menu_key): Set echo_area_message to nil.
(Fexecute_extended_command): Test echo_area_message.
(Fexecute_extended_command): Handle echo_area_message.
(toolbar_items): Call access_keymap with third
parameter 1, so that we don't get inherited toolbar item
definitions.
 Ditto.
(kbd_buffer_get_event): Set flag to prevent recording
TOOLBAR_EVENT events in last_nonmenu_event.
(timer_check): Inhibit busy cursor around calls to
timer-event-handler.  This busy cursor tends to be anoying if
fontifying stealthily.
(command_loop_1): Display busy cursor.
(Vshow_help_function): New.
(read_char): Use it.
(make_lispy_event): Add string and string position
info to mouse-click events.
(read_key_sequence): Handle `local-map' property of mode line
strings.
(Qend_scroll): New.
(scroll_bar_parts): Add it.
(scroll_bar_parts): Add Qtop and Qbottom.
(syms_of_keyboard): Add Qbottom.
(make_lispy_event): Handle scroll_bar_click
differently when using toolkit scroll bars.
(cmd_error_internal): Bug fix.
(syms_of_keyboard): Staticpro toolbar_item_properties
and toolbar_items_vectors.
(Qhelp_echo): New symbol.
(read_char): Handle `toolbar' and `help_echo' events.
(kbd_buffer_get_event): Handle HELP_ECHO input event.
(make_lispy_event): Handle TOOLBAR_EVENT.
(toolbar_items): New.
(process_toolbar_item): New.
(PROP): New.
(init_toolbar_items): New.
(append_toolbar_item): New.
(read_char_x_menu_prompt): Handle `toolbar' event.
(read_key_sequence): Ditto.
(syms_of_keyboard): Intern `:help'.
(toolbar_items): New.
(process_toolbar_item): New.
(parse_toolbar_item): New.
(init_toolbar_items): New.
(append_toolbar_item): New.
(detect_input_pending_run_timers): Likewise.
(detect_input_pending_run_timers): Call gobble_input
after redisplaying.
(clear_waiting_for_input): Return void.
(record_asynch_buffer_change): Return void.
(stop_polling): Return void.
(start_polling): Ditto.
(cmd_error_internal): Write to stderr if selected
frame is Vterminal_frame under X.  This is the case when a font
cannot be loaded when Emacs starts.  Replace test for
FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
(quit_throw_to_read_char): Ditto.
(make_lispy_event): mouse clicks; don't do frame
glyph position calculations.
(make_lispy_movement): Use buffer_posn_from_coords and window
relative coordinates.
(make_lispy_event): For mouse clicks, use
x_y_to_hpos_vpos.
(make_lispy_event): Use BUFFER_POSN_FROM_COORDS
with window relative pixel coordinates.  Use GLYPH_TO_PIXEL_-
COORDS mit new arguments.
(make_lispy_event): WINDOW_FROM_COORDINATES with
pixel coords.
(make_lispy_movement): Same.
(interrupt_signal): Cursor_to with 4 params.
(command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
for any character.
1999-07-21 21:43:52 +00:00
Karl Heuer
3bd0dffb71 (read_key_sequence): Properly reinitialize
fkey_map after translating thru Vkey_translation_map.
After translating thru Vfunction_key_map, don't reset
keytrans-start to 0.
1999-06-27 21:21:31 +00:00
Andreas Schwab
5bf68f6e34 (Qusr1_signal, Qusr2_signal): New variables.
(syms_of_keyboard): Initialize them.
(lispy_user_signals): New variable.
(make_lispy_event): Handle user_signal event type.
1999-02-22 10:05:43 +00:00
Richard M. Stallman
0afc861ba9 (read_key_sequence): Fix previous change. 1999-01-24 20:08:10 +00:00