summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/etags.c18
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)
int off = tokoff;
int len = toklen;
- /* Rewrite the tag so that emacs lisp DEFUNs
- can be found by their elisp name */
if (defun)
{
off += 1;
len -= 1;
+
+ /* First, tag it as its C name */
+ linebuffer_setlen (&token_name, toklen);
+ memcpy (token_name.buffer,
+ newlb.buffer + tokoff, toklen);
+ token_name.buffer[toklen] = '\0';
+ token.named = true;
+ token.lineno = lineno;
+ token.offset = tokoff;
+ token.length = toklen;
+ token.line = newlb.buffer;
+ token.linepos = newlinepos;
+ token.valid = true;
+ make_C_tag (funorvar);
}
+ /* Rewrite the tag so that emacs lisp DEFUNs
+ can be found also by their elisp name */
linebuffer_setlen (&token_name, len);
memcpy (token_name.buffer,
newlb.buffer + off, len);