diff options
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/etags.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib-src/etags.c b/lib-src/etags.c index 3620b0fd321..a81b46d2e07 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c | |||
| @@ -3595,13 +3595,27 @@ C_entries (int c_ext, FILE *inf) | |||
| 3595 | int off = tokoff; | 3595 | int off = tokoff; |
| 3596 | int len = toklen; | 3596 | int len = toklen; |
| 3597 | 3597 | ||
| 3598 | /* Rewrite the tag so that emacs lisp DEFUNs | ||
| 3599 | can be found by their elisp name */ | ||
| 3600 | if (defun) | 3598 | if (defun) |
| 3601 | { | 3599 | { |
| 3602 | off += 1; | 3600 | off += 1; |
| 3603 | len -= 1; | 3601 | len -= 1; |
| 3602 | |||
| 3603 | /* First, tag it as its C name */ | ||
| 3604 | linebuffer_setlen (&token_name, toklen); | ||
| 3605 | memcpy (token_name.buffer, | ||
| 3606 | newlb.buffer + tokoff, toklen); | ||
| 3607 | token_name.buffer[toklen] = '\0'; | ||
| 3608 | token.named = true; | ||
| 3609 | token.lineno = lineno; | ||
| 3610 | token.offset = tokoff; | ||
| 3611 | token.length = toklen; | ||
| 3612 | token.line = newlb.buffer; | ||
| 3613 | token.linepos = newlinepos; | ||
| 3614 | token.valid = true; | ||
| 3615 | make_C_tag (funorvar); | ||
| 3604 | } | 3616 | } |
| 3617 | /* Rewrite the tag so that emacs lisp DEFUNs | ||
| 3618 | can be found also by their elisp name */ | ||
| 3605 | linebuffer_setlen (&token_name, len); | 3619 | linebuffer_setlen (&token_name, len); |
| 3606 | memcpy (token_name.buffer, | 3620 | memcpy (token_name.buffer, |
| 3607 | newlb.buffer + off, len); | 3621 | newlb.buffer + off, len); |