marsadm: warn on bad macro variables

This commit is contained in:
Thomas Schoebel-Theuer 2022-02-17 13:59:04 +01:00 committed by Thomas Schoebel-Theuer
parent 6a9a355d76
commit 4bb4358d6d

View File

@ -7402,7 +7402,14 @@ sub eval_fn {
# prefix *crement operators
if ($arg1 =~ m/^([-+]{2})$/) {
my $op = $arg1;
$varname = parse_macro(shift, $env);
my $arg1 = shift;
$varname = parse_macro($arg1, $env);
if (!defined($varname)) {
lwarn "macro processor: prefix operator '$op': varname '$arg1' sub-expansion yields 'undef'\n";
$varname = "";
} elsif ($varname eq "") {
lwarn "macro processor: prefix operator '$op': varname sub-expanded from argument '$arg1' is empty\n";
}
if ($op =~ m/^\+/) {
$$env{$varname}++;
} else {
@ -7410,6 +7417,12 @@ sub eval_fn {
}
} else {
$varname = parse_macro($arg1, $env);
if (!defined($varname)) {
lwarn "macro processor: varname argument '$arg1' sub-expansion yields 'undef'\n";
$varname = "";
} elsif ($varname eq "") {
lwarn "macro processor: varname sub-expanded from argument '$arg1' is empty\n";
}
}
my $result = "";
if (defined($$env{$varname})) {
@ -7433,6 +7446,9 @@ sub eval_fn {
$index = scalar(@list) - 1 if ($index eq "" || $index eq "*");
$result = $list[$index];
}
if (!defined($result)) {
lwarn "macro processor: expansion of variable '$varname' yields 'undef'\n";
}
return $result;
}
if (/^let$/) { # assignment