aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/common/erlc.c
diff options
context:
space:
mode:
authorHenrik Nord <[email protected]>2015-12-18 12:25:03 +0100
committerHenrik Nord <[email protected]>2015-12-18 12:25:03 +0100
commitfc3ec3e298b8908a7065297c7a824de5eec13a51 (patch)
tree6a356bb53a8400cd8e561740b43e8a0b27a57aff /erts/etc/common/erlc.c
parente6a733c5a903fafb52b73f7813fed72e4e29be6c (diff)
parent21d6192389a04024f7a41ced9d0911a9cce6f4e8 (diff)
downloadotp-fc3ec3e298b8908a7065297c7a824de5eec13a51.tar.gz
otp-fc3ec3e298b8908a7065297c7a824de5eec13a51.tar.bz2
otp-fc3ec3e298b8908a7065297c7a824de5eec13a51.zip
Merge branch 'maint'
Conflicts: OTP_VERSION erts/vsn.mk
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)
{