272:f210681d9dd0 | 273:f4eb5d125e58 |
---|---|
1031 r[4], | 1031 r[4], |
1032 r[5]); | 1032 r[5]); |
1033 | 1033 |
1034 return pos; | 1034 return pos; |
1035 } | 1035 } |
1036 | |
1037 | |
1038 /* ------------------------- util_html_escape -------------------------- */ | |
1039 | |
1040 NSAPI_PUBLIC char *util_html_escape(const char *s) | |
1041 { | |
1042 const char *in; | |
1043 | |
1044 int len = 0; | |
1045 for (in = s; *in; in++) { | |
1046 switch (*in) { | |
1047 case '<': | |
1048 len += 4; // < | |
1049 break; | |
1050 case '>': | |
1051 len += 4; // > | |
1052 break; | |
1053 case '&': | |
1054 len += 5; // & | |
1055 break; | |
1056 case '"': | |
1057 len += 6; // " | |
1058 break; | |
1059 case '\'': | |
1060 len += 6; // ' | |
1061 break; | |
1062 case '+': | |
1063 len += 5; // + | |
1064 break; | |
1065 default: | |
1066 len++; | |
1067 break; | |
1068 } | |
1069 } | |
1070 | |
1071 char *ns = (char *) MALLOC(len + 1); | |
1072 if (!ns) | |
1073 return ns; | |
1074 | |
1075 char *out = ns; | |
1076 for (in = s; *in; in++) { | |
1077 switch (*in) { | |
1078 case '<': | |
1079 *out++ = '&'; | |
1080 *out++ = 'l'; | |
1081 *out++ = 't'; | |
1082 *out++ = ';'; | |
1083 break; | |
1084 case '>': | |
1085 *out++ = '&'; | |
1086 *out++ = 'g'; | |
1087 *out++ = 't'; | |
1088 *out++ = ';'; | |
1089 break; | |
1090 case '&': | |
1091 *out++ = '&'; | |
1092 *out++ = 'a'; | |
1093 *out++ = 'm'; | |
1094 *out++ = 'p'; | |
1095 *out++ = ';'; | |
1096 break; | |
1097 case '"': | |
1098 *out++ = '&'; | |
1099 *out++ = 'q'; | |
1100 *out++ = 'u'; | |
1101 *out++ = 'o'; | |
1102 *out++ = 't'; | |
1103 *out++ = ';'; | |
1104 break; | |
1105 case '\'': | |
1106 *out++ = '&'; | |
1107 *out++ = 'a'; | |
1108 *out++ = 'p'; | |
1109 *out++ = 'o'; | |
1110 *out++ = 's'; | |
1111 *out++ = ';'; | |
1112 break; | |
1113 case '+': | |
1114 *out++ = '&'; | |
1115 *out++ = '#'; | |
1116 *out++ = '4'; | |
1117 *out++ = '3'; | |
1118 *out++ = ';'; | |
1119 break; | |
1120 default: | |
1121 *out++ = *in; | |
1122 break; | |
1123 } | |
1124 } | |
1125 *out = '\0'; | |
1126 | |
1127 return ns; | |
1128 } | |
1129 |