-const char encode_rcs[] = "$Id: encode.c,v 1.2 2001/05/17 22:52:35 oes Exp $";
+const char encode_rcs[] = "$Id: encode.c,v 1.3 2001/11/13 00:16:40 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/encode.c,v $
*
* Revisions :
* $Log: encode.c,v $
+ * Revision 1.3 2001/11/13 00:16:40 jongfoster
+ * Replacing references to malloc.h with the standard stdlib.h
+ * (See ANSI or K&R 2nd Ed)
+ *
* Revision 1.2 2001/05/17 22:52:35 oes
* - Cleaned CRLF's from the sources and related files
*
*
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
+ * If s is NULL, or on out-of memory, returns NULL.
*
*********************************************************************/
char * html_encode(const char *s)
{
+ char * buf;
+
+ if (s == NULL)
+ {
+ return NULL;
+ }
+
/* each input char can expand to at most 6 chars */
- char * buf = (char *) malloc((strlen(s) * 6) + 1);
+ buf = (char *) malloc((strlen(s) * 6) + 1);
if (buf)
{
return(buf);
}
+
+/*********************************************************************
+ *
+ * Function : html_encode_and_free_original
+ *
+ * Description : Encodes a string so it's not interpreted as
+ * containing HTML tags or entities.
+ * Replaces <, >, &, and " with the appropriate HTML
+ * entities. Free()s original string.
+ * If original string is NULL, simply returns NULL.
+ *
+ * Parameters :
+ * 1 : s = String to encode. Null-terminated.
+ *
+ * Returns : Encoded string, newly allocated on the heap.
+ * Caller is responsible for freeing it with free().
+ * If s is NULL, or on out-of memory, returns NULL.
+ *
+ *********************************************************************/
+char * html_encode_and_free_original(char *s)
+{
+ char * result;
+
+ if (s == NULL)
+ {
+ return NULL;
+ }
+
+ result = html_encode(s);
+ free(s);
+
+ return result;
+}
+
+
/*********************************************************************
*
* Function : cookie_encode
*
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
+ * If s is NULL, or on out-of memory, returns NULL.
*
*********************************************************************/
char * cookie_encode(const char *s)
{
+ char * buf;
+
+ if (s == NULL)
+ {
+ return NULL;
+ }
+
/* each input char can expand to at most 3 chars */
- char * buf = (char *) malloc((strlen(s) * 3) + 1);
+ buf = (char *) malloc((strlen(s) * 3) + 1);
if (buf)
{
*
* Returns : Encoded string, newly allocated on the heap.
* Caller is responsible for freeing it with free().
+ * If s is NULL, or on out-of memory, returns NULL.
*
*********************************************************************/
char * url_encode(const char *s)
{
+ char * buf;
+
+ if (s == NULL)
+ {
+ return NULL;
+ }
+
/* each input char can expand to at most 3 chars */
- char * buf = (char *) malloc((strlen(s) * 3) + 1);
+ buf = (char *) malloc((strlen(s) * 3) + 1);
if (buf)
{
#ifndef ENCODE_H_INCLUDED
#define ENCODE_H_INCLUDED
-#define ENCODE_H_VERSION "$Id: encode.h,v 1.1.1.1 2001/05/15 13:58:51 oes Exp $"
+#define ENCODE_H_VERSION "$Id: encode.h,v 1.2 2001/07/29 18:43:08 jongfoster Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/encode.h,v $
*
* Revisions :
* $Log: encode.h,v $
+ * Revision 1.2 2001/07/29 18:43:08 jongfoster
+ * Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
+ * ANSI C rules.
+ *
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
* Initial import of version 2.9.3 source tree
*
extern char * url_encode(const char *s);
extern char * url_decode(const char *str);
+extern char * html_encode_and_free_original(char *s);
+
/* Revision control strings from this header and associated .c file */
extern const char encode_rcs[];
extern const char encode_h_rcs[];