summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-04-15 22:12:00 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-04-15 22:12:00 -0700
commit56beef8defcb5944be1ee523400b382119dbe8fc (patch)
treebf06cef34f2765997d5e534a4d1256f42df2f50f /ChangeLog
parentfff6c80a0f7dd2c90033a48444aad0db36ff9b80 (diff)
downloadtxr-56beef8defcb5944be1ee523400b382119dbe8fc.tar.gz
txr-56beef8defcb5944be1ee523400b382119dbe8fc.tar.bz2
txr-56beef8defcb5944be1ee523400b382119dbe8fc.zip
Fix escaping issues in open-process on Windows.
This can now execute programs with spaces in their path names. Arguments can contain embedded double quotes, and other characters that are special to cmd.exe, like &, |, (, ), ^ and others. * stream.c (string_extend_count, win_escape_cmd): New static functions. (win_escape_arg): Fix and extend escaping scheme to cover not only the argument processing scheme implemented by programs which use Microsoft's C library, but also to smuggle the command line through cmd.exe. (win_make_cmdline): Use win_escape_cmd to wrap the command. Escape the quotes which are placed around arguments, so cmd.exe doesn't interpret them, which will cause it to suppress its processing of the caret escapes.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog17
1 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e2d223b0..b06f0dab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
2015-04-15 Kaz Kylheku <kaz@kylheku.com>
+ Fix escaping issues in open-process on Windows.
+
+ This can now execute programs with spaces in their path names.
+ Arguments can contain embedded double quotes, and other characters
+ that are special to cmd.exe, like &, |, (, ), ^ and others.
+
+ * stream.c (string_extend_count, win_escape_cmd): New static functions.
+ (win_escape_arg): Fix and extend escaping scheme to cover not only
+ the argument processing scheme implemented by programs which use Microsoft's
+ C library, but also to smuggle the command line through cmd.exe.
+ (win_make_cmdline): Use win_escape_cmd to wrap the command.
+ Escape the quotes which are placed around arguments, so cmd.exe
+ doesn't interpret them, which will cause it to suppress its processing
+ of the caret escapes.
+
+2015-04-15 Kaz Kylheku <kaz@kylheku.com>
+
Allow quasiquotes in braces and quasiliterals, and quotes in braces.
* parser.l: Consolidate rules for recognizing quote, unquote, and