wolfgang@mgm.mit.edu (Wolfgang Rupprecht) (11/15/88)
Here is a set of diffs for etags.c for generating tags for
assembly-code files. Just the thing for hacking the kernel, and also
including "locore.s" and friends in the tags table.
There is also one bug-fix. The "_" char incorrectly terminated C
tokens.
cd /u/src/gnuemacs-18.52/etc/
diff -c etags.c.orig etags.c
*** etags.c.orig Thu Jun 23 08:45:37 1988
--- etags.c Mon Nov 14 20:52:38 1988
***************
*** 1,3 ****
--- 1,7 ----
+ /*
+ * Hacked to understand assembly files. -wolfgang 11/3/88
+ */
+
/* Tags file maker to go with GNUmacs
Copyright (C) 1984, 1987, 1988 Free Software Foundation, Inc. and Ken Arnold
***************
*** 533,538 ****
--- 537,551 ----
fclose(inf);
return;
}
+ /*
+ * assume that ".s" or ".a" is assembly code. -wolfgang
+ */
+ if (cp && (cp[1] == 's' || cp[1] == 'a') && cp[2] == '\0')
+ {
+ Asm_funcs(inf);
+ fclose(inf);
+ return;
+ }
/* if not a .c or .h or .y file, try fortran */
if (cp && (cp[1] != 'c' && cp[1] != 'h' && cp[1] != 'y')
&& cp[2] == '\0')
***************
*** 1195,1203 ****
while (isspace(*dbp))
dbp++;
! if (*dbp == 0 || !isalpha(*dbp))
return;
! for (cp = dbp+1; *cp && (isalpha(*cp) || isdigit(*cp)); cp++)
continue;
c = cp[0];
cp[0] = 0;
--- 1208,1216 ----
while (isspace(*dbp))
dbp++;
! if (*dbp == 0 || (!isalpha(*dbp)) && (*dbp != '_'))
return;
! for (cp = dbp+1; *cp && (isalpha(*cp) || isdigit(*cp) || (*cp == '_')); cp++)
continue;
c = cp[0];
cp[0] = 0;
***************
*** 1234,1239 ****
--- 1247,1277 ----
while (isspace(*dbp)) dbp++;
L_getit();
}
+ }
+ }
+
+ Asm_funcs (fi)
+ FILE *fi;
+ {
+ int i;
+ register char c;
+
+ lineno = 0;
+ charno = 0;
+ pfcnt = 0;
+
+ while (!feof (fi))
+ {
+ lineno++;
+ linecharno = charno;
+ charno += readline (&lb, fi) + 1;
+ dbp = lb.buffer;
+
+ for (i = 0; ((c = dbp[i]) && !isspace(c)) && (c != ':') ; i++)
+ ;
+
+ if ((i > 0) && (c == ':'))
+ getit();
}
}
diff exited abnormally with code 1 at Mon Nov 14 20:53:47
Wolfgang Rupprecht ARPA: wolfgang@mgm.mit.edu (IP 18.82.0.114)
TEL: (617) 267-4365 UUCP: mit-eddie!mgm.mit.edu!wolfgang