From 721d8bf4d4dc24812ef86e792570effa045cbf53 Mon Sep 17 00:00:00 2001 Message-Id: <721d8bf4d4dc24812ef86e792570effa045cbf53.1714066733.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 11 May 2008 14:53:29 +0100 Subject: [PATCH] @q expansion Organization: Straylight/Edgeware From: Richard Kettlewell --- lib/macros-builtin.c | 12 ++++++++++++ lib/t-macros.c | 3 +++ 2 files changed, 15 insertions(+) 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