diff --git a/README.md b/README.md index 52b292e..09aba4f 100644 --- a/README.md +++ b/README.md @@ -158,3 +158,32 @@ this text isn't minified ``` Used for legacy web pages on my site that I don't want to update + +### Nesting + +``` +@=var Hello world!@ +@n @@$ echo '@!var@' | rev @@ @m +``` + +Turns into + +``` +@$ echo 'Hello world!' | rev @ +``` + +Turns into + +``` +!dlrow olleH +``` + +Things between an `@n` and `@m` tag get processed twice. A double escape char `@@` +gets escaped into a single escape char `@`. Defining variables in a nest is +illegal, so + +``` +@n @@= dynamic_variable @$./generate_variable_value.sh@ @@ @m +``` + +is illegal diff --git a/src/parse.c b/src/parse.c index 4aab5d3..d93cbbd 100644 --- a/src/parse.c +++ b/src/parse.c @@ -157,6 +157,9 @@ autoescapeend: break; } #endif + default: + fprintf(stderr, "Error in expansion phase: Unknown escape %c%c\n", ESCAPE_CHAR, data->data[i]); + return 1; } } else