1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-27 07:41:28 -08:00
Commit graph

217 commits

Author SHA1 Message Date
Gerd Moellmann
f1cb0a2584 (push_key_description): Add parameter FORCE_MULTIBYTE.
If set, print multibyte text.
(Fsingle_key_description): Call push_key_description with
FORCE_MULTIBYTE set.
(describe_buffer_bindings): Likewise.
2000-12-28 13:38:55 +00:00
Kenichi Handa
588fc8bdf0 (push_key_description): Don't convert eight-bit-control
and eight-bit-graphic to multibyte character.
2000-12-21 01:58:28 +00:00
Stefan Monnier
88416888aa (where_is_internal): Check ascii_sequence_p rather than
excluding menu-bar and tool-bar.
(Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
(menu_item_p): Remove.
(where_is_internal_1): Don't ignore menu-items.
2000-12-20 22:46:44 +00:00
Stefan Monnier
d5b3eb1b54 (get_keyelt): Only eval the filter if `autoload' is set. 2000-12-13 14:13:18 +00:00
Gerd Moellmann
6e80fddb98 (Fkey_description): If KEYS is an empty key sequence,
return an empty string.
2000-12-11 15:21:46 +00:00
Gerd Moellmann
ee89188f29 (current_minor_maps): Use malloc. Prevent a leak. 2000-12-08 09:58:28 +00:00
Ken Raeburn
ae0b9b4690 * undo.c (record_delete): Check that last_undo_buffer is really a buffer before
applying XBUFFER to it.

* keymap.c (where_is_internal): Pass lisp object, not integer, to Faref.
2000-10-27 23:01:20 +00:00
Stefan Monnier
020676925c * lisp.h (KEYMAPP): New macro.
(get_keymap): Remove.
(get_keymap_1): Rename get_keymap.
* keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
* xterm.c (note_mode_line_highlight): Use KEYMAPP.
* xmenu.c (single_submenu): Use KEYMAPP.
(Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
Use KEYMAPP rather than Fkeymapp.
* w32term.c (note_mode_line_highlight): Use KEYMAPP.
* w32menu.c (True, False): Remove (use TRUE and FALSE instead).
(Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
Use KEYMAPP rather than Fkeymapp.
(single_submenu): Use KEYMAPP.
(w32_menu_show, w32_dialog_show): Use TRUE.
* minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
* keymap.c (KEYMAPP): Remove (moved to lisp.h).
(Fkeymapp): Use KEYMAPP.
(get_keymap): Rename from get_keymap_1.  Remove old def.
Return t when autoload=0 and error=0 and the keymap needs autoloading.
(Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
(Fminor_mode_key_binding): Don't raise an error if the binding
is not a keymap.
(Fuse_global_map, Fuse_local_map): Allow autoloading.
(Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
* keyboard.c (read_char): get_keymap_1 -> get_keymap.
Allow Vspecial_event_map to be autoloaded.
(menu_bar_items): Fetch the keymap rather than using keymapp.
(menu_bar_one_keymap): No need to follow func-indirect any more.
(parse_menu_item): get_keymap_1 -> get_keymap.
(tool_bar_items): Fetch the keymap rather than using keymapp.
(read_key_sequence): Use KEYMAPP.
* intervals.c (get_local_map): Use get_keymap rather than following
function-indirections explicitly.
* doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
2000-10-27 22:20:19 +00:00
Stefan Monnier
1e7d1ab059 (where_is_cache, where_is_cache_keymaps): New vars.
(Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
(where_is_internal): Renamed from Fwhere_is_internal.
Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
(Fwhere_is_internal): New function wrapping where_is_internal.
(where_is_internal_1): Handle the case where we're filling the cache.
(syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
2000-10-25 23:35:21 +00:00
Stefan Monnier
4980114564 Use AREF, ASET and ASIZE macros.
(Fmake_sparse_keymap): Docstring fix.
(synkey): Remove.
(shadow_lookup): Move up.
Handle the case where lookup-key returns an integer.
(where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
(where_is_internal_2): Adapt to fewer args for where_is_internal_1.
(Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
Simplify/rewrite the keymap-finding code.
Add check for command shadowing, using shadow_lookup.
2000-10-25 04:42:23 +00:00
Stefan Monnier
320c9428b4 (fix_submap_inheritance): Use get_keymap_1 on parent_entry
rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
a symbol.
2000-10-25 03:02:17 +00:00
Gerd Moellmann
11adc31054 Update copyright. 2000-10-24 12:32:33 +00:00
Stefan Monnier
9d0ffdd99f (fix_submap_inheritance): Don't do anything if parent_entry
is nil: since we go to the end of submap anyway, we'd end up
setting nil to nil.
(access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
doesn't obey autoload.
2000-10-22 04:48:48 +00:00
Gerd Moellmann
7396a36c10 (access_keymap): If IDX has a meta prefix, and there's
no map for meta_prefix_char, don't try to use it as a keymap.
Instead, if T_OK is non-zero, look up a default binding, if any,
otherwise, if T_OK is zero, return nil.
2000-10-18 14:20:53 +00:00
Stefan Monnier
7e05cdaf48 (keymap_memberp): Ensure that nil is not a member. 2000-10-16 21:57:56 +00:00
Stefan Monnier
1ed6d8ef37 (Fkeymap_parent): Undefined autoload -> 1. 2000-10-15 03:34:18 +00:00
Stefan Monnier
db785038bb * keymap.c (access_keymap): Add AUTOLOAD parameter.
Do the meta->esc mapping.  Call get_keyelt before returning.
Start scanning from the second element (the first is always `keymap')
to make it easier to detect when we reach a parent map.
Handle the case of inheriting from a symbol whose function is a map.
(Fkeymap_parent): Also handle the `inherit from symbol' case.
(fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
(get_keyelt, Flookup_key): Update call to access_keymap.
Remove the meta->esc mappings.
(define_as_prefix): Delete old disabled code.
(menu_item_p): New function.
(where_is_internal_1): Skip over the few remaining menu items.
* lisp.h (access_keymap): Update prototype.
* keyboard.c (read_char, menu_bar_items, tool_bar_items):
Update call to access_keymap.
(follow_key, read_key_sequence): Update calls to access_keymap.
Remove the meta->esc mappings.
2000-10-15 03:31:32 +00:00
Stefan Monnier
35810b6fff (Fwhere_is_internal): Ignore menu-bar' and tool-bar'.
(where_is_internal_1): Don't bother ignoring menu-items any more.
2000-10-04 23:16:46 +00:00
Stefan Monnier
b1904cd946 (keymap_memberp): New function.
(Fset_keymap_parent): Use it.
(fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
Use keymap_memberp to avoid creating cycles.
(access_keymap): Use KEYMAPP.
2000-09-30 17:00:32 +00:00
Kenichi Handa
6f5ac60d61 Remove the line "#undef NULL". 2000-09-29 06:47:05 +00:00
Gerd Moellmann
6bbd7a2959 Avoid some more compiler warnings. 2000-09-21 20:54:57 +00:00
Gerd Moellmann
3015eec0e8 (Fset_keymap_parent): Check for cycles in keymap
inheritance.
2000-09-08 13:30:21 +00:00
Dave Love
2d9296941c (store_in_keymap): Add `static' to declaration. 2000-08-28 18:40:21 +00:00
Stefan Monnier
5749539688 (store_in_keymap, fix_submap_inheritance): New prototypes.
(KEYMAPP): New macro.
(Fkeymap_parent, Fset_keymap_parent): Use it.
(fix_submap_inheritance): Mark it static.
(define_as_prefix, describe_buffer_bindings, describe_command)
(describe_translation, describe_map): Complete prototypes.
2000-08-27 16:21:55 +00:00
Gerd Moellmann
bc89c6093d (push_key_description): If C without modifiers is < 32,
make sure to print `C-' before `M-', like in the manual.
2000-08-14 12:44:38 +00:00
Gerd Moellmann
9731fda59f (current_minor_maps): Use xmalloc instead of malloc. 2000-08-05 19:27:01 +00:00
Gerd Moellmann
c1848a97e5 (Fsingle_key_description): Add parameter NO_ANGLES.
Callers changed.
2000-08-02 20:16:40 +00:00
Gerd Moellmann
df75b1a379 (get_keymap_1): Add comment that this function can GC.
(where_is_internal_2, where_is_internal_1): Add GCPROs, add
comment that functions can GC.
(Fset_keymap_parent): GCPRO arg KEYMAP.
2000-07-10 14:14:35 +00:00
Gerd Moellmann
5365473301 (get_keyelt): Temporarily inhibit GC while evaluating
a menu filter.
2000-07-04 12:08:25 +00:00
Gerd Moellmann
3fc720e4bd (get_keyelt): For menu-items containing a `:filter
FILTER', apply FILTER to the menu-item's definition to get the
real definition to use.
2000-06-26 15:05:03 +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
dc1741f3a3 fix shadowing of 'keymap' enum value 2000-06-18 20:14:35 +00:00
Gerd Moellmann
97d4edaaa3 (describe_buffer_bindings): Add `\f\n' in front of titles. 2000-06-16 15:17:41 +00:00
Gerd Moellmann
c7edb9605f (Fsingle_key_description): Enclose function key and
event symbol names in angle brackets.
2000-06-14 13:35:45 +00:00
Dave Love
93d2aa1c9b Include intervals.h.
(Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
2000-05-29 11:54:51 +00:00
Kenichi Handa
54e03a4ac4 (Fsingle_key_description): Use SPLIT_CHAR instead of
SPLIT_NON_ASCII_CHAR.
(describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
(Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
unconditionally.
(Fkey_description): Likewise.
2000-05-20 00:03:16 +00:00
Kenichi Handa
0a16479ffe (push_key_description): Adjusted for the change of
CHAR_STRING.
(Ftext_char_description): Likewise.
1999-12-15 00:15:57 +00:00
Kenichi Handa
d2d9586a77 (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
allocate memory for push_key_description.
(describe_buffer_bindings): Likewise.
1999-11-18 05:10:13 +00:00
Gerd Moellmann
339ee9797d Remove USE_TEXT_PROPERTIES. 1999-11-11 11:45:06 +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
Phillip Rulon
a04f1a93c6 (Fsingle_key_description): Make tem big enough.
(describe_buffer_bindings): Make buf big enough.
1999-10-10 01:39:53 +00:00
Gerd Moellmann
47935df1ad (Flookup_key, Faccessible_keymaps, describe_vector,
keys_of_keymap, syms_of_keymap): Remove unused variables.
1999-09-20 23:18:45 +00:00
Ken Raeburn
03699b140e Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member access. 1999-09-13 02:23:04 +00:00
Richard M. Stallman
61684f41fc (fix_submap_inheritance): Do nothing if the proper parent is an
ancestor of SUBMAP; otherwise, add it as the ultimate ancestor.
1999-09-08 05:14:39 +00:00
Karl Heuer
b1314e1550 (get_keymap_1, get_keyelt): Check the type of OBJECT
before calling indirect_function.
1999-07-30 14:37:30 +00:00
Richard M. Stallman
b91f7a6f35 (Faccessible_keymaps): Really initialize i_byte.
Convert 0200 to meta only in a unibyte string.
(Fkey_description): Likewise.
1999-04-06 19:36:02 +00:00
Kenichi Handa
d3c004965b (push_key_description): If enable-multibyte-characters
is nil and C is single byte, push C as is.
1999-02-25 08:43:17 +00:00
Kenichi Handa
9fb7129305 (push_key_description): If enable-multibyte-characters
is non-nil, try to convert unibyte character to multibyte.  For
invalid multibyte character, show all bits by octal form.
(Fsingle_key_description): Check the varidity of charset for a
generic character.
1999-02-24 02:31:57 +00:00
Eli Zaretskii
7f8f0e6709 (Fdefine_prefix_command): Accept a third argument NAME
and pass it to Fmake_sparse_keymap.
1998-12-31 13:16:45 +00:00
Richard M. Stallman
5c9c2c3f33 (Fsingle_key_description): Handle (control ?x) etc.
(Fkey_description): Handle lists like vectors.
1998-12-29 22:53:25 +00:00