ctags would create a corrupt tags file if the source C file used '//' style
comments such as: // The main() function Teach ctags about this style of commenting. Submitted by: Eric Allman <eric@Sendmail.ORG> MFC after: 1 week
This commit is contained in:
parent
55f45d9885
commit
fb5d43aa53
@ -122,8 +122,8 @@ c_entries()
|
||||
* "foo() XX comment XX { int bar; }"
|
||||
*/
|
||||
case '/':
|
||||
if (GETC(==, '*')) {
|
||||
skip_comment();
|
||||
if (GETC(==, '*') || c == '/') {
|
||||
skip_comment(c);
|
||||
continue;
|
||||
}
|
||||
(void)ungetc(c, inf);
|
||||
@ -273,8 +273,8 @@ func_entry()
|
||||
break;
|
||||
case '/':
|
||||
/* skip comments */
|
||||
if (GETC(==, '*'))
|
||||
skip_comment();
|
||||
if (GETC(==, '*') || c == '/')
|
||||
skip_comment(c);
|
||||
break;
|
||||
case '(':
|
||||
level++;
|
||||
@ -301,8 +301,8 @@ func_entry()
|
||||
SETLINE;
|
||||
if (intoken(c) || c == '{')
|
||||
break;
|
||||
if (c == '/' && GETC(==, '*'))
|
||||
skip_comment();
|
||||
if (c == '/' && (GETC(==, '*') || c == '/'))
|
||||
skip_comment(c);
|
||||
else { /* don't ever "read" '/' */
|
||||
(void)ungetc(c, inf);
|
||||
return (NO);
|
||||
@ -422,7 +422,8 @@ str_entry(c)
|
||||
* skip over comment
|
||||
*/
|
||||
void
|
||||
skip_comment()
|
||||
skip_comment(t)
|
||||
int t; /* comment character */
|
||||
{
|
||||
int c; /* character read */
|
||||
int star; /* '*' flag */
|
||||
@ -434,10 +435,12 @@ skip_comment()
|
||||
star = YES;
|
||||
break;
|
||||
case '/':
|
||||
if (star)
|
||||
if (star && t == '*')
|
||||
return;
|
||||
break;
|
||||
case '\n':
|
||||
if (t == '/')
|
||||
return;
|
||||
SETLINE;
|
||||
/*FALLTHROUGH*/
|
||||
default:
|
||||
@ -500,8 +503,8 @@ skip_key(key)
|
||||
break;
|
||||
case '/':
|
||||
/* skip comments */
|
||||
if (GETC(==, '*')) {
|
||||
skip_comment();
|
||||
if (GETC(==, '*') || c == '/') {
|
||||
skip_comment(c);
|
||||
break;
|
||||
}
|
||||
(void)ungetc(c, inf);
|
||||
|
@ -97,4 +97,4 @@ extern void l_entries __P((void));
|
||||
extern void y_entries __P((void));
|
||||
extern int PF_funcs __P((void));
|
||||
extern void c_entries __P((void));
|
||||
extern void skip_comment __P((void));
|
||||
extern void skip_comment __P((int));
|
||||
|
@ -85,8 +85,8 @@ y_entries()
|
||||
(void)ungetc(c, inf);
|
||||
break;
|
||||
case '/':
|
||||
if (GETC(==, '*'))
|
||||
skip_comment();
|
||||
if (GETC(==, '*') || c == '/')
|
||||
skip_comment(c);
|
||||
else
|
||||
(void)ungetc(c, inf);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user