* lib-src/etags.c (Perl_functions): Support "use constant".
* doc/emacs/maintaining.texi (Tag Syntax): Mention Perl's "use constant". Fixes: debbugs:5055
This commit is contained in:
parent
f64898abf4
commit
00054d2199
4 changed files with 31 additions and 8 deletions
|
@ -1,3 +1,7 @@
|
|||
2012-12-01 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* maintaining.texi (Tag Syntax): Mention Perl's "use constant".
|
||||
|
||||
2012-11-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* doclicense.texi, gpl.texi: Update to latest version from FSF.
|
||||
|
|
|
@ -1766,11 +1766,11 @@ the file.
|
|||
|
||||
@item
|
||||
In Perl code, the tags are the packages, subroutines and variables
|
||||
defined by the @code{package}, @code{sub}, @code{my} and @code{local}
|
||||
keywords. Use @samp{--globals} if you want to tag global variables.
|
||||
Tags for subroutines are named @samp{@var{package}::@var{sub}}. The
|
||||
name for subroutines defined in the default package is
|
||||
@samp{main::@var{sub}}.
|
||||
defined by the @code{package}, @code{sub}, @code{use constant},
|
||||
@code{my}, and @code{local} keywords. Use @samp{--globals} if you
|
||||
want to tag global variables. Tags for subroutines are named
|
||||
@samp{@var{package}::@var{sub}}. The name for subroutines defined in
|
||||
the default package is @samp{main::@var{sub}}.
|
||||
|
||||
@item
|
||||
In PHP code, tags are functions, classes and defines. Vars are tags
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2012-12-01 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* etags.c (Perl_functions): Support "use constant" (Bug#5055).
|
||||
|
||||
2012-11-27 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
|
||||
|
|
|
@ -4269,6 +4269,7 @@ Asm_labels (FILE *inf)
|
|||
/*
|
||||
* Perl support
|
||||
* Perl sub names: /^sub[ \t\n]+[^ \t\n{]+/
|
||||
* /^use constant[ \t\n]+[^ \t\n{=,;]+/
|
||||
* Perl variable names: /^(my|local).../
|
||||
* Original code by Bart Robinson <lomew@cs.utah.edu> (1995)
|
||||
* Additions by Michael Ernst <mernst@alum.mit.edu> (1997)
|
||||
|
@ -4291,9 +4292,10 @@ Perl_functions (FILE *inf)
|
|||
}
|
||||
else if (LOOKING_AT (cp, "sub"))
|
||||
{
|
||||
char *pos;
|
||||
char *sp = cp;
|
||||
char *pos, *sp;
|
||||
|
||||
subr:
|
||||
sp = cp;
|
||||
while (!notinname (*cp))
|
||||
cp++;
|
||||
if (cp == sp)
|
||||
|
@ -4316,8 +4318,21 @@ Perl_functions (FILE *inf)
|
|||
lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
|
||||
free (name);
|
||||
}
|
||||
}
|
||||
else if (LOOKING_AT (cp, "use constant")
|
||||
|| LOOKING_AT (cp, "use constant::defer"))
|
||||
{
|
||||
/* For hash style multi-constant like
|
||||
use constant { FOO => 123,
|
||||
BAR => 456 };
|
||||
only the first FOO is picked up. Parsing across the value
|
||||
expressions would be difficult in general, due to possible nested
|
||||
hashes, here-documents, etc. */
|
||||
if (*cp == '{')
|
||||
cp = skip_spaces (cp+1);
|
||||
goto subr;
|
||||
}
|
||||
else if (globals) /* only if we are tagging global vars */
|
||||
else if (globals) /* only if we are tagging global vars */
|
||||
{
|
||||
/* Skip a qualifier, if any. */
|
||||
bool qual = LOOKING_AT (cp, "my") || LOOKING_AT (cp, "local");
|
||||
|
|
Loading…
Add table
Reference in a new issue