XML-encode characters below 0x20
Modified: trunk/reactos/subsys/system/explorer/utility/xmlstorage.cpp

Modified: trunk/reactos/subsys/system/explorer/utility/xmlstorage.cpp
--- trunk/reactos/subsys/system/explorer/utility/xmlstorage.cpp	2005-11-30 09:16:21 UTC (rev 19774)
+++ trunk/reactos/subsys/system/explorer/utility/xmlstorage.cpp	2005-11-30 11:57:20 UTC (rev 19775)
@@ -490,7 +490,13 @@
 			break;
 
 		  default:
-			*o++ = *p;
+			if ((unsigned)*p<20 && *p!='\t' && *p!='\r' && *p!='\n') {
+				char b[16];
+				sprintf(b, "&%d;", (unsigned)*p);
+				for(const char*q=b; *q; )
+					*o++ = *q++;
+			} else
+				*o++ = *p;
 		}
 
 #ifdef XS_STRING_UTF8