User: james
Date: 05/02/03 19:09:30
Modified: xemacs/etc ChangeLog ETAGS.EBNF
Log:
Update to Francesco's 17.11 release. See xemacs-patches message with ID
<psvf99cy99.fsf(a)diannao.ittc.ku.edu>.
Revision Changes Path
1.184 +4 -0 XEmacs/xemacs/lib-src/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/ChangeLog,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -b -r1.183 -r1.184
--- ChangeLog 2005/01/26 09:53:28 1.183
+++ ChangeLog 2005/02/03 18:09:26 1.184
@@ -1,3 +1,7 @@
+2005-02-03 Jerry James <james(a)xemacs.org>
+
+ * etags.c: Update to author version 17.11.
+
2005-01-26 Ben Wing <ben(a)xemacs.org>
* fakemail.c (main): Add args to fix warning.
1.33 +67 -17 XEmacs/xemacs/lib-src/etags.c
(In the diff below, changes in quantity of whitespace are not shown.)
Index: etags.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/etags.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- etags.c 2004/10/07 14:51:19 1.32
+++ etags.c 2005/02/03 18:09:26 1.33
@@ -1,5 +1,5 @@
/* Tags file maker to go with GNU Emacs -*- coding: latin-1 -*-
- Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2001, 2002
+ Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2004
Free Software Foundation, Inc. and Ken Arnold
This file is not considered part of GNU Emacs.
@@ -40,7 +40,7 @@
* configuration file containing regexp definitions for etags.
*/
-char pot_etags_version[] = "@(#) pot revision number is 17.6";
+char pot_etags_version[] = "@(#) pot revision number is 17.11";
#define TRUE 1
#define FALSE 0
@@ -342,6 +342,7 @@
static void Cplusplus_entries __P((FILE *));
static void Cstar_entries __P((FILE *));
static void Erlang_functions __P((FILE *));
+static void Forth_words __P((FILE *));
static void Fortran_functions __P((FILE *));
static void HTML_labels __P((FILE *));
static void Lisp_functions __P((FILE *));
@@ -630,6 +631,12 @@
"In Erlang code, the tags are the functions, records and macros\n\
defined in the file.";
+char *Forth_suffixes [] =
+ { "fth", "tok", NULL };
+static char Forth_help [] =
+"In Forth code, tags are words defined by `:',\n\
+constant, code, create, defer, value, variable, buffer:, field.";
+
static char *Fortran_suffixes [] =
{ "F", "f", "f90", "for", NULL };
static char Fortran_help [] =
@@ -777,6 +784,7 @@
{ "c*", no_lang_help, Cstar_entries, Cstar_suffixes },
{ "cobol", Cobol_help, Cobol_paragraphs, Cobol_suffixes },
{ "erlang", Erlang_help, Erlang_functions, Erlang_suffixes },
+ { "forth", Forth_help, Forth_words, Forth_suffixes },
{ "fortran", Fortran_help, Fortran_functions, Fortran_suffixes },
{ "html", HTML_help, HTML_labels, HTML_suffixes },
{ "java", Cjava_help, Cjava_entries, Cjava_suffixes },
@@ -1179,12 +1187,14 @@
globals = TRUE;
}
+ /* When the optstring begins with a '-' getopt_long does not rearrange the
+ non-options arguments to be at the end, but leaves them alone. */
optstring = "-";
#ifdef ETAGS_REGEXPS
optstring = "-r:Rc:";
#endif /* ETAGS_REGEXPS */
- if (LONG_OPTIONS)
- optstring += 1;
+ if (!LONG_OPTIONS)
+ optstring += 1; /* remove the initial '-' */
optstring = concat (optstring,
"Cf:Il:o:SVhH",
(CTAGS) ? "BxdtTuvw" : "aDi:");
@@ -1284,6 +1294,7 @@
/* NOTREACHED */
}
+ /* No more options. Store the rest of arguments. */
for (; optind < argc; optind++)
{
argbuffer[current_arg].arg_type = at_filename;
@@ -4074,10 +4085,18 @@
char_pointer = line_buffer.buffer, \
TRUE); \
)
-#define LOOKING_AT(cp, keyword) /* keyword is a constant string */ \
- (strneq ((cp), keyword, sizeof(keyword)-1) /* cp points at keyword */ \
- && notinname ((cp)[sizeof(keyword)-1]) /* end of keyword */ \
- && ((cp) = skip_spaces((cp)+sizeof(keyword)-1))) /* skip spaces */
+
+#define LOOKING_AT(cp, kw) /* kw is the keyword, a literal string */ \
+ ((assert("" kw), TRUE) /* syntax error if not a literal string */ \
+ && strneq ((cp), kw, sizeof(kw)-1) /* cp points at kw */ \
+ && notinname ((cp)[sizeof(kw)-1]) /* end of kw */ \
+ && ((cp) = skip_spaces((cp)+sizeof(kw)-1))) /* skip spaces */
+
+/* Similar to LOOKING_AT but does not use notinname, does not skip */
+#define LOOKING_AT_NOCASE(cp, kw) /* the keyword is a literal string */ \
+ ((assert("" kw), TRUE) /* syntax error if not a literal string */ \
+ && strncaseeq ((cp), kw, sizeof(kw)-1) /* cp points at kw */ \
+ && ((cp) += sizeof(kw)-1)) /* skip spaces */
/*
* Read a file, but do no processing. This is used to do regexp
@@ -4955,7 +4974,7 @@
/*
- * Postscript tag functions
+ * Postscript tags
* Just look for lines where the first character is '/'
* Also look at "defineps" for PSWrap
* Ideas by:
@@ -4986,6 +5005,43 @@
/*
+ * Forth tags
+ * Ignore anything after \ followed by space or in ( )
+ * Look for words defined by :
+ * Look for constant, code, create, defer, value, and variable
+ * OBP extensions: Look for buffer:, field,
+ * Ideas by Eduardo Horvath <eeh(a)netbsd.org> (2004)
+ */
+static void
+Forth_words (inf)
+ FILE *inf;
+{
+ register char *bp;
+
+ LOOP_ON_INPUT_LINES (inf, lb, bp)
+ while ((bp = skip_spaces (bp))[0] != '\0')
+ if (bp[0] == '\\' && iswhite(bp[1]))
+ break; /* read next line */
+ else if (bp[0] == '(' && iswhite(bp[1]))
+ do /* skip to ) or eol */
+ bp++;
+ while (*bp != ')' && *bp != '\0');
+ else if ((bp[0] == ':' && iswhite(bp[1]) && bp++)
+ || LOOKING_AT_NOCASE (bp, "constant")
+ || LOOKING_AT_NOCASE (bp, "code")
+ || LOOKING_AT_NOCASE (bp, "create")
+ || LOOKING_AT_NOCASE (bp, "defer")
+ || LOOKING_AT_NOCASE (bp, "value")
+ || LOOKING_AT_NOCASE (bp, "variable")
+ || LOOKING_AT_NOCASE (bp, "buffer:")
+ || LOOKING_AT_NOCASE (bp, "field"))
+ get_tag (skip_spaces (bp), NULL); /* Yay! A definition! */
+ else
+ bp = skip_non_spaces (bp);
+}
+
+
+/*
* Scheme tag functions
* look for (def... xyzzy
* (def... (xyzzy
@@ -4993,7 +5049,6 @@
* (set! xyzzy
* Original code by Ken Haase (1985?)
*/
-
static void
Scheme_functions (inf)
FILE *inf;
@@ -5212,11 +5267,6 @@
}
-/* Similar to LOOKING_AT but does not use notinname, does not skip */
-#define LOOKING_AT_NOCASE(cp, kw) /* kw is a constant string */ \
- (strncaseeq ((cp), kw, sizeof(kw)-1) /* cp points at kw */ \
- && ((cp) += sizeof(kw)-1)) /* skip spaces */
-
/*
* HTML support.
* Contents of <title>, <h1>, <h2>, <h3> are tags.
@@ -6501,7 +6551,7 @@
: *s1 - *s2);
}
-/* Skip spaces, return new pointer. */
+/* Skip spaces (end of string is not space), return new pointer. */
static char *
skip_spaces (cp)
char *cp;
@@ -6511,7 +6561,7 @@
return cp;
}
-/* Skip non spaces, return new pointer. */
+/* Skip non spaces, except end of string, return new pointer. */
static char *
skip_non_spaces (cp)
char *cp;
1.52 +4 -0 XEmacs/xemacs/etc/ChangeLog
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/ChangeLog,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- ChangeLog 2005/01/31 20:08:32 1.51
+++ ChangeLog 2005/02/03 18:09:30 1.52
@@ -1,3 +1,7 @@
+2005-02-03 Jerry James <james(a)xemacs.org>
+
+ * ETAGS.EBNF: Update to author version 17.11.
+
2005-01-31 Ben Wing <ben(a)xemacs.org>
Delete stuff that is irrelevant, mislocated or woefully out-of-date.
1.3 +1 -1 XEmacs/xemacs/etc/ETAGS.EBNF
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ETAGS.EBNF
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/ETAGS.EBNF,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- ETAGS.EBNF 2004/10/07 14:51:11 1.2
+++ ETAGS.EBNF 2005/02/03 18:09:30 1.3
@@ -2,7 +2,7 @@
This file contains two sections:
-1) An EBNF (Extended Backus Normal Form) description of the format of
+1) An EBNF (Extended Backus-Naur Form) description of the format of
the tags file created by etags.c and interpreted by etags.el;
2) A discussion of tag names and implicit tag names.