File xfce4-timer-plugin-0.6.1-fix-timerinfo-truncation.patch of Package xfce4-panel-plugins.907
diff -urNp xfce4-timer-plugin-0.6.1.orig/src/xfcetimer.c xfce4-timer-plugin-0.6.1/src/xfcetimer.c
--- xfce4-timer-plugin-0.6.1.orig/src/xfcetimer.c 2008-11-20 21:45:21.000000000 +0100
+++ xfce4-timer-plugin-0.6.1/src/xfcetimer.c 2012-02-09 11:49:22.304167161 +0100
@@ -83,7 +83,7 @@ static gboolean timeout_function (gpoint
plugin_data *pd=(plugin_data *)data;
gint elapsed_sec,remaining;
- gchar tiptext[32];
+ gchar *tiptext = NULL;
GtkWidget *dialog;
gulong zip;
@@ -98,18 +98,20 @@ static gboolean timeout_function (gpoint
remaining=pd->timeout_period_in_sec-elapsed_sec;
if(remaining>=3600)
- g_snprintf(tiptext,31,_("%dh %dm %ds left"),remaining/3600, (remaining%3600)/60,
+ tiptext = g_strdup_printf(_("%dh %dm %ds left"),remaining/3600, (remaining%3600)/60,
remaining%60);
else if (remaining>=60)
- g_snprintf(tiptext,31,_("%dm %ds left"),remaining/60, remaining%60);
+ tiptext = g_strdup_printf(_("%dm %ds left"),remaining/60, remaining%60);
else
- g_snprintf(tiptext,31,_("%ds left"),remaining);
+ tiptext = g_strdup_printf(_("%ds left"),remaining);
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(pd->pbar),
((gdouble)elapsed_sec)/pd-> timeout_period_in_sec);
gtk_tooltips_set_tip(pd->tip,GTK_WIDGET(pd->base),tiptext,NULL);
+ g_free(tiptext);
+
return TRUE;
}
@@ -362,7 +364,7 @@ void make_menu(plugin_data *pd){
GSList *group=NULL;
GtkWidget *menuitem;
gchar *timername,*timerinfo;
- gchar itemtext[256];
+ gchar *itemtext = NULL;
gint row_count;
@@ -387,7 +389,7 @@ void make_menu(plugin_data *pd){
/*g_fprintf(stderr,"\nMaking menuitem %d while selected is %d",row_count,pd->
selected);*/
gtk_tree_model_get(GTK_TREE_MODEL(pd->list),&iter,1,&timername,2,&timerinfo,-1);
- g_snprintf(itemtext,255,"%s (%s)",timername,timerinfo);
+ itemtext = g_strdup_printf("%s (%s)",timername,timerinfo);
menuitem=gtk_radio_menu_item_new_with_label(group,itemtext);
gtk_widget_show(menuitem);
g_free(timername);
@@ -405,6 +407,7 @@ void make_menu(plugin_data *pd){
gtk_menu_shell_append(GTK_MENU_SHELL(pd->menu),menuitem);
/*g_fprintf(stderr,"\nAdding menuitem with label : %s",itemtext);*/
+ g_free(itemtext);
/* We add the address of menuitem to the array */
g_array_append_val(pd->menuarray,menuitem);
@@ -455,7 +458,7 @@ static void ok_add(GtkButton *button, gp
alarm_data *adata = (alarm_data *)data;
GtkTreeIter iter;
gint t1,t2,t3,t;
- gchar timeinfo[16];
+ gchar *timeinfo = NULL;
/* Add item to the list */
gtk_list_store_append(adata->pd->list,&iter);
@@ -480,11 +483,11 @@ static void ok_add(GtkButton *button, gp
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,5,t,-1);
if(t1>0)
- g_snprintf(timeinfo,15,_("%dh %dm %ds"),t1,t2,t3);
+ timeinfo = g_strdup_printf(_("%dh %dm %ds"),t1,t2,t3);
else if(t2>0)
- g_snprintf(timeinfo,15,_("%dm %ds"),t2,t3);
+ timeinfo = g_strdup_printf(_("%dm %ds"),t2,t3);
else
- g_snprintf(timeinfo,15,_("%ds"),t3);
+ timeinfo = g_strdup_printf(_("%ds"),t3);
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,2,timeinfo,-1);
}
@@ -494,7 +497,7 @@ static void ok_add(GtkButton *button, gp
t2=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(adata->time_m));
t=t1*60+t2;
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,5,t,-1);
- g_snprintf(timeinfo,9,_("At %02d:%02d"),t1,t2);
+ timeinfo = g_strdup_printf(_("At %02d:%02d"),t1,t2);
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,2,timeinfo,-1);
}
@@ -506,6 +509,7 @@ static void ok_add(GtkButton *button, gp
gtk_widget_destroy(GTK_WIDGET(adata->window));
g_free(adata);
+ g_free(timeinfo);
}
@@ -532,7 +536,7 @@ static void ok_edit(GtkButton *button, g
alarm_data *adata = (alarm_data *)data;
GtkTreeIter iter;
gint t1,t2,t3,t;
- gchar timeinfo[10];
+ gchar *timeinfo = NULL;
GtkTreeSelection *select;
GtkTreeModel *model;
@@ -553,12 +557,12 @@ static void ok_edit(GtkButton *button, g
t3=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(adata->times));
t=t1*3600+t2*60+t3;
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,5,t,-1);
- if(t1>0)
- g_snprintf(timeinfo,15,_("%dh %dm %ds"),t1,t2,t3);
- else if(t2>0)
- g_snprintf(timeinfo,15,_("%dm %ds"),t2,t3);
- else
- g_snprintf(timeinfo,15,_("%ds"),t3);
+ if(t1>0)
+ timeinfo = g_strdup_printf(_("%dh %dm %ds"),t1,t2,t3);
+ else if(t2>0)
+ timeinfo = g_strdup_printf(_("%dm %ds"),t2,t3);
+ else
+ timeinfo = g_strdup_printf(_("%ds"),t3);
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,2,timeinfo,-1);
}
@@ -568,7 +572,7 @@ static void ok_edit(GtkButton *button, g
t2=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(adata->time_m));
t=t1*60+t2;
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,5,t,-1);
- g_snprintf(timeinfo,9,_("At %02d:%02d"),t1,t2);
+ timeinfo = g_strdup_printf(_("At %02d:%02d"),t1,t2);
gtk_list_store_set(GTK_LIST_STORE(adata->pd->list),&iter,2,timeinfo,-1);
}
@@ -580,6 +584,7 @@ static void ok_edit(GtkButton *button, g
gtk_widget_destroy(GTK_WIDGET(adata->window));
g_free(adata);
+ g_free(timeinfo);
}
/**