Updating branch refs/heads/master
         to 7af05d23e95ef8323fb85f3f7de975bd706d3983 (commit)
       from c980b8cd1bfcc79deb0629ef2e3d64c2b8ae64b4 (commit)

commit 7af05d23e95ef8323fb85f3f7de975bd706d3983
Author: Connor Behan <connor.be...@gmail.com>
Date:   Tue Nov 12 03:07:11 2013 -0800

    Be much better about using the built-in string functions

 generic-slider.c |   38 +++++++++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/generic-slider.c b/generic-slider.c
index dad789d..97385f0 100644
--- a/generic-slider.c
+++ b/generic-slider.c
@@ -30,14 +30,14 @@ typedef struct generic_slider {
 } Generic_Slider;
 
 char *parse_command(char *primitive, int value, int delta) {
+       gchar *command;
        int numds = 0;
        int numvs = 0;
        int i;
        
        if (!strcmp(primitive, "")) {
                /* Functions that free this string later need something to free 
*/
-               char *command = malloc(sizeof(char));
-               strcpy(command, "");
+               command = g_strdup("");
                return command;
        }
        
@@ -51,18 +51,27 @@ char *parse_command(char *primitive, int value, int delta) {
                }
        }
                
-       char *command = malloc((strlen(primitive) + 3 * (numds + numvs) + 1) * 
sizeof(char));
-       strcpy(command, primitive);
+       command = g_strdup(primitive);
        
        for (i = 0; i < numds; i++) {
                gchar **frags = g_strsplit(command, "%d", 2);
                gchar *delta_string = g_strdup_printf("%d", delta);
-               strcpy(command, g_strconcat(frags[0], delta_string, frags[1], 
NULL));
+               
+               g_free(command);
+               command = g_strconcat(frags[0], delta_string, frags[1], NULL);
+               
+               g_strfreev(frags);
+               g_free(delta_string);
        }
        for (i = 0; i < numvs; i++) {
                gchar **frags = g_strsplit(command, "%v", 2);
                gchar *value_string = g_strdup_printf("%d", value);
-               strcpy(command, g_strconcat(frags[0], value_string, frags[1], 
NULL));
+               
+               g_free(command);
+               command = g_strconcat(frags[0], value_string, frags[1], NULL);
+               
+               g_strfreev(frags);
+               g_free(value_string);
        }
        return command;
 }
@@ -300,6 +309,8 @@ static void generic_slider_write_rc_file(XfcePanelPlugin 
*plugin, Generic_Slider
        xfce_rc_write_entry(rc, "mode",  g_strdup_printf("%d", generic_slider 
-> mode));
        xfce_rc_write_entry(rc, "color", color_string);
        xfce_rc_close(rc);
+       
+       g_free(color_string);
 }
 
 static void generic_slider_read_rc_file(XfcePanelPlugin *plugin, 
Generic_Slider *generic_slider) {
@@ -329,19 +340,19 @@ static void generic_slider_read_rc_file(XfcePanelPlugin 
*plugin, Generic_Slider
                        }
                        tmp = xfce_rc_read_entry(rc, "adjust_denominator", 
"100");
                        if (tmp != NULL) {
-                               generic_slider -> adjust_denominator = (int) 
g_strtod(g_strdup(tmp), NULL);
+                               generic_slider -> adjust_denominator = (int) 
g_strtod(tmp, NULL);
                        }
                        tmp = xfce_rc_read_entry(rc, "sync_denominator", "100");
                        if (tmp != NULL) {
-                               generic_slider -> sync_denominator = (int) 
g_strtod(g_strdup(tmp), NULL);
+                               generic_slider -> sync_denominator = (int) 
g_strtod(tmp, NULL);
                        }
                        tmp = xfce_rc_read_entry(rc, "description_denominator", 
"100");
                        if (tmp != NULL) {
-                               generic_slider -> description_denominator = 
(int) g_strtod(g_strdup(tmp), NULL);
+                               generic_slider -> description_denominator = 
(int) g_strtod(tmp, NULL);
                        }
                        tmp = xfce_rc_read_entry(rc, "mode", "0");
                        if (tmp != NULL) {
-                               generic_slider -> mode = (int) 
g_strtod(g_strdup(tmp) , NULL);
+                               generic_slider -> mode = (int) g_strtod(tmp , 
NULL);
                        }
                        tmp = xfce_rc_read_entry(rc, "color", color_string);
                        if (tmp != NULL) {
@@ -351,6 +362,7 @@ static void generic_slider_read_rc_file(XfcePanelPlugin 
*plugin, Generic_Slider
                }
        }
        
+       g_free(color_string);
        generic_slider -> timeout_id = g_timeout_add(TIMEOUT, 
(GtkFunction)timer_cb, generic_slider);
        generic_slider -> active = 1;
 }
@@ -459,15 +471,15 @@ static void generic_slider_update_commands(GtkWidget 
*entry, Generic_Slider *gen
        
        if (!strncmp(name, "A", 1)) {
                /* We're changing the command to adjust */
-               generic_slider -> adjust_command = 
malloc((strlen(gtk_entry_get_text(GTK_ENTRY(entry))) + 1) * sizeof(char));
+               free(generic_slider -> adjust_command);
                generic_slider -> adjust_command = 
g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
        } else if (!strncmp(name, "B", 1)) {
                /* We're changing the command with which to synchronize */
-               generic_slider -> sync_command = 
malloc((strlen(gtk_entry_get_text(GTK_ENTRY(entry))) + 1) * sizeof(char));
+               free(generic_slider -> sync_command);
                generic_slider -> sync_command = 
g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
        } else {
                /* We're changing the slider's label */
-               generic_slider -> description = 
malloc((strlen(gtk_entry_get_text(GTK_ENTRY(entry))) + 1) * sizeof(char));
+               free(generic_slider -> description);
                generic_slider -> description = 
g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
                
                label_text = parse_command(generic_slider -> description, 
(generic_slider -> description_denominator) * (generic_slider -> value), 
(generic_slider -> description_denominator) * (generic_slider -> delta));
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to