Ctags: C: Eine Funktion wird als Variable erkannt

Erstellt am 29. Juni 2016  ·  3Kommentare  ·  Quelle: universal-ctags/ctags

Hallo,

Die ctags e5b7a2508db6e1374ea78a300cc9b45f4b26b02a erkennt eine Funktion als Variable im Header epan/except.h der Wireshark-Bibliothek:

WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

Der Befehl

ctags -x --c-kinds=fpvx --language-force=c epan/except.h | grep except_unhandled_catcher

kehrt zurück:

except_t variable 100 epan/except.h WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

Es ist jedoch eine Funktion außer_unhandled_catcher (sowohl Rückgabewerttyp als auch Parametertyp sind Funktionszeiger).

Vielen Dank.

Parser buenhancement

Hilfreichster Kommentar

jeez... diese Syntax ist schwer :D
Ich werde versuchen, es zu verstehen.

Alle 3 Kommentare

Ich kann dies bestätigen und dass der alte C-Parser das richtig gemacht hat. Das Ignorieren/Entfernen von WS_DLL_PUBLIC ändert in beiden Fällen nichts.

$ ./ctags -x --OldC-kinds=+pv --languages=OldC /tmp/1012.c
except_unhandled_catcher prototype     1 /tmp/1012.c      WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

jeez... diese Syntax ist schwer :D
Ich werde versuchen, es zu verstehen.

Dies sollte durch #1119 behoben werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen