From: Richard Kettlewell Date: Sun, 11 May 2008 13:53:29 +0000 (+0100) Subject: @q expansion X-Git-Tag: 4.0~76^2~34 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/721d8bf4d4dc24812ef86e792570effa045cbf53 @q expansion --- diff --git a/lib/macros-builtin.c b/lib/macros-builtin.c index c96506f..6675dec 100644 --- a/lib/macros-builtin.c +++ b/lib/macros-builtin.c @@ -418,6 +418,17 @@ static int exp_dirname(int attribute((unused)) nargs, return sink_writes(output, d_dirname(args[0])) < 0 ? -1 : 0; } +/* @q{STRING} + * + * Expands to STRING. + */ +static int exp_q(int attribute((unused)) nargs, + char **args, + struct sink attribute((unused)) *output, + void attribute((unused)) *u) { + return sink_writes(output, args[0]) < 0 ? -1 : 0; +} + /** @brief Register built-in expansions */ void mx_register_builtin(void) { mx_register("basename", 1, 1, exp_basename); @@ -429,6 +440,7 @@ void mx_register_builtin(void) { mx_register("not", 1, 1, exp_not); mx_register("shell", 1, 1, exp_shell); mx_register("urlquote", 1, 1, exp_urlquote); + mx_register("q", 1, 1, exp_q); mx_register_magic("#", 0, INT_MAX, exp_comment); mx_register_magic("and", 0, INT_MAX, exp_and); mx_register_magic("define", 3, 3, exp_define); diff --git a/lib/t-macros.c b/lib/t-macros.c index 2bf747f..a1dc0e0 100644 --- a/lib/t-macros.c +++ b/lib/t-macros.c @@ -219,6 +219,9 @@ static void test_macros(void) { "foo & something", 0); check_macro("basename1", "@basename{xyzzy/plugh}", "plugh", 0); check_macro("basename2", "@basename{xyzzy/a