aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
authorDan Nicolaescu2010-07-04 00:50:25 -0700
committerDan Nicolaescu2010-07-04 00:50:25 -0700
commit971de7fb158335fbda39525feb2d7776a26bc030 (patch)
tree605333d85f16e35bb06baffcb66ac49f4ec0dce9 /src/keymap.c
parentb8463cbfbe2c5183cf40772df2746e58b787ddeb (diff)
downloademacs-971de7fb158335fbda39525feb2d7776a26bc030.tar.gz
emacs-971de7fb158335fbda39525feb2d7776a26bc030.zip
Convert (most) functions in src to standard C.
* src/alloc.c: Convert function definitions to standard C. * src/atimer.c: * src/bidi.c: * src/bytecode.c: * src/callint.c: * src/callproc.c: * src/casefiddle.c: * src/casetab.c: * src/category.c: * src/ccl.c: * src/character.c: * src/charset.c: * src/chartab.c: * src/cmds.c: * src/coding.c: * src/composite.c: * src/data.c: * src/dbusbind.c: * src/dired.c: * src/dispnew.c: * src/doc.c: * src/doprnt.c: * src/ecrt0.c: * src/editfns.c: * src/fileio.c: * src/filelock.c: * src/filemode.c: * src/fns.c: * src/font.c: * src/fontset.c: * src/frame.c: * src/fringe.c: * src/ftfont.c: * src/ftxfont.c: * src/gtkutil.c: * src/indent.c: * src/insdel.c: * src/intervals.c: * src/keymap.c: * src/lread.c: * src/macros.c: * src/marker.c: * src/md5.c: * src/menu.c: * src/minibuf.c: * src/prefix-args.c: * src/print.c: * src/ralloc.c: * src/regex.c: * src/region-cache.c: * src/scroll.c: * src/search.c: * src/sound.c: * src/strftime.c: * src/syntax.c: * src/sysdep.c: * src/termcap.c: * src/terminal.c: * src/terminfo.c: * src/textprop.c: * src/tparam.c: * src/undo.c: * src/unexelf.c: * src/window.c: * src/xfaces.c: * src/xfns.c: * src/xfont.c: * src/xftfont.c: * src/xgselect.c: * src/xmenu.c: * src/xrdb.c: * src/xselect.c: * src/xsettings.c: * src/xsmfns.c: * src/xterm.c: Likewise.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c122
1 files changed, 34 insertions, 88 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 3aeeb1afc05..a0f1c63c14a 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -183,19 +183,13 @@ in case you use it as a menu with `x-popup-menu'. */)
183 initial_define_key (control_x_map, Ctl('X'), "exchange-point-and-mark"); */ 183 initial_define_key (control_x_map, Ctl('X'), "exchange-point-and-mark"); */
184 184
185void 185void
186initial_define_key (keymap, key, defname) 186initial_define_key (Lisp_Object keymap, int key, char *defname)
187 Lisp_Object keymap;
188 int key;
189 char *defname;
190{ 187{
191 store_in_keymap (keymap, make_number (key), intern_c_string (defname)); 188 store_in_keymap (keymap, make_number (key), intern_c_string (defname));
192} 189}
193 190
194void 191void
195initial_define_lispy_key (keymap, keyname, defname) 192initial_define_lispy_key (Lisp_Object keymap, char *keyname, char *defname)
196 Lisp_Object keymap;
197 char *keyname;
198 char *defname;
199{ 193{
200 store_in_keymap (keymap, intern_c_string (keyname), intern_c_string (defname)); 194 store_in_keymap (keymap, intern_c_string (keyname), intern_c_string (defname));
201} 195}
@@ -255,9 +249,7 @@ when reading a key-sequence to be looked-up in this keymap. */)
255 do_autoload which can GC. */ 249 do_autoload which can GC. */
256 250
257Lisp_Object 251Lisp_Object
258get_keymap (object, error, autoload) 252get_keymap (Lisp_Object object, int error, int autoload)
259 Lisp_Object object;
260 int error, autoload;
261{ 253{
262 Lisp_Object tem; 254 Lisp_Object tem;
263 255
@@ -309,9 +301,7 @@ get_keymap (object, error, autoload)
309 We assume that KEYMAP is a valid keymap. */ 301 We assume that KEYMAP is a valid keymap. */
310 302
311Lisp_Object 303Lisp_Object
312keymap_parent (keymap, autoload) 304keymap_parent (Lisp_Object keymap, int autoload)
313 Lisp_Object keymap;
314 int autoload;
315{ 305{
316 Lisp_Object list; 306 Lisp_Object list;
317 307
@@ -340,8 +330,7 @@ If KEYMAP has no parent, return nil. */)
340 330
341/* Check whether MAP is one of MAPS parents. */ 331/* Check whether MAP is one of MAPS parents. */
342int 332int
343keymap_memberp (map, maps) 333keymap_memberp (Lisp_Object map, Lisp_Object maps)
344 Lisp_Object map, maps;
345{ 334{
346 if (NILP (map)) return 0; 335 if (NILP (map)) return 0;
347 while (KEYMAPP (maps) && !EQ (map, maps)) 336 while (KEYMAPP (maps) && !EQ (map, maps))
@@ -437,8 +426,7 @@ Return PARENT. PARENT should be nil or another keymap. */)
437 make sure that SUBMAP inherits that definition as its own parent. */ 426 make sure that SUBMAP inherits that definition as its own parent. */
438 427
439static void 428static void
440fix_submap_inheritance (map, event, submap) 429fix_submap_inheritance (Lisp_Object map, Lisp_Object event, Lisp_Object submap)
441 Lisp_Object map, event, submap;
442{ 430{
443 Lisp_Object map_parent, parent_entry; 431 Lisp_Object map_parent, parent_entry;
444 432
@@ -500,12 +488,7 @@ fix_submap_inheritance (map, event, submap)
500 If NOINHERIT, don't accept a subkeymap found in an inherited keymap. */ 488 If NOINHERIT, don't accept a subkeymap found in an inherited keymap. */
501 489
502Lisp_Object 490Lisp_Object
503access_keymap (map, idx, t_ok, noinherit, autoload) 491access_keymap (Lisp_Object map, Lisp_Object idx, int t_ok, int noinherit, int autoload)
504 Lisp_Object map;
505 Lisp_Object idx;
506 int t_ok;
507 int noinherit;
508 int autoload;
509{ 492{
510 Lisp_Object val; 493 Lisp_Object val;
511 494
@@ -634,10 +617,7 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
634} 617}
635 618
636static void 619static void
637map_keymap_item (fun, args, key, val, data) 620map_keymap_item (map_keymap_function_t fun, Lisp_Object args, Lisp_Object key, Lisp_Object val, void *data)
638 map_keymap_function_t fun;
639 Lisp_Object args, key, val;
640 void *data;
641{ 621{
642 /* We should maybe try to detect bindings shadowed by previous 622 /* We should maybe try to detect bindings shadowed by previous
643 ones and things like that. */ 623 ones and things like that. */
@@ -647,8 +627,7 @@ map_keymap_item (fun, args, key, val, data)
647} 627}
648 628
649static void 629static void
650map_keymap_char_table_item (args, key, val) 630map_keymap_char_table_item (Lisp_Object args, Lisp_Object key, Lisp_Object val)
651 Lisp_Object args, key, val;
652{ 631{
653 if (!NILP (val)) 632 if (!NILP (val))
654 { 633 {
@@ -707,9 +686,7 @@ map_keymap_internal (Lisp_Object map,
707} 686}
708 687
709static void 688static void
710map_keymap_call (key, val, fun, dummy) 689map_keymap_call (Lisp_Object key, Lisp_Object val, Lisp_Object fun, void *dummy)
711 Lisp_Object key, val, fun;
712 void *dummy;
713{ 690{
714 call2 (fun, key, val); 691 call2 (fun, key, val);
715} 692}
@@ -717,11 +694,7 @@ map_keymap_call (key, val, fun, dummy)
717/* Same as map_keymap_internal, but doesn't traverses parent keymaps as well. 694/* Same as map_keymap_internal, but doesn't traverses parent keymaps as well.
718 A non-zero AUTOLOAD indicates that autoloaded keymaps should be loaded. */ 695 A non-zero AUTOLOAD indicates that autoloaded keymaps should be loaded. */
719void 696void
720map_keymap (map, fun, args, data, autoload) 697map_keymap (Lisp_Object map, map_keymap_function_t fun, Lisp_Object args, void *data, int autoload)
721 map_keymap_function_t fun;
722 Lisp_Object map, args;
723 void *data;
724 int autoload;
725{ 698{
726 struct gcpro gcpro1; 699 struct gcpro gcpro1;
727 GCPRO1 (args); 700 GCPRO1 (args);
@@ -739,10 +712,7 @@ Lisp_Object Qkeymap_canonicalize;
739/* Same as map_keymap, but does it right, properly eliminating duplicate 712/* Same as map_keymap, but does it right, properly eliminating duplicate
740 bindings due to inheritance. */ 713 bindings due to inheritance. */
741void 714void
742map_keymap_canonical (map, fun, args, data) 715map_keymap_canonical (Lisp_Object map, map_keymap_function_t fun, Lisp_Object args, void *data)
743 map_keymap_function_t fun;
744 Lisp_Object map, args;
745 void *data;
746{ 716{
747 struct gcpro gcpro1; 717 struct gcpro gcpro1;
748 GCPRO1 (args); 718 GCPRO1 (args);
@@ -804,9 +774,7 @@ usage: (map-keymap FUNCTION KEYMAP) */)
804 This can GC because menu_item_eval_property calls Feval. */ 774 This can GC because menu_item_eval_property calls Feval. */
805 775
806Lisp_Object 776Lisp_Object
807get_keyelt (object, autoload) 777get_keyelt (Lisp_Object object, int autoload)
808 Lisp_Object object;
809 int autoload;
810{ 778{
811 while (1) 779 while (1)
812 { 780 {
@@ -886,10 +854,7 @@ get_keyelt (object, autoload)
886} 854}
887 855
888static Lisp_Object 856static Lisp_Object
889store_in_keymap (keymap, idx, def) 857store_in_keymap (Lisp_Object keymap, register Lisp_Object idx, Lisp_Object def)
890 Lisp_Object keymap;
891 register Lisp_Object idx;
892 Lisp_Object def;
893{ 858{
894 /* Flush any reverse-map cache. */ 859 /* Flush any reverse-map cache. */
895 where_is_cache = Qnil; 860 where_is_cache = Qnil;
@@ -1044,8 +1009,7 @@ store_in_keymap (keymap, idx, def)
1044EXFUN (Fcopy_keymap, 1); 1009EXFUN (Fcopy_keymap, 1);
1045 1010
1046Lisp_Object 1011Lisp_Object
1047copy_keymap_item (elt) 1012copy_keymap_item (Lisp_Object elt)
1048 Lisp_Object elt;
1049{ 1013{
1050 Lisp_Object res, tem; 1014 Lisp_Object res, tem;
1051 1015
@@ -1118,8 +1082,7 @@ copy_keymap_item (elt)
1118} 1082}
1119 1083
1120static void 1084static void
1121copy_keymap_1 (chartable, idx, elt) 1085copy_keymap_1 (Lisp_Object chartable, Lisp_Object idx, Lisp_Object elt)
1122 Lisp_Object chartable, idx, elt;
1123{ 1086{
1124 Fset_char_table_range (chartable, idx, copy_keymap_item (elt)); 1087 Fset_char_table_range (chartable, idx, copy_keymap_item (elt));
1125} 1088}
@@ -1412,8 +1375,7 @@ recognize the default bindings, just as `read-key-sequence' does. */)
1412 Return the keymap. */ 1375 Return the keymap. */
1413 1376
1414static Lisp_Object 1377static Lisp_Object
1415define_as_prefix (keymap, c) 1378define_as_prefix (Lisp_Object keymap, Lisp_Object c)
1416 Lisp_Object keymap, c;
1417{ 1379{
1418 Lisp_Object cmd; 1380 Lisp_Object cmd;
1419 1381
@@ -1430,8 +1392,7 @@ define_as_prefix (keymap, c)
1430/* Append a key to the end of a key sequence. We always make a vector. */ 1392/* Append a key to the end of a key sequence. We always make a vector. */
1431 1393
1432Lisp_Object 1394Lisp_Object
1433append_key (key_sequence, key) 1395append_key (Lisp_Object key_sequence, Lisp_Object key)
1434 Lisp_Object key_sequence, key;
1435{ 1396{
1436 Lisp_Object args[2]; 1397 Lisp_Object args[2];
1437 1398
@@ -1445,8 +1406,7 @@ append_key (key_sequence, key)
1445 signal an error if is a mistake such as RET or M-RET or C-DEL, etc. */ 1406 signal an error if is a mistake such as RET or M-RET or C-DEL, etc. */
1446 1407
1447static void 1408static void
1448silly_event_symbol_error (c) 1409silly_event_symbol_error (Lisp_Object c)
1449 Lisp_Object c;
1450{ 1410{
1451 Lisp_Object parsed, base, name, assoc; 1411 Lisp_Object parsed, base, name, assoc;
1452 int modifiers; 1412 int modifiers;
@@ -1515,8 +1475,7 @@ static int cmm_size = 0;
1515 list, let the key sequence be read, and hope some other piece of 1475 list, let the key sequence be read, and hope some other piece of
1516 code signals the error. */ 1476 code signals the error. */
1517int 1477int
1518current_minor_maps (modeptr, mapptr) 1478current_minor_maps (Lisp_Object **modeptr, Lisp_Object **mapptr)
1519 Lisp_Object **modeptr, **mapptr;
1520{ 1479{
1521 int i = 0; 1480 int i = 0;
1522 int list_number = 0; 1481 int list_number = 0;
@@ -2128,10 +2087,10 @@ struct accessible_keymaps_data {
2128}; 2087};
2129 2088
2130static void 2089static void
2131accessible_keymaps_1 (key, cmd, args, data) 2090accessible_keymaps_1 (Lisp_Object key, Lisp_Object cmd, Lisp_Object args, void *data)
2132 Lisp_Object key, cmd, args; 2091
2133 /* Use void* to be compatible with map_keymap_function_t. */ 2092 /* Use void* to be compatible with map_keymap_function_t. */
2134 void *data; 2093
2135{ 2094{
2136 struct accessible_keymaps_data *d = data; /* Cast! */ 2095 struct accessible_keymaps_data *d = data; /* Cast! */
2137 Lisp_Object maps = d->maps; 2096 Lisp_Object maps = d->maps;
@@ -2389,10 +2348,7 @@ spaces are put between sequence elements, etc. */)
2389 2348
2390 2349
2391char * 2350char *
2392push_key_description (c, p, force_multibyte) 2351push_key_description (register unsigned int c, register char *p, int force_multibyte)
2393 register unsigned int c;
2394 register char *p;
2395 int force_multibyte;
2396{ 2352{
2397 unsigned c2; 2353 unsigned c2;
2398 2354
@@ -2549,9 +2505,7 @@ around function keys and event symbols. */)
2549} 2505}
2550 2506
2551char * 2507char *
2552push_text_char_description (c, p) 2508push_text_char_description (register unsigned int c, register char *p)
2553 register unsigned int c;
2554 register char *p;
2555{ 2509{
2556 if (c >= 0200) 2510 if (c >= 0200)
2557 { 2511 {
@@ -2611,8 +2565,7 @@ static int where_is_preferred_modifier;
2611 Else, return 2 if SEQ uses the where_is_preferred_modifier, 2565 Else, return 2 if SEQ uses the where_is_preferred_modifier,
2612 and 1 otherwise. */ 2566 and 1 otherwise. */
2613static int 2567static int
2614preferred_sequence_p (seq) 2568preferred_sequence_p (Lisp_Object seq)
2615 Lisp_Object seq;
2616{ 2569{
2617 int i; 2570 int i;
2618 int len = XINT (Flength (seq)); 2571 int len = XINT (Flength (seq));
@@ -2982,9 +2935,7 @@ remapped command in the returned list. */)
2982/* This function can GC because get_keyelt can. */ 2935/* This function can GC because get_keyelt can. */
2983 2936
2984static void 2937static void
2985where_is_internal_1 (key, binding, args, data) 2938where_is_internal_1 (Lisp_Object key, Lisp_Object binding, Lisp_Object args, void *data)
2986 Lisp_Object key, binding, args;
2987 void *data;
2988{ 2939{
2989 struct where_is_internal_data *d = data; /* Cast! */ 2940 struct where_is_internal_data *d = data; /* Cast! */
2990 Lisp_Object definition = d->definition; 2941 Lisp_Object definition = d->definition;
@@ -3342,8 +3293,7 @@ key binding\n\
3342static int previous_description_column; 3293static int previous_description_column;
3343 3294
3344static void 3295static void
3345describe_command (definition, args) 3296describe_command (Lisp_Object definition, Lisp_Object args)
3346 Lisp_Object definition, args;
3347{ 3297{
3348 register Lisp_Object tem1; 3298 register Lisp_Object tem1;
3349 int column = (int) current_column (); /* iftc */ 3299 int column = (int) current_column (); /* iftc */
@@ -3379,8 +3329,7 @@ describe_command (definition, args)
3379} 3329}
3380 3330
3381static void 3331static void
3382describe_translation (definition, args) 3332describe_translation (Lisp_Object definition, Lisp_Object args)
3383 Lisp_Object definition, args;
3384{ 3333{
3385 register Lisp_Object tem1; 3334 register Lisp_Object tem1;
3386 3335
@@ -3413,8 +3362,7 @@ struct describe_map_elt { Lisp_Object event; Lisp_Object definition; int shadowe
3413 the event field. */ 3362 the event field. */
3414 3363
3415static int 3364static int
3416describe_map_compare (aa, bb) 3365describe_map_compare (const void *aa, const void *bb)
3417 const void *aa, *bb;
3418{ 3366{
3419 const struct describe_map_elt *a = aa, *b = bb; 3367 const struct describe_map_elt *a = aa, *b = bb;
3420 if (INTEGERP (a->event) && INTEGERP (b->event)) 3368 if (INTEGERP (a->event) && INTEGERP (b->event))
@@ -3624,8 +3572,7 @@ describe_map (map, prefix, elt_describer, partial, shadow,
3624} 3572}
3625 3573
3626static void 3574static void
3627describe_vector_princ (elt, fun) 3575describe_vector_princ (Lisp_Object elt, Lisp_Object fun)
3628 Lisp_Object elt, fun;
3629{ 3576{
3630 Findent_to (make_number (16), make_number (1)); 3577 Findent_to (make_number (16), make_number (1));
3631 call1 (fun, elt); 3578 call1 (fun, elt);
@@ -3893,8 +3840,7 @@ static Lisp_Object apropos_predicate;
3893static Lisp_Object apropos_accumulate; 3840static Lisp_Object apropos_accumulate;
3894 3841
3895static void 3842static void
3896apropos_accum (symbol, string) 3843apropos_accum (Lisp_Object symbol, Lisp_Object string)
3897 Lisp_Object symbol, string;
3898{ 3844{
3899 register Lisp_Object tem; 3845 register Lisp_Object tem;
3900 3846
@@ -3925,7 +3871,7 @@ Return list of symbols found. */)
3925} 3871}
3926 3872
3927void 3873void
3928syms_of_keymap () 3874syms_of_keymap (void)
3929{ 3875{
3930 Qkeymap = intern_c_string ("keymap"); 3876 Qkeymap = intern_c_string ("keymap");
3931 staticpro (&Qkeymap); 3877 staticpro (&Qkeymap);
@@ -4119,7 +4065,7 @@ preferred. */);
4119} 4065}
4120 4066
4121void 4067void
4122keys_of_keymap () 4068keys_of_keymap (void)
4123{ 4069{
4124 initial_define_key (global_map, 033, "ESC-prefix"); 4070 initial_define_key (global_map, 033, "ESC-prefix");
4125 initial_define_key (global_map, Ctl ('X'), "Control-X-prefix"); 4071 initial_define_key (global_map, Ctl ('X'), "Control-X-prefix");