From 9b454bfaf3a3c37fd8ff83880fc88f3dc9375a8d Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 20 Aug 2016 02:20:34 +0000 Subject: rubystub * rubystub.c: generalize win32/stub.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/Makefile.sub | 5 +++-- win32/stub.c | 48 ------------------------------------------------ 2 files changed, 3 insertions(+), 50 deletions(-) delete mode 100644 win32/stub.c (limited to 'win32') diff --git a/win32/Makefile.sub b/win32/Makefile.sub index abe65997df..e3fae91c65 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -418,6 +418,7 @@ prog: config ruby: $(PROGRAM) rubyw: $(WPROGRAM) stub: $(STUBPROGRAM) +rubystub: $(STUBPROGRAM) !if !exist(enc/trans/newline.c) && exist($(srcdir)/enc/trans/newline.c) NEWLINE_C = $(srcdir)/enc/trans/newline.c @@ -1005,9 +1006,9 @@ $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res !endif !if "$(STUBPROGRAM)" != "" -$(STUBPROGRAM): win32/stub.$(OBJEXT) $(LIBRUBY) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res +$(STUBPROGRAM): rubystub.$(OBJEXT) $(LIBRUBY) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res $(ECHO) linking $(@:\=/) - $(Q) $(PURIFY) $(CC) win32/stub.$(OBJEXT) $(RUBY_INSTALL_NAME).res \ + $(Q) $(PURIFY) $(CC) rubystub.$(OBJEXT) $(RUBY_INSTALL_NAME).res \ $(OUTFLAG)$@ $(LIBRUBYARG) -link $(LDFLAGS) $(XLDFLAGS) $(Q) $(LDSHARED_0) $(Q) $(LDSHARED_1) diff --git a/win32/stub.c b/win32/stub.c deleted file mode 100644 index 39bdcd9b05..0000000000 --- a/win32/stub.c +++ /dev/null @@ -1,48 +0,0 @@ -#include -static void stub_sysinit(int *argc, char ***argv); -#define ruby_sysinit stub_sysinit -#include -#undef ruby_sysinit - -void -stub_sysinit(int *argc, char ***argv) -{ - WCHAR exename[4096]; - size_t wlenexe, len0, lenall; - int lenexe; - int i, ac; - char **av, *p; - - wlenexe = (size_t)GetModuleFileNameW(NULL, exename, sizeof(exename) / sizeof(*exename)); - lenexe = WideCharToMultiByte(CP_UTF8, 0, exename, wlenexe, NULL, 0, NULL, NULL); - ruby_sysinit(argc, argv); - ac = *argc; - av = *argv; - len0 = strlen(av[0]) + 1; - lenall = 0; - for (i = 1; i < ac; ++i) { - lenall += strlen(av[i]) + 1; - } - av = realloc(av, lenall + len0 + (lenexe + 1) + sizeof(char *) * (i + 2)); - if (!av) { - perror("realloc command line"); - exit(-1); - } - *argv = av; - *argc = ++ac; - p = (char *)(av + i + 2); - memmove(p + len0 + lenexe + 1, (char *)(av + ac) + len0, lenall); - memmove(p, (char *)(av + ac), len0); - *av++ = p; - p += len0; - WideCharToMultiByte(CP_UTF8, 0, exename, wlenexe, p, lenexe, NULL, NULL); - p[lenexe] = '\0'; - *av++ = p; - p += lenexe + 1; - while (--i) { - *av++ = p; - p += strlen(p) + 1; - } - *av = NULL; -} - -- cgit v1.2.3