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);