summaryrefslogtreecommitdiffstats
path: root/match.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-11-23 10:46:32 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-11-23 10:46:32 -0800
commitc1202a71a068c13a17b69348a6d7736b8855be0c (patch)
treeeb2121adb2e75b6d2a0838d152a8c5b6c161ac1f /match.h
parente1174f5ea6ff0a51738830e10a92819135a22b32 (diff)
downloadtxr-c1202a71a068c13a17b69348a6d7736b8855be0c.tar.gz
txr-c1202a71a068c13a17b69348a6d7736b8855be0c.tar.bz2
txr-c1202a71a068c13a17b69348a6d7736b8855be0c.zip
Semantics change. If a variable is followed by a mixture
of text and regular expressions, that whole mixture is considered to follow the variable and used for matching. The earlier semantics change whereby a single unescaped space denotes the regular expression / +/ broke the simple case @a word. It caused the @a to be followed not by the text " word" but by just the regular expression element. With this change @a word means that a is followed by the regex / +/ and "word". * match.c (text_s): New symbol variable. (h_text): New function. (syms_init): Initialize new symbol variable. (dir_tables_init): Hook h_text into horizontal directives table. * match.h (text_s): Declared. * parser.y (text, texts): New nonterminals. (elem): TEXT, SPACE and regex are now handled under texts grammar production. All texts are run together and produce an item which looks like (text items ...). * txr.1, RELNOTES: Updated. * txr.c (remove_hash_bang_line): Updated to find #! buried in (text ...) syntax.
Diffstat (limited to 'match.h')
-rw-r--r--match.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/match.h b/match.h
index 1e15dd2d..e939208f 100644
--- a/match.h
+++ b/match.h
@@ -27,4 +27,4 @@
void match_init(void);
val match_funcall(val name, val arg, val other_args);
int extract(val spec, val filenames, val bindings);
-extern val choose_s, gather_s;
+extern val text_s, choose_s, gather_s;