diff options
| author | Louis Burda <quent.burda@gmail.com> | 2023-08-03 08:22:35 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2023-08-03 08:23:24 +0200 |
| commit | a128a59911dd08740da02e365238e67bd4645710 (patch) | |
| tree | c2113c28a4468317cacfc870905e2707787c57dd | |
| parent | 918ed0f27ebeafc345f25919b893ee935070975f (diff) | |
| download | tmpl-a128a59911dd08740da02e365238e67bd4645710.tar.gz tmpl-a128a59911dd08740da02e365238e67bd4645710.zip | |
Add support for custom templating prefix
| -rw-r--r-- | tmpl.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -34,6 +34,8 @@ static size_t lineno = 0; static bool fail_missing = false; +static const char *prefix = "#{"; + static void die(const char *fmt, ...) { @@ -162,13 +164,13 @@ template(char *line) return; while (1) { - open = strstr(line, "#{"); + open = strstr(line, prefix); if (!open) break; if (open != line && open[-1] == '\\') { open[-1] = '\0'; fputs(line, stdout); - fputs("#{", stdout); + fputs(prefix, stdout); line = open + 2; continue; } @@ -223,6 +225,9 @@ main(int argc, char **argv) for (dst = arg = argv + 1; *arg; arg++) { if (!strcmp(*arg, "-e")) { fail_missing = true; + } else if (!strcmp(*arg, "-p")) { + prefix = *++arg; + if (!prefix || !*prefix) die("invalid prefix"); } else { *dst++ = *arg; } @@ -235,9 +240,11 @@ main(int argc, char **argv) "[-D NAME=VALUE].. FILE..\n"); return 1; } else if (!strcmp(*arg, "-D") || !strcmp(*arg, "--define")) { - assign(*++arg); + if (!*++arg) die("missing argument"); + assign(*arg); } else if (!strcmp(*arg, "-c") || !strcmp(*arg, "--config")) { - perline(*++arg, 1, assign); + if (!*++arg) die("missing argument"); + perline(*arg, 1, assign); } else { break; } |
