blob: 8d6af02d9383254218b3f672c714ccf24b2a495d (
plain)
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();
}
|