aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/common/erlc.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2015-12-17 14:11:12 +0100
committerBjörn-Egil Dahlberg <[email protected]>2015-12-17 14:11:12 +0100
commitf77436f337d83a9751dc84d53791500c7f99c92e (patch)
treea69c9c6a6e0789dabaff3a7ce2445997b0ff6bac /erts/etc/common/erlc.c
parentb855206a1a7788216717ca272f44e9beb1f58e7c (diff)
downloadotp-f77436f337d83a9751dc84d53791500c7f99c92e.tar.gz
otp-f77436f337d83a9751dc84d53791500c7f99c92e.tar.bz2
otp-f77436f337d83a9751dc84d53791500c7f99c92e.zip
Revert "Fix erroneous splitting of emulator path"
This reverts commit 731890f3b4ac62eed1221aa7d9fd2bfa6bf51d8c.
Diffstat (limited to 'erts/etc/common/erlc.c')
-rw-r--r--erts/etc/common/erlc.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c
index 049afc526a..f9d909e01c 100644
--- a/erts/etc/common/erlc.c
+++ b/erts/etc/common/erlc.c
@@ -200,7 +200,7 @@ int main(int argc, char** argv)
eargv_base = (char **) emalloc(eargv_size*sizeof(char*));
eargv = eargv_base;
eargc = 0;
- PUSH(strsave(emulator));
+ push_words(emulator);
eargc_base = eargc;
eargv = eargv + eargv_size/2;
eargc = 0;
@@ -330,6 +330,26 @@ process_opt(int* pArgc, char*** pArgv, int offset)
return argv[1];
}
+static void
+push_words(char* src)
+{
+ char sbuf[MAXPATHLEN];
+ char* dst;
+
+ dst = sbuf;
+ while ((*dst++ = *src++) != '\0') {
+ if (isspace((int)*src)) {
+ *dst = '\0';
+ PUSH(strsave(sbuf));
+ dst = sbuf;
+ do {
+ src++;
+ } while (isspace((int)*src));
+ }
+ }
+ if (sbuf[0])
+ PUSH(strsave(sbuf));
+}
#ifdef __WIN32__
wchar_t *make_commandline(char **argv)
{