File: app.cpp

package info (click to toggle)
kdevelop3 4%3A3.2.0-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 58,220 kB
  • ctags: 33,997
  • sloc: cpp: 278,404; ansic: 48,238; sh: 23,721; tcl: 19,882; perl: 5,498; makefile: 4,717; ruby: 1,610; python: 1,549; awk: 1,484; xml: 563; java: 359; php: 20; asm: 14; ada: 5; pascal: 4; fortran: 4; haskell: 2; sql: 1
file content (30 lines) | stat: -rw-r--r-- 951 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <ruby.h>

#include <qstring.h>
#include <qfileinfo.h>
#include <kinstance.h>
#include <kstandarddirs.h>

int main(int argc, char **argv) {
    KInstance * instance = new KInstance("%{APPNAMELC}");
    QString appdir = ::locate("data", "%{APPNAMELC}/main.rb", instance);
    delete instance;
    if (appdir.isNull()) {
        qFatal("Error: Can't find \"%{APPNAMELC}/main.rb\"\n");
    }
    QFileInfo program(appdir);
     
    char ** rubyargs = (char **) calloc(argc+4, sizeof(char *));
    rubyargs[0] = strdup(argv[0]);
    rubyargs[1] = strdup("-KU");
    rubyargs[2] = strdup(QString("-C%1").arg(program.dirPath()).latin1());
    rubyargs[3] = strdup(QString("-I%1").arg(program.dirPath()).latin1());
    rubyargs[4] = strdup(program.fileName().latin1());
    for (int i = 1; i < argc; i++) {
        rubyargs[i+4] = argv[i];
    }

    ruby_init();
    ruby_options(argc+4, rubyargs); 
    ruby_run();
}