comparison src/pan-view.c @ 767:e73d30e0c896

Make utf8_validate_or_convert() to always allocate a new string.
author zas_
date Fri, 30 May 2008 08:36:23 +0000
parents 477f48ba28d8
children d6a7fb4b8e7c
comparison
equal deleted inserted replaced
766:7148e125bf23 767:e73d30e0c896
1442 1442
1443 for (i = 0; ExifUIList[i].key; i++) 1443 for (i = 0; ExifUIList[i].key; i++)
1444 { 1444 {
1445 gchar *label; 1445 gchar *label;
1446 gchar *text; 1446 gchar *text;
1447 gchar *utf8_text;
1447 1448
1448 if (ExifUIList[i].current == EXIF_UI_OFF) continue; 1449 if (ExifUIList[i].current == EXIF_UI_OFF) continue;
1449 1450
1450 text = exif_get_data_as_text(exif, ExifUIList[i].key); 1451 text = exif_get_data_as_text(exif, ExifUIList[i].key);
1451 text = utf8_validate_or_convert(text);
1452 if (ExifUIList[i].current == EXIF_UI_IFSET && (!text || !*text)) 1452 if (ExifUIList[i].current == EXIF_UI_IFSET && (!text || !*text))
1453 { 1453 {
1454 if (text) g_free(text); 1454 g_free(text);
1455 continue; 1455 continue;
1456 } 1456 }
1457 1457
1458 label = g_strdup_printf("%s:", exif_get_description_by_key(ExifUIList[i].key)); 1458 label = g_strdup_printf("%s:", exif_get_description_by_key(ExifUIList[i].key));
1459 pan_text_alignment_add(ta, label, text); 1459 utf8_text = utf8_validate_or_convert(text);
1460 g_free(text);
1461 pan_text_alignment_add(ta, label, utf8_text);
1460 g_free(label); 1462 g_free(label);
1461 g_free(text); 1463 g_free(utf8_text);
1462 } 1464 }
1463 1465
1464 work = g_list_last(history_list_get_by_key("exif_extras")); 1466 work = g_list_last(history_list_get_by_key("exif_extras"));
1465 if (work) pan_text_alignment_add(ta, "---", NULL); 1467 if (work) pan_text_alignment_add(ta, "---", NULL);
1466 while (work) 1468 while (work)
1467 { 1469 {
1468 const gchar *name; 1470 const gchar *name;
1469 gchar *label;
1470 gchar *text; 1471 gchar *text;
1471 1472
1472 name = work->data; 1473 name = work->data;
1473 work = work->prev; 1474 work = work->prev;
1474 1475
1475 label = g_strdup_printf("%s:", name);
1476 text = exif_get_data_as_text(exif, name); 1476 text = exif_get_data_as_text(exif, name);
1477 text = utf8_validate_or_convert(text); 1477 if (text)
1478 pan_text_alignment_add(ta, label, text); 1478 {
1479 g_free(label); 1479 gchar *label = g_strdup_printf("%s:", name);
1480 g_free(text); 1480 gchar *utf8_text = utf8_validate_or_convert(text);
1481
1482 g_free(text);
1483 pan_text_alignment_add(ta, label, utf8_text);
1484 g_free(label);
1485 g_free(utf8_text);
1486 }
1481 } 1487 }
1482 1488
1483 exif_free(exif); 1489 exif_free(exif);
1484 } 1490 }
1485 1491