graveman-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Graveman-cvs] Changes to graveman/current/src/matos.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/matos.c
Date: Sun, 20 Feb 2005 12:45:28 -0500

Index: graveman/current/src/matos.c
diff -u graveman/current/src/matos.c:1.14 graveman/current/src/matos.c:1.15
--- graveman/current/src/matos.c:1.14   Sat Feb 19 17:49:08 2005
+++ graveman/current/src/matos.c        Sun Feb 20 17:45:02 2005
@@ -162,13 +162,13 @@
   GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, 
"dstcopybtnvalue"));
   gchar *Lsrc = get_combo_value(Llecteur);
   gchar *Ldst = get_combo_value(Lgraveur);
-  gchar *Liso = NULL;
   gchar *Ltxt;
   gboolean Lstatus;
   gboolean Loperationstatus = FALSE;
   gint Ltodo = 
gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, 
"nbrcdcopy")));
   gint Ldone = 1;
-  gchar *Ltmpdir = NULL;
+  gchar Ltmpdir[MAXPATHLEN]="";
+  gchar Liso[MAXPATHLEN]="";
   const gchar *Lptriso;
 _DEB("DEBUT COPIE !! 0");
 
@@ -188,7 +188,9 @@
   if (!strcmp(Lsrc, "iso")) {
     /* copie d'une image vers un cd, on utilise cdrecord */
     Lptriso = gtk_entry_get_text(Llecteuriso);
-    Liso = _FILENAME(Lptriso);
+    Ltxt = _FILENAME(Lptriso);
+    g_strlcpy(Liso, Ltxt, MAXPATHLEN-1);
+    g_free(Ltxt);
 
     /* on test si on a bien acces au fichier iso source */
     if (!*Liso) {
@@ -210,7 +212,9 @@
     /* copie d'un cd vers une image, on utilise readcd */
     struct stat Lfstat;
     Lptriso = gtk_entry_get_text(Lgraveuriso);
-    Liso = _FILENAME(Lptriso);
+    Ltxt = _FILENAME(Lptriso);
+    g_strlcpy(Liso, Ltxt, MAXPATHLEN-1);
+    g_free(Ltxt);
     /* si le fichier existe deja on demande confirmatation avant de l'ecraser 
*/
     Ltxt = NULL;
     if (!*Liso) {
@@ -233,7 +237,6 @@
       g_free(Liso);
     }
   } else {  /* copie d'un cd a un autre, on utilise cdrdao */
-    gchar *Ltmpdir;
     /* on ajoute une tache pour la lecture, 
      * si il y a simulation alors ajoute une tache a faire */
 //    Ltodo = Ltodo + 1 + (Lsimul == TRUE ? 1 : 0);
@@ -242,17 +245,17 @@
        * on passe quand meme vers une image temporraire pour le moment,
        * c'est trop le bordel sinon ! */
 _DEB("DEBUT COPIE !!");
-    Ltmpdir = g_strdup_printf("%s/%s", conf_get_string_def("tmpdir", "/tmp"), 
"gravemanXXXXXX");
+    g_snprintf(Ltmpdir, MAXPATHLEN-1, "%s/%s", conf_get_string_def("tmpdir", 
"/tmp"), "gravemanXXXXXX");
 
     if (!mkdtemp(Ltmpdir)) {
       g_set_error(Aerror, G_FILE_ERROR, g_file_error_from_errno(errno), "%s 
%s: %s",
               _("Cannot create directory"), Ltmpdir, g_strerror(errno));    
+      *Ltmpdir = 0;
       Lstatus = FALSE;
     } else {
-      Ltmpdir = g_realloc(Ltmpdir, strlen(Ltmpdir)+strlen("/tmpiso.bin")+1);
-      strcat(Ltmpdir, "/tmpiso.bin");
+      g_snprintf(Liso, MAXPATHLEN-1, "%s/tmpiso.bin", Ltmpdir);
 
-      sc_grave_set_data(Ag, &Ltmpdir, "iso"); /* image iso */
+      sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
 
       /* copie du cd avec monsieur cdrdao */
       Lstatus = copycd(Ag, Aerror);
@@ -289,15 +292,19 @@
           Lstatus = burn_from_image("copy", Ag, Aerror);
         }
       } */
-      if ((Ltxt=strrchr(Ltmpdir, '/'))) *Ltxt=0;
-    
-      deltempdir(Ltmpdir);
-
       sc_grave_del_data(Ag, "iso");
+
+      deltempdir(Ltmpdir);
+      *Ltmpdir = 0;
     }
-    g_free(Ltmpdir);
   }
 
+  sc_grave_del_data(Ag, "todo");
+  sc_grave_del_data(Ag, "done");
+  sc_grave_del_data(Ag, "operationstatus");
+  sc_grave_del_data(Ag, "tmpdir");
+  sc_grave_del_data(Ag, "gerror");
+
   g_free(Ldst);
   g_free(Lsrc);
   return Lstatus;
@@ -313,9 +320,10 @@
   gboolean *Labort = sc_grave_get_data(Ag, "gabort");
   gint Ldone = 1;
   gchar *Ldst = get_combo_value(Lgraveur);
-  gchar *Ltmpdir = NULL;
+  gchar Ltmpdir[MAXPATHLEN] = "";
   gchar *Lextrapara = NULL;
-  gchar *Liso = NULL;
+  gchar Liso[MAXPATHLEN] = "";
+  gchar *Ltmp;
   gboolean Loperationstatus = FALSE;
   gboolean Lstatus;
 
@@ -328,25 +336,31 @@
   /* on retourne dans ltmp le nom du repertoire temporraire utilise pour
    * l'operation */
   Lstatus = preparedata(Ag, Aerror);
-_DEB("ici LDST => %s\n", Ldst);
+
+  _DEB("ici LDST => %s\n", Ldst);
   if (strcmp(Ldst, "iso")) {
-    Liso = g_strdup_printf("%s.iso", Ltmpdir);
+    g_snprintf(Liso, MAXPATHLEN-1, "%s.iso", Ltmpdir);
     Ltodo=Ltodo+(Lsimul ? 2 : 1); /* + 1 pour l'ecriture de l'image iso et 1 
pour la simulation */
   } else {
-    Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));
+    Ltmp = _FILENAME(gtk_entry_get_text(Lgraveuriso));
+    g_strlcpy(Liso, Ltmp, MAXPATHLEN-1);
+    g_free(Ltmp);
     Ltodo = 1;
   }
+
   sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
   if (Lstatus && *Labort==FALSE) {
     Lextrapara = make_image_getextrapara(Ag, "data");
-    sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres 
supplementaires */
+    sc_grave_set_data(Ag, Lextrapara, "extrapara"); /* parametres 
supplementaires */
+    
     Lstatus = make_iso(Ag, Aerror);
+    
     sc_grave_del_data(Ag, "extrapara");
     g_free(Lextrapara);
     if (strcmp(Ldst, "iso") && Lstatus && *Labort==FALSE) {
       /* ici il faut appeler cdrecord ! */
       Lextrapara = burn_data_getextrapara(Ag);
-      sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres 
supplementaires */
+      sc_grave_set_data(Ag, Lextrapara, "extrapara"); /* parametres 
supplementaires */
       Lstatus = burn_from_image("data", Ag, Aerror);
       sc_grave_del_data(Ag, "extrapara");
       g_free(Lextrapara);
@@ -355,15 +369,14 @@
 
   deltempdir(Ltmpdir);
   
-  if (strcmp(Ldst, "iso") && Liso
+  if (strcmp(Ldst, "iso") && *Liso
       && g_file_test(Liso, G_FILE_TEST_EXISTS + G_FILE_TEST_IS_REGULAR)==TRUE) 
{
     unlink(Liso);
   }
-  g_free(Liso);
 
   sc_grave_del_data(Ag, "todo");
   sc_grave_del_data(Ag, "done"); 
-  sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir);
+  sc_grave_del_data(Ag, "tmpdir");
   sc_grave_del_data(Ag, "operationstatus"); 
   sc_grave_del_data(Ag, "gerror");
   sc_grave_del_data(Ag, "iso");
@@ -378,7 +391,7 @@
 
   gint Ltodo = gtk_tree_model_iter_n_children(Ltreemodel, NULL);
   gint Ldone = 0;
-  gchar *Ltmpdir = NULL;
+  gchar Ltmpdir[MAXPATHLEN] = "";
   gboolean Lstatus, Loperationstatus = FALSE;
 
   sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */
@@ -395,13 +408,17 @@
     Lstatus = gravepiste(Ag, Aerror);
   }
 
-  if (Ltmpdir) {
+  if (*Ltmpdir) {
     _DEB("on free tmpdir !");
     deltempdir(Ltmpdir);
-
-    g_free(Ltmpdir);
   }
 
+  sc_grave_del_data(Ag, "todo");
+  sc_grave_del_data(Ag, "done"); 
+  sc_grave_del_data(Ag, "tmpdir");
+  sc_grave_del_data(Ag, "operationstatus"); 
+  sc_grave_del_data(Ag, "gerror");
+
   return Lstatus ? TRUE : FALSE;
 }
 
@@ -484,9 +501,10 @@
   GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstdvddatacombo");
   gint Ldone = 1;
   gchar *Ldst = get_combo_value(Lgraveur);
-  gchar *Ltmpdir = NULL;
+  gchar Ltmpdir[MAXPATHLEN] = "";
   gchar *Lextrapara = NULL;
-  gchar *Liso = NULL;
+  gchar *Ltmp;
+  gchar Liso[MAXPATHLEN] = "";
   gboolean Loperationstatus = FALSE;
   gboolean Lstatus;
 
@@ -502,19 +520,21 @@
 _DEB("ici LDST => %s\n", Ldst);
 
   Lextrapara = make_image_getextrapara(Ag, "dvddata");
-  sc_grave_set_data(Ag, &Lextrapara, "extradata"); /* parametres 
supplementaires */
+  sc_grave_set_data(Ag, Lextrapara, "extradata"); /* parametres 
supplementaires */
+
   if (strcmp(Ldst, "iso")) {
     if (Lsimul) Ltodo++; /* 1 pour la simulation */
 
     Lstatus = burn_dvd(Ag, Aerror);
 
   } else {
-    Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));
+    Ltmp = _FILENAME(gtk_entry_get_text(Lgraveuriso));
+    g_strlcpy(Liso, Ltmp, MAXPATHLEN-1);
+    g_free(Ltmp);
     Ltodo = 1;
     sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
     Lstatus = make_iso(Ag, Aerror);
     sc_grave_del_data(Ag, "iso");
-    g_free(Liso);
   }
   sc_grave_del_data(Ag, "extrapara");
   g_free(Lextrapara);
@@ -523,7 +543,7 @@
 
   sc_grave_del_data(Ag, "todo");
   sc_grave_del_data(Ag, "done"); 
-  sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir);
+  sc_grave_del_data(Ag, "tmpdir");
   sc_grave_del_data(Ag, "operationstatus"); 
   sc_grave_del_data(Ag, "gerror");
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]