/* find and remove all the redirections first */
while (*sp)
{
+ if (*sp == _T('^'))
+ {
+ *dp++ = *sp++;
+ *dp++ = *sp++;
+ continue;
+ }
if ((*sp == _T('"')) || (*sp == _T('\'')))
{
/* No redirects inside quotes */
*ofn = _T('\0');
}
- else if (*sp == _T('1'))
+ else if (*sp == _T('1'))
{
- /* error redirection */
+ /* output redirection */
sp++;
if (*sp == _T('>'))
{
/* output redirection */
- *lpnFlags |= OUTPUT_REDIRECTION;
- sp++;
-
- /* append request ? */
- if (*sp == _T('>'))
- {
- *lpnFlags |= OUTPUT_APPEND;
- sp++;
- }
-
- while (_istspace (*sp))
- sp++;
-
- /* copy file name */
- while (*sp && !IsRedirection (*sp) && !_istspace (*sp))
- *ofn++ = *sp++;
- *ofn = _T('\0');
+ *lpnFlags |= OUTPUT_REDIRECTION;
+ sp++;
+
+ /* append request ? */
+ if (*sp == _T('>'))
+ {
+ *lpnFlags |= OUTPUT_APPEND;
+ sp++;
+ }
}
else
{
/* copy file name */
while (*sp && !IsRedirection (*sp) && !_istspace (*sp))
- *efn++ = *sp++;
- *efn = _T('\0');
+ *ofn++ = *sp++;
+ *ofn = _T('\0');
}
else if (*sp == _T('2'))
sp = s;
while (*sp)
{
- if ((*sp == _T('"')) || (*sp == _T('\'')))
+ if (*sp == _T('^'))
+ {
+ *sp++;
+ *sp++;
+ continue;
+ }
+ else if ((*sp == _T('"')) || (*sp == _T('\'')))
{
TCHAR qc = *sp;