diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-08-03 14:10:50 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-08-03 14:10:50 +0200 |
commit | fb332a2b33ddbbaa172b32148640b9b3c92a8dc0 (patch) | |
tree | 4dcfc83f955cf5a41d2dfd321fcceddefffdd23a | |
parent | c528b1d1edb5ab87242704c82422ae363647603c (diff) | |
download | vim-fb332a2b33ddbbaa172b32148640b9b3c92a8dc0.zip |
updated for version 7.4b.012
Problem: Output from a shell command is truncated at a NUL. (lcd 47)
Solution: Change every NUL into an SOH.
-rw-r--r-- | src/misc1.c | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/misc1.c b/src/misc1.c index 958163178..11f456b80 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -10887,7 +10887,14 @@ get_cmd_output(cmd, infile, flags) buffer = NULL; } else + { + /* Change NUL into SOH, otherwise the string is truncated. */ + for (i = 0; i < len; ++i) + if (buffer[len] == NUL) + buffer[len] = 1; + buffer[len] = NUL; /* make sure the buffer is terminated */ + } done: vim_free(tempname); diff --git a/src/version.c b/src/version.c index 676245d7b..bf7c0e194 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 12, +/**/ 11, /**/ 10, |