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);
 }
 
 /**
openSUSE Build Service is sponsored by