Mercurial > pidgin.yaz
comparison src/util.c @ 8918:c34e4e6128f3
[gaim-migrate @ 9688]
(23:32:19) LSchiere: marv: should i just apply that patch you sent me?
(23:33:03) marv: LSchiere: well it doesn't seem to break anything. I
*think* it'll fix the problem. as long as we're not releasing tomorrow,
sure
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Wed, 12 May 2004 03:38:48 +0000 |
parents | 00138e366ef8 |
children | 54eba3833e34 |
comparison
equal
deleted
inserted
replaced
8917:189ee7356c59 | 8918:c34e4e6128f3 |
---|---|
1245 | 1245 |
1246 char * | 1246 char * |
1247 gaim_markup_linkify(const char *text) | 1247 gaim_markup_linkify(const char *text) |
1248 { | 1248 { |
1249 const char *c, *t, *q = NULL; | 1249 const char *c, *t, *q = NULL; |
1250 char *tmp; | 1250 char *tmp, *tmpurlbuf; |
1251 char url_buf[BUF_LEN * 4]; | 1251 char url_buf[BUF_LEN * 4]; |
1252 gboolean inside_html = FALSE; | 1252 gboolean inside_html = FALSE; |
1253 GString *ret = g_string_new(""); | 1253 GString *ret = g_string_new(""); |
1254 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ | 1254 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */ |
1255 | 1255 |
1289 | 1289 |
1290 if (*(t - 1) == '.') | 1290 if (*(t - 1) == '.') |
1291 t--; | 1291 t--; |
1292 strncpy(url_buf, c, t - c); | 1292 strncpy(url_buf, c, t - c); |
1293 url_buf[t - c] = 0; | 1293 url_buf[t - c] = 0; |
1294 tmpurlbuf = gaim_unescape_html(url_buf); | |
1294 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", | 1295 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", |
1295 url_buf, url_buf); | 1296 tmpurlbuf, url_buf); |
1297 g_free(tmpurlbuf); | |
1296 c = t; | 1298 c = t; |
1297 break; | 1299 break; |
1298 } | 1300 } |
1299 if (!t) | 1301 if (!t) |
1300 break; | 1302 break; |
1317 | 1319 |
1318 if (*(t - 1) == '.') | 1320 if (*(t - 1) == '.') |
1319 t--; | 1321 t--; |
1320 strncpy(url_buf, c, t - c); | 1322 strncpy(url_buf, c, t - c); |
1321 url_buf[t - c] = 0; | 1323 url_buf[t - c] = 0; |
1324 tmpurlbuf = gaim_unescape_html(url_buf); | |
1322 g_string_append_printf(ret, | 1325 g_string_append_printf(ret, |
1323 "<A HREF=\"http://%s\">%s</A>", url_buf, | 1326 "<A HREF=\"http://%s\">%s</A>", tmpurlbuf, |
1324 url_buf); | 1327 url_buf); |
1328 g_free(tmpurlbuf); | |
1325 c = t; | 1329 c = t; |
1326 break; | 1330 break; |
1327 } | 1331 } |
1328 if (!t) | 1332 if (!t) |
1329 break; | 1333 break; |
1336 if (badchar(*t)) { | 1340 if (badchar(*t)) { |
1337 if (*(t - 1) == '.') | 1341 if (*(t - 1) == '.') |
1338 t--; | 1342 t--; |
1339 strncpy(url_buf, c, t - c); | 1343 strncpy(url_buf, c, t - c); |
1340 url_buf[t - c] = 0; | 1344 url_buf[t - c] = 0; |
1345 tmpurlbuf = gaim_unescape_html(url_buf); | |
1341 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", | 1346 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", |
1342 url_buf, url_buf); | 1347 tmpurlbuf, url_buf); |
1348 g_free(tmpurlbuf); | |
1343 c = t; | 1349 c = t; |
1344 break; | 1350 break; |
1345 } | 1351 } |
1346 if (!t) | 1352 if (!t) |
1347 break; | 1353 break; |
1358 } | 1364 } |
1359 if (*(t - 1) == '.') | 1365 if (*(t - 1) == '.') |
1360 t--; | 1366 t--; |
1361 strncpy(url_buf, c, t - c); | 1367 strncpy(url_buf, c, t - c); |
1362 url_buf[t - c] = 0; | 1368 url_buf[t - c] = 0; |
1369 tmpurlbuf = gaim_unescape_html(url_buf); | |
1363 g_string_append_printf(ret, | 1370 g_string_append_printf(ret, |
1364 "<A HREF=\"ftp://%s\">%s</A>", url_buf, | 1371 "<A HREF=\"ftp://%s\">%s</A>", tmpurlbuf, |
1365 url_buf); | 1372 url_buf); |
1373 g_free(tmpurlbuf); | |
1366 c = t; | 1374 c = t; |
1367 break; | 1375 break; |
1368 } | 1376 } |
1369 if (!t) | 1377 if (!t) |
1370 break; | 1378 break; |
1377 if (badchar(*t)) { | 1385 if (badchar(*t)) { |
1378 if (*(t - 1) == '.') | 1386 if (*(t - 1) == '.') |
1379 t--; | 1387 t--; |
1380 strncpy(url_buf, c, t - c); | 1388 strncpy(url_buf, c, t - c); |
1381 url_buf[t - c] = 0; | 1389 url_buf[t - c] = 0; |
1390 tmpurlbuf = gaim_unescape_html(url_buf); | |
1382 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", | 1391 g_string_append_printf(ret, "<A HREF=\"%s\">%s</A>", |
1383 url_buf, url_buf); | 1392 tmpurlbuf, url_buf); |
1393 g_free(tmpurlbuf); | |
1384 c = t; | 1394 c = t; |
1385 break; | 1395 break; |
1386 } | 1396 } |
1387 if (!t) | 1397 if (!t) |
1388 break; | 1398 break; |
1430 char *d; | 1440 char *d; |
1431 | 1441 |
1432 for (d = url_buf + strlen(url_buf) - 1; *d == '.'; d--, t--) | 1442 for (d = url_buf + strlen(url_buf) - 1; *d == '.'; d--, t--) |
1433 *d = '\0'; | 1443 *d = '\0'; |
1434 | 1444 |
1445 tmpurlbuf = gaim_unescape_html(url_buf); | |
1435 g_string_append_printf(ret, "<A HREF=\"mailto:%s\">%s</A>", | 1446 g_string_append_printf(ret, "<A HREF=\"mailto:%s\">%s</A>", |
1436 url_buf, url_buf); | 1447 tmpurlbuf, url_buf); |
1448 g_free(tmpurlbuf); | |
1437 c = t; | 1449 c = t; |
1438 | 1450 |
1439 break; | 1451 break; |
1440 } else { | 1452 } else { |
1441 strncat(url_buf, t, 1); | 1453 strncat(url_buf, t, 1); |