diff options
author | Henrik Nord <[email protected]> | 2015-12-18 12:25:03 +0100 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2015-12-18 12:25:03 +0100 |
commit | fc3ec3e298b8908a7065297c7a824de5eec13a51 (patch) | |
tree | 6a356bb53a8400cd8e561740b43e8a0b27a57aff /erts/etc/common/erlc.c | |
parent | e6a733c5a903fafb52b73f7813fed72e4e29be6c (diff) | |
parent | 21d6192389a04024f7a41ced9d0911a9cce6f4e8 (diff) | |
download | otp-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.c | 22 |
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) { |