diff options
Diffstat (limited to 'src/parser.cpp')
-rw-r--r-- | src/parser.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index a9e9213..1936837 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -463,6 +463,10 @@ StateCtlE: undo.push_obj(qregspec_machine) = new QRegSpecMachine; set(&&StateCtlEQuote); break; + case 'N': + undo.push_obj(qregspec_machine) = new QRegSpecMachine; + set(&&StateCtlEN); + break; default: result = (gchar *)g_malloc(3); @@ -513,6 +517,17 @@ StateCtlEQuote: g_free(str); return true; +StateCtlEN: + if (!qregspec_machine->input(chr, reg)) + return false; + + undo.push_obj(qregspec_machine) = NULL; + set(StateStart); + str = reg->get_string(); + result = Globber::escape_pattern(str); + g_free(str); + return true; + StateEscaped: set(StateStart); result = String::chrdup(chr); |