Mercurial > geeqie
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 |