patch 9.1.0451: No test for escaping '<' with shellescape()
Problem: No test for escaping '<' with shellescape()
Solution: Add a test. Use memcpy() in code to make it easier to
understand. Fix a typo (zeertzjq).
closes: #14876
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/strings.c b/src/strings.c
index 9b66ee0..6b2ff0a 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -269,12 +269,12 @@
*d++ = *p++;
continue;
}
- if (do_special && find_cmdline_var(p, &l) >= 0 && l > 0)
+ if (do_special && find_cmdline_var(p, &l) >= 0)
{
*d++ = '\\'; // insert backslash
- do // copy the var
- *d++ = *p++;
- while (--l > 0);
+ memcpy(d, p, l); // copy the var
+ d += l;
+ p += l;
continue;
}
if (*p == '\\' && fish_like)