Module: Tebako::Packager::PatchMain

Defined in:
lib/tebako/packager/patch_main.rb

Overview

Ruby patching literals (main.c)

Constant Summary collapse

MAIN_C_SUBST_RB_MAIN =
"/* -- Start of tebako patch -- */\n#include <tebako/tebako-main.h>\n/* -- End of tebako patch -- */\n\nstatic int\nrb_main(int argc, char **argv)\n"
MAIN_C_SUBST_MAIN =
"/* -- Start of tebako patch -- */\n#include <tebako/tebako-main.h>\n/* -- End of tebako patch -- */\n\nint\nmain(int argc, char **argv)\n"
MAIN_C_SUBST_RB_MAIN_INNER =
"ruby_init();\n/* -- Start of tebako patch -- */\n    if (!tebako_is_running_miniruby())\n    {\n        VALUE cwd = rb_str_new_cstr(tebako_original_pwd());\n        rb_gv_set(\"$tebako_original_pwd\", cwd);\n    }\n/* -- End of tebako patch -- */\n"
MAIN_C_SUBST_MAIN_INNER =
"    ruby_sysinit(&argc, &argv);\n/* -- Start of tebako patch -- */\n    if (tebako_main(&argc, &argv) != 0) {\n        printf(\"Tebako intialization failed.\");\n        return -1;\n    }\n/* -- End of tebako patch -- */\n"

Class Method Summary collapse

Class Method Details

.get_main_c_patch(ruby_ver) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/tebako/packager/patch_main.rb', line 73

def get_main_c_patch(ruby_ver)
  {
    get_main_c_main_pattern(ruby_ver) => get_main_c_main_subst(ruby_ver),
    "ruby_init();" => MAIN_C_SUBST_RB_MAIN_INNER,
    "    ruby_sysinit(&argc, &argv);" => MAIN_C_SUBST_MAIN_INNER
  }
end