# HG changeset patch # User Bruno Haible # Date 1336526797 -7200 # Node ID e99c8c949ff71412b1510de602c323310d6af2e5 # Parent 85883252217c034789e9a0cc9269e36ba7433c54 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". diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/lib/sh-quote.h b/lib/sh-quote.h --- 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 @@ /* 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 */