From e2c7c52c7cbc6299ccd66ef1b9568333266918f4 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 9 May 2012 03:26:37 +0200 Subject: [PATCH] sh-quote: Make C++ safe and allow multiple inclusion. * lib/sh-quote.h: Add double-inclusion guard. For C++, wrap function declarations in extern "C". --- ChangeLog | 6 ++++++ lib/sh-quote.h | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3e8ded4fd..f6029666f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2012-05-08 Bruno Haible + sh-quote: Make C++ safe and allow multiple inclusion. + * lib/sh-quote.h: Add double-inclusion guard. For C++, wrap function + declarations in extern "C". + +2012-05-08 Bruno Haible + sh-quote tests: Make tests stricter. * tests/test-sh-quote.c (check_one): Check the return value of shell_quote_copy. diff --git a/lib/sh-quote.h b/lib/sh-quote.h index a5515d791..12c3dd3c2 100644 --- a/lib/sh-quote.h +++ b/lib/sh-quote.h @@ -15,12 +15,19 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#ifndef _SH_QUOTE_H +#define _SH_QUOTE_H + /* When passing a command to a shell, we must quote the program name and arguments, since Unix shells interpret characters like " ", "'", "<", ">", "$" etc. in a special way. */ #include +#ifdef __cplusplus +extern "C" { +#endif + /* Returns the number of bytes needed for the quoted string. */ extern size_t shell_quote_length (const char *string); @@ -34,3 +41,9 @@ extern char * shell_quote (const char *string); /* Returns a freshly allocated string containing all argument strings, quoted, separated through spaces. */ extern char * shell_quote_argv (char * const *argv); + +#ifdef __cplusplus +} +#endif + +#endif /* _SH_QUOTE_H */ -- 2.11.0