source: rtems/doc/tools/src2html1.4a/Ctags/lisp.c @ 52461c5

4.104.114.84.95
Last change on this file since 52461c5 was 52461c5, checked in by Joel Sherrill <joel.sherrill@…>, on Apr 14, 1998 at 4:03:45 PM

New files

  • Property mode set to 100644
File size: 3.0 KB
Line 
1/*
2 * Copyright (c) 1987 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 *    must display the following acknowledgement:
15 *      This product includes software developed by the University of
16 *      California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 *    may be used to endorse or promote products derived from this software
19 *    without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef lint
35static char sccsid[] = "@(#)lisp.c      5.5 (Berkeley) 2/26/91";
36#endif /* not lint */
37
38#include <stdio.h>
39#include <string.h>
40#include "ctags.h"
41
42extern char     *lbp;                   /* pointer shared with fortran */
43
44/*
45 * lisp tag functions
46 * just look for (def or (DEF
47 */
48l_entries()
49{
50        register int    special;
51        register char   *cp,
52                        savedc;
53        char    tok[MAXTOKEN];
54
55        for (;;) {
56                lineftell = ftell(inf);
57                if (!fgets(lbuf,sizeof(lbuf),inf))
58                        return;
59                ++lineno;
60                lbp = lbuf;
61                if (!cicmp("(def"))
62                        continue;
63                special = NO;
64                switch(*lbp | ' ') {
65                case 'm':
66                        if (cicmp("method"))
67                                special = YES;
68                        break;
69                case 'w':
70                        if (cicmp("wrapper") || cicmp("whopper"))
71                                special = YES;
72                }
73                for (;!isspace(*lbp);++lbp);
74                for (;isspace(*lbp);++lbp);
75                for (cp = lbp;*cp && *cp != '\n';++cp);
76                *cp = EOS;
77                if (special) {
78                        if (!(cp = index(lbp,')')))
79                                continue;
80                        for (;cp >= lbp && *cp != ':';--cp);
81                        if (cp < lbp)
82                                continue;
83                        lbp = cp;
84                        for (;*cp && *cp != ')' && *cp != ' ';++cp);
85                }
86                else
87                        for (cp = lbp + 1;
88                            *cp && *cp != '(' && *cp != ' ';++cp);
89                savedc = *cp;
90                *cp = EOS;
91                (void)strcpy(tok,lbp);
92                *cp = savedc;
93                getline();
94                pfnote(tok,lineno);
95        }
96        /*NOTREACHED*/
97}
Note: See TracBrowser for help on using the repository browser.