/* %CMDEXTVERSION% */
else if (_tcsicmp(varName, _T("CMDEXTVERSION")) == 0)
{
- /* Set version number to CMDEXTVERSION */
+ /* Set Command Extensions version number to CMDEXTVERSION */
_itot(CMDEXTVERSION, ret, 10);
return ret;
}
Right = DoDelayedExpansion(Cmd->If.RightArg);
if (!Right)
{
- cmd_free(Left);
+ if (Left) cmd_free(Left);
return 1;
}
if (bEnableExtensions && (Cmd->If.Operator == IF_CMDEXTVERSION))
{
- /* IF CMDEXTVERSION n: check if Command Extensions version
- * is greater or equal to n */
+ /* IF CMDEXTVERSION n: check if Command Extensions
+ * version is greater or equal to n. */
DWORD n = _tcstoul(Right, ¶m, 10);
if (*param != _T('\0'))
{
error_syntax(Right);
- cmd_free(Right);
- return 1;
+ goto fail;
}
result = (CMDEXTVERSION >= n);
}
if (*param != _T('\0'))
{
error_syntax(Right);
- cmd_free(Right);
- return 1;
+ goto fail;
}
result = (nErrorLevel >= n);
}
case IF_LEQ: result = (result <= 0); break;
case IF_GTR: result = (result > 0); break;
case IF_GEQ: result = (result >= 0); break;
+ default: goto unknownOp;
}
}
+ else
+ {
+unknownOp:
+ ERR("Unknown IF operator 0x%x\n", Cmd->If.Operator);
+ ASSERT(FALSE);
+ goto fail;
+ }
}
- cmd_free(Left);
+ if (Left) cmd_free(Left);
cmd_free(Right);
if (result ^ ((Cmd->If.Flags & IFFLAG_NEGATE) != 0))
/* Full condition was false, do the "else" command if there is one */
return ExecuteCommand(Cmd->Subcommands->Next);
}
+
+fail:
+ if (Left) cmd_free(Left);
+ cmd_free(Right);
+ return 1;
}
/* EOF */