From: Eric Blake Date: Wed, 3 Oct 2007 02:23:03 +0000 (-0600) Subject: Optimize appending text. X-Git-Tag: v2.62~239 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53b2e90b426a4b7da56629feefbc065574d447c0;p=thirdparty%2Fautoconf.git Optimize appending text. * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Use index, not regular expressions. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index 13aa85a7..26833bc8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-10-02 Eric Blake + Optimize appending text. + * lib/m4sugar/m4sugar.m4 (m4_append_uniq): Use index, not regular + expressions. + Optimize recursion. * lib/m4sugar/m4sugar.m4 (m4_shiftn): This macro is called in a lot of hot spots; optimize it for 2 and 3 shifts. diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4 index 7b200951..f180e879 100644 --- a/lib/m4sugar/m4sugar.m4 +++ b/lib/m4sugar/m4sugar.m4 @@ -1553,11 +1553,11 @@ m4_define([m4_append], # m4_append_uniq(MACRO-NAME, STRING, [SEPARATOR]) # ----------------------------------------------- -# As `m4_append', but append only if not yet present. +# Like `m4_append', but append only if not yet present. m4_define([m4_append_uniq], [m4_ifdef([$1], - [m4_bmatch([$3]m4_defn([$1])[$3], m4_re_escape([$3$2$3]), [], - [m4_append($@)])], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [m4_append($@)])], [m4_append($@)])])