On 09/19/2013 03:21 PM, Colomban Wendling wrote:
Le 20/09/2013 00:07, Tory Gaurnier a écrit :
[...]
So, the issue now is I can't really figure out how to build CTags, from what I could figure out it seems I need to run the configure script to add values to the Makefile.in, then run make -f Makefile.in, but that doesn't seem to work, and there are no instructions that I can find on building, I've checked the Readme
It's in INSTALL, though a little too detailed (I guess this INSTALL file is just Autotool's one with slight modifications)
, and the FAQ. Have any of you guys built CTags before and can point me in the right direction???
You need to first generate the configure script using `autoreconf`, then run that configure script (`./configure [OPTIONS]`, which will generate Makefiles), and then run make:
autoreconf -v && ./configure && make
Regards, Colomban _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Ok, so now when I build it, I'm getting some warning, I'm not sure if these are normal or if something needs to be configured, I'm getting these warnings on build: autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal configure.ac:489: warning: underquoted definition of CHECK_PROTO configure.ac:489: run info '(automake)Extending aclocal' configure.ac:489: or see http://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf autoreconf: running: /usr/bin/autoheader autoreconf: configure.ac: not using Automake autoreconf: Leaving directory `.' Exuberant Ctags, version 5.8 Linux 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:52:24 UTC 2013 x86_64
Then the rest appears normal.
Then when I run, the program segfaults on freeParserResources () at parse.c:364 Which is this line of code: eFree (lang->name); Which is being called from main.c:572
Now my findQMLTags function in my qml.c file is very closely following the awk.c function findAwkTags, so I don't see how it could be caused by this, but I may be wrong.
Here is what I have so far:
----CODE STARTS HERE---- #include "general.h" /* always include first */
#include <string.h> /* to declare strxxx() functions */
#include "parse.h" /* always include */ #include "read.h" /* to define file fileReadLine() */
typedef enum { QML_OBJECT, JS_FUNCTION } QMLKind;
static kindOption QMLKinds [] = { { TRUE, 'o', "object", "objects" }, { TRUE, 'f', "function", "functions" } };
static void findQMLTags(void) { vString *name = vStringNew(); const unsigned char *line;
// If line is a function while((line = fileReadLine()) != NULL) { if(strncmp((const char*)line, "function", (size_t)8) == 0 && isspace((int)line[8])) { const unsigned char *cp = line + 8;
while(isspace((int)*cp)) ++cp; while(isalnum((int)*cp) || *cp == '_') { vStringPut (name, (int)*cp); ++cp; }
vStringTerminate(name);
while(isspace((int)*cp)) ++cp; if(*cp == '(') makeSimpleTag(name, QMLKinds, JS_FUNCTION); vStringClear(name); if(*cp != '\0') ++cp; } }
vStringDelete (name); }
extern parserDefinition *QMLParser(void) { parserDefinition* def = parserNew("QML"); static const char *const extensions [] = { "QML", NULL };
def->name = "QML"; def->kinds = QMLKinds; def->kindCount = KIND_COUNT(QMLKinds); def->extensions = extensions; def->parser = findQMLTags; //def->parser2; // Not sure I will need this def->regex = FALSE;
return def; } ----CODE ENDS HERE----