aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/common/dialyzer.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/dialyzer.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/dialyzer.c')
-rw-r--r--erts/etc/common/dialyzer.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/erts/etc/common/dialyzer.c b/erts/etc/common/dialyzer.c
index cac1464bf6..c45626606c 100644
--- a/erts/etc/common/dialyzer.c
+++ b/erts/etc/common/dialyzer.c
@@ -65,6 +65,7 @@ static int eargc; /* Number of arguments in eargv. */
static void error(char* format, ...);
static char* emalloc(size_t size);
static char* strsave(char* string);
+static void push_words(char* src);
static int run_erlang(char* name, char** argv);
static char* get_default_emulator(char* progname);
#ifdef __WIN32__
@@ -188,7 +189,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;
@@ -268,6 +269,27 @@ int main(int argc, char** argv)
return run_erlang(eargv[0], eargv);
}
+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)
{