aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y10
1 files changed, 9 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 0cf9194f36..3a273da94e 100644
--- a/parse.y
+++ b/parse.y
@@ -3397,7 +3397,15 @@ yylex()
case '~': /* $~: match-data */
/* fall through */
case '_': /* $_: last read line string */
- local_cnt(c);
+ c = nextc();
+ if (is_identchar(c)) {
+ tokadd('$');
+ tokadd('_');
+ break;
+ }
+ pushback(c);
+ c = '_';
+ local_cnt('_');
/* fall through */
case '*': /* $*: argv */
case '$': /* $$: pid */