diff options
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 70d2650..eddd114 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -229,7 +229,15 @@ globify (char *word, char **&argv, int &argc, int &argvlen) else if (s[1] == quote || s[1] == '\\') s++; *p++ = '\\'; - *p++ = *s; + size_t cnt = mbtowc (NULL, s, MB_CUR_MAX); + if (cnt <= 1 || cnt == (size_t)-1) + *p++ = *s; + else + { + --s; + while (cnt-- > 0) + *p++ = *++s; + } } if (*s == quote) p--; |