mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-16 06:45:59 +00:00
Windows process: escape backslashes before quotes
This commit is contained in:
@@ -95,6 +95,10 @@ static bool join_arguments(const char * const *args, char **args_out)
|
||||
case '"':
|
||||
len += 2;
|
||||
break;
|
||||
case '\\':
|
||||
/* only escape backslashes that precede a double quote */
|
||||
len += (*(a + 1) == '"' || *(a + 1) == '\0') ? 2 : 1;
|
||||
break;
|
||||
default:
|
||||
len += 1;
|
||||
break;
|
||||
@@ -121,6 +125,12 @@ static bool join_arguments(const char * const *args, char **args_out)
|
||||
result[i_out++] = '\\';
|
||||
result[i_out++] = *a;
|
||||
break;
|
||||
case '\\':
|
||||
result[i_out++] = *a;
|
||||
if (*(a + 1) == '"' || *(a + 1) == '\0') {
|
||||
result[i_out++] = *a;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
result[i_out++] = *a;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user