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

Reply via email to