summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-12 06:06:15 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-12 06:06:15 +0000
commit54c24dfc99bdf5186d813a4673e28ac93504f350 (patch)
tree87242631d7db7db7b90661c4e82005bb08ffcb39
parent2b2c7c36d18919fd2e948fac0f4faf57e681a62c (diff)
* eval.c (ruby_options): now we cannot call rb_glob() before
ruby_init(), so call rb_w32_cmdvector() at ruby_options(). * win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and export it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--eval.c9
-rw-r--r--win32/win32.c15
-rw-r--r--win32/win32.h4
4 files changed, 20 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 21effdb754..27fb061d2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Nov 12 15:03:26 2004 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * eval.c (ruby_options): now we cannot call rb_glob() before
+ ruby_init(), so call rb_w32_cmdvector() at ruby_options().
+
+ * win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and
+ export it.
+
Fri Nov 12 14:08:01 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/lib/tk/event.rb: remove $LOADED_FEATURES trick
diff --git a/eval.c b/eval.c
index b6ea4f2f0d..f32e44c4ae 100644
--- a/eval.c
+++ b/eval.c
@@ -1366,6 +1366,10 @@ ruby_options(argc, argv)
{
int state;
+#ifdef _WIN32
+ argc = rb_w32_cmdvector(GetCommandLine(), &argv);
+#endif
+
Init_stack((void*)&state);
PUSH_TAG(PROT_NONE);
if ((state = EXEC_TAG()) == 0) {
@@ -1377,6 +1381,11 @@ ruby_options(argc, argv)
exit(error_handle(state));
}
POP_TAG();
+
+#ifdef _WIN32_WCE
+ // free commandline buffer
+ wce_FreeCommandLine();
+#endif
}
void rb_exec_end_proc _((void));
diff --git a/win32/win32.c b/win32/win32.c
index 2bd7682a79..9fffcb7b47 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -89,7 +89,6 @@
bool NtSyncProcess = TRUE;
static struct ChildRecord *CreateChild(char *, char *, SECURITY_ATTRIBUTES *, HANDLE, HANDLE, HANDLE);
-static int make_cmdvector(const char *, char ***);
static bool has_redirection(const char *);
static void StartSockets ();
static DWORD wait_events(HANDLE event, DWORD timeout);
@@ -368,11 +367,6 @@ NtInitialize(int *argc, char ***argv)
#endif
//
- // subvert cmd.exe's feeble attempt at command line parsing
- //
- *argc = make_cmdvector(GetCommandLine(), argv);
-
- //
// Now set up the correct time stuff
//
@@ -380,11 +374,6 @@ NtInitialize(int *argc, char ***argv)
// Initialize Winsock
StartSockets();
-
-#ifdef _WIN32_WCE
- // free commandline buffer
- wce_FreeCommandLine();
-#endif
}
char *getlogin()
@@ -1098,8 +1087,8 @@ skipspace(char *ptr)
return ptr;
}
-static int
-make_cmdvector(const char *cmd, char ***vec)
+int
+rb_w32_cmdvector(const char *cmd, char ***vec)
{
int cmdlen, globbing, len, i;
int elements, strsz, done;
diff --git a/win32/win32.h b/win32/win32.h
index 60f9e3ddbd..d7222fc1b1 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -132,10 +132,8 @@ struct timezone {
int tz_dsttime;
};
#endif
-extern int NtMakeCmdVector(char *, char ***, int);
extern void NtInitialize(int *, char ***);
-extern char * NtGetLib(void);
-extern char * NtGetBin(void);
+extern int rb_w32_cmdvector(const char *, char ***);
extern pid_t pipe_exec(char *, int, FILE **, FILE **);
extern int flock(int fd, int oper);
extern int rb_w32_accept(int, struct sockaddr *, int *);