diff options
Diffstat (limited to 'languages/ruby/app_templates/tdeapp/app.cpp')
-rw-r--r-- | languages/ruby/app_templates/tdeapp/app.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/languages/ruby/app_templates/tdeapp/app.cpp b/languages/ruby/app_templates/tdeapp/app.cpp new file mode 100644 index 00000000..04770335 --- /dev/null +++ b/languages/ruby/app_templates/tdeapp/app.cpp @@ -0,0 +1,30 @@ +#include <ruby.h> + +#include <tqstring.h> +#include <tqfileinfo.h> +#include <kinstance.h> +#include <kstandarddirs.h> + +int main(int argc, char **argv) { + TDEInstance * instance = new TDEInstance("%{APPNAMELC}"); + TQString appdir = ::locate("data", "%{APPNAMELC}/main.rb", instance); + delete instance; + if (appdir.isNull()) { + tqFatal("Error: Can't find \"%{APPNAMELC}/main.rb\"\n"); + } + TQFileInfo program(appdir); + + char ** rubyargs = (char **) calloc(argc+4, sizeof(char *)); + rubyargs[0] = strdup(argv[0]); + rubyargs[1] = strdup("-KU"); + rubyargs[2] = strdup(TQString("-C%1").arg(program.dirPath()).latin1()); + rubyargs[3] = strdup(TQString("-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(); +} |