gpg-connect-tool: Take the string "true" as a true condition.

* tools/gpg-connect-agent.c (main): Handle strings "true" and "yes" in
conditions as expected.
This commit is contained in:
Werner Koch 2012-01-27 15:40:24 +01:00
parent cf748e8736
commit 2871422d9a
2 changed files with 20 additions and 6 deletions

View File

@ -1407,11 +1407,11 @@ input lines which makes scripts easier to read.
@item /while @var{condition}
@itemx /end
These commands provide a way for executing loops. All lines between the
@code{while} and the corresponding @code{end} are executed as long as
the evaluation of @var{condition} yields a non-zero value. The
evaluation is done by passing @var{condition} to the @code{strtol}
function. Example:
These commands provide a way for executing loops. All lines between
the @code{while} and the corresponding @code{end} are executed as long
as the evaluation of @var{condition} yields a non-zero value or is the
string @code{true} or @code{yes}. The evaluation is done by passing
@var{condition} to the @code{strtol} function. Example:
@smallexample
/subst
@ -1422,6 +1422,13 @@ function. Example:
/end
@end smallexample
@item /if @var{condition}
@itemx /end
These commands provide a way for conditional execution. All lines between
the @code{if} and the corresponding @code{end} are executed only if
the evaluation of @var{condition} yields a non-zero value or is the
string @code{true} or @code{yes}. The evaluation is done by passing
@var{condition} to the @code{strtol} function.
@item /run @var{file}
Run commands from @var{file}.

View File

@ -1747,7 +1747,14 @@ main (int argc, char **argv)
}
tmpline = substitute_line (tmpcond);
value = tmpline? tmpline : tmpcond;
condition = strtol (value, NULL, 0);
/* "true" or "yes" are commonly used to mean TRUE;
all other strings will evaluate to FALSE due to
the strtoul. */
if (!ascii_strcasecmp (value, "true")
|| !ascii_strcasecmp (value, "yes"))
condition = 1;
else
condition = strtol (value, NULL, 0);
xfree (tmpline);
xfree (tmpcond);