From: Thierry Fournier Date: Wed, 24 Feb 2016 07:06:32 +0000 (+0100) Subject: MINOR: lua: Add internal function which strip spaces X-Git-Tag: v1.7-dev3~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94ed1c127ea65658545ceba1e92dd902c2d942cd;p=thirdparty%2Fhaproxy.git MINOR: lua: Add internal function which strip spaces Some internal HAproxy error message are provided with a final '\n'. Its typically for the integration in the CLI. Sometimes, these messages are returned as Lua string. These string must be without "\n" or final spaces. This patch adds a function whoch removes unrequired parameters. --- diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c index 215058a879..1e58f7ab2e 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -22,9 +22,28 @@ #include +#include + /* Contains the class reference of the concat object. */ static int class_concat_ref; +/* Some string are started or terminated by blank chars, + * this function removes the spaces, tabs, \r and + * \n at the begin and at the end of the string "str", and + * push the result in the lua stack. + * Returns a pointer to the Lua internal copy of the string. + */ +const char *hlua_pushstrippedstring(lua_State *L, const char *str) +{ + const char *p; + const char *e; + + for (p = str; HTTP_IS_LWS(*p); p++); + for (e = p + strlen(p) - 1; e > p && HTTP_IS_LWS(*e); e--); + + return lua_pushlstring(L, p, e - p); +} + /* The three following functions are useful for adding entries * in a table. These functions takes a string and respectively an * integer, a string or a function and add it to the table in the