Author: abrander
Date: 2010-05-28 18:54:49 +0200 (Fri, 28 May 2010)
New Revision: 3402
Modified:
trunk/librawstudio/rs-utils.c
trunk/librawstudio/rs-utils.h
trunk/plugins/meta-tiff/tiff-meta.c
Log:
Modified rs_remove_tailing_spaces() to (optionally) modify string in-place.
Modified: trunk/librawstudio/rs-utils.c
===================================================================
--- trunk/librawstudio/rs-utils.c 2010-05-28 16:49:05 UTC (rev 3401)
+++ trunk/librawstudio/rs-utils.c 2010-05-28 16:54:49 UTC (rev 3402)
@@ -789,24 +789,27 @@
/**
* Removes tailing spaces from a gchar *
* @param str A gchar * to have tailing spaces removed
+ * @param inplace Set to TRUE if string should be edited inplace
* @return A gchar * with tailing spaces removed
*/
gchar *
-rs_remove_tailing_spaces(gchar *str)
+rs_remove_tailing_spaces(gchar *str, gboolean inplace)
{
gint i;
- gchar *ret;
+ gchar *ret = str;
- for(i = strlen(str)-1; i > 0; i--)
+ g_return_val_if_fail(str != NULL, NULL);
+
+ if (!inplace)
+ ret = g_strdup(str);
+
+ for(i = strlen(ret)-1; i > 0; i--)
{
- if (str[i] == 0x20)
- str[i] = 0x00;
+ if (ret[i] == 0x20)
+ ret[i] = 0x00;
else
i = 0;
}
- ret = g_strdup(str);
- g_free(str);
-
return ret;
}
Modified: trunk/librawstudio/rs-utils.h
===================================================================
--- trunk/librawstudio/rs-utils.h 2010-05-28 16:49:05 UTC (rev 3401)
+++ trunk/librawstudio/rs-utils.h 2010-05-28 16:54:49 UTC (rev 3402)
@@ -178,8 +178,10 @@
/**
* Removes tailing spaces from a gchar *
* @param str A gchar * to have tailing spaces removed
+ * @param inplace Set to TRUE if string should be edited inplace
* @return A gchar * with tailing spaces removed
*/
-gchar * rs_remove_tailing_spaces(gchar *str);
+gchar *
+rs_remove_tailing_spaces(gchar *str, gboolean inplace);
#endif /* RS_UTILS_H */
Modified: trunk/plugins/meta-tiff/tiff-meta.c
===================================================================
--- trunk/plugins/meta-tiff/tiff-meta.c 2010-05-28 16:49:05 UTC (rev 3401)
+++ trunk/plugins/meta-tiff/tiff-meta.c 2010-05-28 16:54:49 UTC (rev 3402)
@@ -1202,11 +1202,11 @@
{
case 0x010f: /* Make */
if (!meta->make_ascii)
- meta->make_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count));
+ meta->make_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count),
TRUE);
break;
case 0x0110: /* Model */
if (!meta->model_ascii)
- meta->model_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count));
+ meta->model_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count),
TRUE);
break;
case 0x9003: /* DateTime */
case 0x9004: /* DateTime */
@@ -1313,7 +1313,7 @@
case 0x010f: /* Make */
if (!meta->make_ascii)
{
- meta->make_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count));
+ meta->make_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count),
TRUE);
if (raw_strcmp(rawfile,
ifd.value_offset, "Canon", 5))
meta->make = MAKE_CANON;
else if (raw_strcmp(rawfile,
ifd.value_offset, "CASIO", 5))
@@ -1356,7 +1356,7 @@
break;
case 0x0110: /* Model */
if (!meta->model_ascii)
- meta->model_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count));
+ meta->model_ascii =
rs_remove_tailing_spaces(raw_strdup(rawfile, ifd.value_offset, ifd.count),
TRUE);
break;
case 0x0111: /* StripOffsets */
if (meta->preview_start==0 || is_preview)
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit