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----
_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to