Mercurial > hg > nginx
comparison src/core/ngx_string.c @ 1612:d72f8b48dd87 stable-0.5
r1545, r1546 merge:
ngx_escape_html(), SSI echo encoding
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 29 Oct 2007 15:03:04 +0000 |
parents | d5db0e96bcc6 |
children | ca6845b19113 |
comparison
equal
deleted
inserted
replaced
1611:d5db0e96bcc6 | 1612:d72f8b48dd87 |
---|---|
1303 *dst = d; | 1303 *dst = d; |
1304 *src = s; | 1304 *src = s; |
1305 } | 1305 } |
1306 | 1306 |
1307 | 1307 |
1308 uintptr_t | |
1309 ngx_escape_html(u_char *dst, u_char *src, size_t size) | |
1310 { | |
1311 u_char ch; | |
1312 ngx_uint_t i, len; | |
1313 | |
1314 if (dst == NULL) { | |
1315 | |
1316 len = 0; | |
1317 | |
1318 for (i = 0; i < size; i++) { | |
1319 switch (*src++) { | |
1320 | |
1321 case '<': | |
1322 len += sizeof("<") - 2; | |
1323 break; | |
1324 | |
1325 case '>': | |
1326 len += sizeof(">") - 2; | |
1327 break; | |
1328 | |
1329 case '&': | |
1330 len += sizeof("&") - 2; | |
1331 break; | |
1332 | |
1333 default: | |
1334 break; | |
1335 } | |
1336 } | |
1337 | |
1338 return (uintptr_t) len; | |
1339 } | |
1340 | |
1341 for (i = 0; i < size; i++) { | |
1342 ch = *src++; | |
1343 | |
1344 switch (ch) { | |
1345 | |
1346 case '<': | |
1347 *dst++ = '&'; *dst++ = 'l'; *dst++ = 't'; *dst++ = ';'; | |
1348 break; | |
1349 | |
1350 case '>': | |
1351 *dst++ = '&'; *dst++ = 'g'; *dst++ = 't'; *dst++ = ';'; | |
1352 break; | |
1353 | |
1354 case '&': | |
1355 *dst++ = '&'; *dst++ = 'a'; *dst++ = 'm'; *dst++ = 'p'; | |
1356 *dst++ = ';'; | |
1357 break; | |
1358 | |
1359 default: | |
1360 *dst++ = ch; | |
1361 break; | |
1362 } | |
1363 } | |
1364 | |
1365 return (uintptr_t) dst; | |
1366 } | |
1367 | |
1368 | |
1308 /* ngx_sort() is implemented as insertion sort because we need stable sort */ | 1369 /* ngx_sort() is implemented as insertion sort because we need stable sort */ |
1309 | 1370 |
1310 void | 1371 void |
1311 ngx_sort(void *base, size_t n, size_t size, | 1372 ngx_sort(void *base, size_t n, size_t size, |
1312 int (*cmp)(const void *, const void *)) | 1373 int (*cmp)(const void *, const void *)) |