/*! * \brief Appends a string to a buffer, substituting some characters by escape * sequences. */ static void copy_with_escape( /*! [in,out] The input/output buffer. */ ixml_membuf *buf, /*! [in] The string to copy from. */ const char *p) { int i; int plen; if (p == NULL) { return; } plen = strlen( p ); for (i = 0; i < plen; i++) { switch (p[i]) { case '<': ixml_membuf_append_str(buf, "<"); break; case '>': ixml_membuf_append_str(buf, ">"); break; case '&': ixml_membuf_append_str(buf, "&"); break; case '\'': ixml_membuf_append_str(buf, "'"); break; case '\"': ixml_membuf_append_str(buf, """); break; default: ixml_membuf_append(buf, &p[i]); break; } } }
/*================================================================ * copy_with_escape * * *=================================================================*/ void copy_with_escape( INOUT ixml_membuf * buf, IN char *p ) { int i; int plen; if( p == NULL ) return; plen = strlen( p ); for( i = 0; i < plen; i++ ) { switch ( p[i] ) { case '<': ixml_membuf_append_str( buf, "<" ); break; case '>': ixml_membuf_append_str( buf, ">" ); break; case '&': ixml_membuf_append_str( buf, "&" ); break; case '\'': ixml_membuf_append_str( buf, "'" ); break; case '\"': ixml_membuf_append_str( buf, """ ); break; default: ixml_membuf_append( buf, &p[i] ); } } }