From c76e51c14c4da3ee95aaf7a19c9281dc5b8ca20f Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 11 Sep 2001 10:14:50 +0000 Subject: [PATCH] Proper error checking at end of @@? condition --- files/_.configs_setenvir | 2 +- gpt | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/files/_.configs_setenvir b/files/_.configs_setenvir index 7805096..b951f22 100755 --- a/files/_.configs_setenvir +++ b/files/_.configs_setenvir @@ -31,7 +31,7 @@ export PAGER PERLLIB PS1 TRNINIT WWW_HOME # NNTPAUTH -@@?$ncipher@@ +@@?$ncipher?@@ NC_SITES=@@$ncipher@@:@@ $ncipher eq 'bos' ? 'cam' : 'bos' @@ export NC_SITES @@; diff --git a/gpt b/gpt index ce93196..30baae0 100755 --- a/gpt +++ b/gpt @@ -118,17 +118,22 @@ sub eval_expr () { sub process_input () { my ($esc,$top,$want,$fh,$value,$wasyes); while (length $l) { - print DEBUG "L $fn:$lno:",join('',@oplist), - ":`$l' e\`$expr' s\`$substr'\n"; + print DEBUG "L $fn:${lno}_",join('',@oplist), + "_`$l' e\`$expr' s\`$substr'\n"; if (@oplist & 1) { # scanning perl if ($l =~ m/^()\@\@/ || $l =~ m/([^\000])\@\@/) { ($to,$op,$esc,$l) = ($`,$1,$&,$'); add_perl($to); if ($op =~ m/[ \t\n0-9a-zA-Z_\;\)\}?]/ || $op eq '') { $top= pop @oplist; + if ($top eq '?') { + $op eq '?' or err("expected ?\@\@, got \@\@"); + } else { + $op ne '?' or err("found ?\@\@ not after \@\@?"); + } if (!@oplist) { # And evaluate. - $expr.= $op unless $op =~ m/[?]/; + $expr.= $op unless $op eq '?'; $value= eval_expr(); if ($top eq '<') { process_file($value); -- 2.30.2