use defines for file descriptors
[unix-history] / usr / src / usr.bin / ctags / lisp.c
CommitLineData
86e31eca 1/*
ffa8a268
KB
2 * Copyright (c) 1987 The Regents of the University of California.
3 * All rights reserved.
4 *
a3bb5b82 5 * %sccs.include.redist.c%
86e31eca
KB
6 */
7
8#ifndef lint
a3bb5b82 9static char sccsid[] = "@(#)lisp.c 5.4 (Berkeley) %G%";
ffa8a268 10#endif /* not lint */
86e31eca
KB
11
12#include <ctags.h>
38dde0cd 13#include <string.h>
86e31eca
KB
14
15extern char *lbp; /* pointer shared with fortran */
16
17/*
18 * lisp tag functions
19 * just look for (def or (DEF
20 */
21l_entries()
22{
23 register int special;
24 register char *cp,
25 savedc;
26 char tok[MAXTOKEN];
27
28 for (;;) {
29 lineftell = ftell(inf);
30 if (!fgets(lbuf,sizeof(lbuf),inf))
31 return;
32 ++lineno;
33 lbp = lbuf;
34 if (!cicmp("(def"))
35 continue;
36 special = NO;
37 switch(*lbp | ' ') {
38 case 'm':
39 if (cicmp("method"))
40 special = YES;
41 break;
42 case 'w':
43 if (cicmp("wrapper") || cicmp("whopper"))
44 special = YES;
45 }
46 for (;!isspace(*lbp);++lbp);
47 for (;isspace(*lbp);++lbp);
48 for (cp = lbp;*cp && *cp != '\n';++cp);
49 *cp = EOS;
50 if (special) {
51 if (!(cp = index(lbp,')')))
52 continue;
53 for (;cp >= lbp && *cp != ':';--cp);
54 if (cp < lbp)
55 continue;
56 lbp = cp;
57 for (;*cp && *cp != ')' && *cp != ' ';++cp);
58 }
59 else
60 for (cp = lbp + 1;
61 *cp && *cp != '(' && *cp != ' ';++cp);
62 savedc = *cp;
63 *cp = EOS;
64 (void)strcpy(tok,lbp);
65 *cp = savedc;
66 getline();
67 pfnote(tok,lineno);
68 }
69 /*NOTREACHED*/
70}