diff options
Diffstat (limited to 'src/SStringHTML.c')
-rw-r--r-- | src/SStringHTML.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/SStringHTML.c b/src/SStringHTML.c new file mode 100644 index 0000000..5d4951a --- /dev/null +++ b/src/SStringHTML.c @@ -0,0 +1,40 @@ + /*@@ + @file SStringHTML.c + @date 02.04.2004 + @author Steve White + @desc Extension to Strings module with function specific to HTML + @enddesc + @version $Header$ + @@*/ +#include "SStringHTML.h" + +static String * +StringReplaceCharWithCString( String * str, SSCHAR c, const SSCHAR *cstr ); + +String * +StringSetToEncodedHTMLCString( String * str, const SSCHAR *c ) +{ + return StringEncodeHTML( StringSetToCString( str, c ) ); +} + +String * +StringEncodeHTML( String * str ) +{ + StringReplaceCharWithCString( str, '&', "&" ); + StringReplaceCharWithCString( str, '<', "<" ); + StringReplaceCharWithCString( str, '>', ">" ); + return str; +} + +String * +StringReplaceCharWithCString( String * str, SSCHAR c, const SSCHAR *cstr ) +{ + size_t position = 0; + while( StringFindChar( str, c, &position ) ) + { + StringDeleteChar( str, position ); + StringInsertCString( str, cstr, position ); + position ++; + } + return str; +} |