annotate src/keymap.h @ 44604:4702b23921b4

Avoid doubly tagging parse.y when both parse.c and parse.y are given on the command line, in either order. * etags.c (find_entries): Delete tags previously obtained from file xxx.c's #line directives when parsing file xxx.y. This is generally done for automatically generated files containing #line directives. This handles the case when xxx.y is tagged before xxx.c, and the entries of xxx.c pointing to xxx.y should be discarded. (language): Added the metasource member. Initializers changed. (invalidate_nodes): New function. (readline): Discard lines after having found a #line directive pointing to an already tagged file. This handles the case when xxx.y is tagged before xxx.c, and the entries of xxx.c pointing to xxx.y should be discarded. (fdesc): New structure for keeping track of input files. (fdesc): Remove `file' member (a string) and use instead a pointer to a file description structure. (curfile, curfiledir, curtagfname, curlang, nocharno, forced_lang): Global variables removed in favor of fdhead and curfdp, pointers to file description strucures. (longopts, main, print_help): Use the CTAGS conditional to include or exclude options that work on etags or ctags only. (process_file, find_entries, pfnote, add_node, put_entries, readline): Use fdhead and curfdp. (process_file, find_entries): Do not take an arg string, all callers changed. * etags.c (longopts, print_help, main): Test CTAGS to disallow options that are not right for either etags or ctags. * etags.c (number_len, total_size_of_entries): Define them also in CTAGS mode, because gcc does not compile all refs away.
author Francesco Potortì <pot@gnu.org>
date Mon, 15 Apr 2002 14:18:47 +0000
parents 3c0d7fbc071a
children 9fe119b14379 7c5246c7a70b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39691
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
1 /* Functions to manipulate keymaps.
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
2 Copyright (C) 2001 Free Software Foundation, Inc.
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
3
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
4 This file is part of GNU Emacs.
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
5
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
9 any later version.
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
10
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
14 GNU General Public License for more details.
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
15
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
20
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
21 #ifndef KEYMAP_H
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
22 #define KEYMAP_H
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
23
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
24 #define KEYMAPP(m) (!NILP (get_keymap (m, 0, 0)))
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
25 extern Lisp_Object Qkeymap, Qmenu_bar;
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
26 extern Lisp_Object current_global_map;
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
27 EXFUN (Fmake_sparse_keymap, 1);
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
28 EXFUN (Fkeymap_prompt, 1);
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
29 EXFUN (Fdefine_key, 3);
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
30 EXFUN (Flookup_key, 3);
43495
3c0d7fbc071a (Fremap_command): Declare extern.
Kim F. Storm <storm@cua.dk>
parents: 43153
diff changeset
31 EXFUN (Fremap_command, 1);
43153
d6162a8dc872 (Fkey_binding, Fwhere_is_internal): Update prototype.
Kim F. Storm <storm@cua.dk>
parents: 41292
diff changeset
32 EXFUN (Fkey_binding, 3);
39691
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
33 EXFUN (Fkey_description, 1);
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
34 EXFUN (Fsingle_key_description, 2);
43153
d6162a8dc872 (Fkey_binding, Fwhere_is_internal): Update prototype.
Kim F. Storm <storm@cua.dk>
parents: 41292
diff changeset
35 EXFUN (Fwhere_is_internal, 5);
39691
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
36 extern Lisp_Object access_keymap P_ ((Lisp_Object, Lisp_Object, int, int, int));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
37 extern Lisp_Object get_keyelt P_ ((Lisp_Object, int));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
38 extern Lisp_Object get_keymap P_ ((Lisp_Object, int, int));
41292
f8c58d8aa72b (describe_vector): Update prototype.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39806
diff changeset
39 extern void describe_vector P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
f8c58d8aa72b (describe_vector): Update prototype.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39806
diff changeset
40 void (*) (Lisp_Object, Lisp_Object), int,
39691
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
41 Lisp_Object, Lisp_Object, int *, int));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
42 extern void describe_map_tree P_ ((Lisp_Object, int, Lisp_Object, Lisp_Object,
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
43 char *, int, int, int));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
44 extern int current_minor_maps P_ ((Lisp_Object **, Lisp_Object **));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
45 extern void initial_define_key P_ ((Lisp_Object, int, char *));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
46 extern void initial_define_lispy_key P_ ((Lisp_Object, char *, char *));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
47 extern void syms_of_keymap P_ ((void));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
48 extern void keys_of_keymap P_ ((void));
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
49
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
50
27fe3d5767ed New file. Extracted from lisp.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff changeset
51 #endif