X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsystem-quote.c;h=3a13a01339bf719bf3c75382e2ae16092496c924;hb=23eecb48e39afd0d267d64d40ba6bf97aa865e13;hp=37a9ff4106d823018457a79e6a2662e80a5079ea;hpb=150ce1bef700d6a3e56861c3a316da64be93d880;p=gnulib.git diff --git a/lib/system-quote.c b/lib/system-quote.c index 37a9ff410..3a13a0133 100644 --- a/lib/system-quote.c +++ b/lib/system-quote.c @@ -1,5 +1,5 @@ /* Quoting for a system command. - Copyright (C) 2012 Free Software Foundation, Inc. + Copyright (C) 2012-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2012. This program is free software: you can redistribute it and/or modify @@ -42,10 +42,15 @@ \" -> " \\\" -> \" \\\\\" -> \\" - - '*' characters may get expanded or lead to a failure with error code - ERROR_PATH_NOT_FOUND. + - '*', '?' characters may get expanded through wildcard expansion in the + callee: By default, in the callee, the initialization code before main() + takes the result of GetCommandLine(), wildcard-expands it, and passes it + to main(). The exceptions to this rule are: + - programs that inspect GetCommandLine() and ignore argv, + - mingw programs that have a global variable 'int _CRT_glob = 0;', + - Cygwin programs, when invoked from a Cygwin program. */ -# define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037*" +# define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037*?" # define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" /* Copies the quoted string to p and returns the number of bytes needed. @@ -112,7 +117,7 @@ windows_createprocess_quote (char *p, const char *string) double-quotes and the rest of the string inside double-quotes: %"var"%. This is guaranteed to not be a reference to an environment variable. */ -# define CMD_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037!%&'*+,;<=>[]^`{|}~" +# define CMD_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037!%&'*+,;<=>?[]^`{|}~" # define CMD_FORBIDDEN_CHARS "\n\r" /* Copies the quoted string to p and returns the number of bytes needed.