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/data.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/data.c
Date: Mon, 02 May 2005 19:18:38 -0400

Index: graveman/current/src/data.c
diff -u graveman/current/src/data.c:1.10 graveman/current/src/data.c:1.11
--- graveman/current/src/data.c:1.10    Thu Mar 31 22:14:12 2005
+++ graveman/current/src/data.c Mon May  2 23:18:32 2005
@@ -29,6 +29,7 @@
 {
   gint Ltype, Lparenttype, Lfd;
   Tgrave *Lg = (Tgrave *)Adata;
+  gchar *Ltmpdir = (gchar *)sc_grave_get_data(Lg, "tmpdir");
   gchar *Lonlyname = NULL, *Lnom = NULL, *Lnomutf8 = NULL;
   gchar *Lonlynameparent = NULL;
   gchar Lparents[MAXPATHLEN], Ltmp[MAXPATHLEN];
@@ -45,6 +46,14 @@
 
     *Lparents=*Ltmp=0;
     Lparentpath = gtk_tree_path_copy(Apath);
+_DEB("debuut avec  => [%s] soit => [%s]\n", Lnom, Lonlyname);
+
+/*    if (Ltype == TYPE_DIR) {
+      _DEB("creation rep => [%s]\n", Lonlyname);
+      g_snprintf(Ltmp, MAXPATHLEN-1, "%s", Lonlyname);
+      write(Lfd, Ltmp, strlen(Ltmp));
+    }*/
+
     while (gtk_tree_path_up(Lparentpath)) {
       if (gtk_tree_model_get_iter(Amodel, &LparentIter, Lparentpath)==FALSE) {
         Lreturn = TRUE;
@@ -57,16 +66,23 @@
 
       g_snprintf(Ltmp, sizeof(Ltmp)-1, "%s/%s", Lonlynameparent, Lparents);
       strcpy(Lparents, Ltmp);
+_DEB("la un rep => [%s]\n", Lparents);
       g_free(Lonlynameparent);
     }
     gtk_tree_path_free(Lparentpath);
-
     if (!Lreturn) {
+      int lr;
       if (Ltype == TYPE_FILE) {
-      _DEB("creation graft [%s] car [%s]", *Lparents ? Lparents : "/" , Lnom); 
      
-        g_snprintf (Ltmp, MAXPATHLEN, "%s=%s\n", *Lparents ? Lparents : "/", 
Lnom);
-        write (Lfd, Ltmp, strlen (Ltmp));
+      _DEB("creation graft file [%s/%s] car [%s]", *Lparents ? Lparents : "" , 
Lonlyname, Lnom); 
+        g_snprintf (Ltmp, MAXPATHLEN-1, "%s/%s=%s\n", *Lparents ? Lparents : 
"", Lonlyname, Lnom);
+        lr = write (Lfd, Ltmp, strlen (Ltmp));
+      } else {
+      _DEB("creation graft repertoire [%s/%s]", *Lparents ? Lparents : "" , 
Lonlyname);       
+        g_snprintf (Ltmp, MAXPATHLEN-1, "%s/%s=%s/tmpdir\n", *Lparents ? 
Lparents : "", Lonlyname, Ltmpdir);
+        lr = write (Lfd, Ltmp, strlen (Ltmp));
+
       }
+      
     }
 
   }
@@ -78,33 +94,49 @@
   return Lreturn;
 }
 
-/* preparation pour la gravure, creation du repertorie
+/* preparation pour la gravure, creation du repertoire
  * temporraire et des liens qui vont servir a creer l'image a graver */
 gboolean preparedata(Tgrave *Ag, GError **Aerror)
 {
-  gchar *Ltmpfile = (gchar *)sc_grave_get_data(Ag, "tmpdir");
+  gchar *Ltmpdir = (gchar *)sc_grave_get_data(Ag, "tmpdir");
   GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));
   GtkTreeModel *LTreeModel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_data(Ag, "_current_list")));
   gboolean Lstatus = TRUE;
+  gchar Lpathfile[MAXPATHLEN];
   gint Lfd = -1;
   
   g_assert(LTreeModel);
 
-  g_snprintf(Ltmpfile, MAXPATHLEN-1, "%s/%s", conf_get_string_def("tmpdir", 
"/tmp"), "gravemanXXXXXX");
+  g_snprintf(Ltmpdir, MAXPATHLEN-1, "%s/%s", conf_get_string_def("tmpdir", 
"/tmp"), "gravemanXXXXXX");
   gtk_label_set_text(Ltitle, _("Prepare files..."));
 
-  if ((Lfd = g_mkstemp (Ltmpfile)) < 0) {
+  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;
+
+    return FALSE;
+  }
+
+  /* empty dir */
+  g_snprintf(Lpathfile, MAXPATHLEN-1, "%s/tmpdir", Ltmpdir);
+  mkdir(Lpathfile, S_IRUSR + S_IXUSR + S_IRGRP + S_IXGRP + S_IROTH + S_IXOTH);
+
+  /* patlist */
+  g_snprintf(Lpathfile, MAXPATHLEN-1, "%s/pathlist", Ltmpdir);
+  if ((Lfd = open (Lpathfile,O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR + S_IWUSR)) < 
0) {
     g_set_error(Aerror, G_FILE_ERROR, g_file_error_from_errno(errno), "%s %s: 
%s", 
-             _("Cannot create file"), Ltmpfile, g_strerror(errno));
-    *Ltmpfile = 0;
+             _("Cannot create file"), Lpathfile, g_strerror(errno));
+    *Ltmpdir = 0;
+
     Lstatus = FALSE;
   } else {
-    _DEB("repertoire temp [%s]\n", Ltmpfile);
+    _DEB("repertoire temp [%s]\n", Ltmpdir);
     /* conversion de chaques fichiers */
     sc_grave_set_data(Ag, GINT_TO_POINTER (Lfd), "graftfd");
     gtk_tree_model_foreach(LTreeModel, foreachfiles, Ag);
-    sc_grave_del_data(Ag, "graftfd");
     close (Lfd);
+    sc_grave_del_data(Ag, "graftfd");
     
     /* si Aerror n'est plus NULL c'est qu'il y a eu une erreur ! */
     if ((GError *)*Aerror) Lstatus = FALSE;
@@ -113,6 +145,26 @@
   return Lstatus;
 }
 
+/* on efface les données temporraires */
+gboolean cleandata(Tgrave *Ag, GError **Aerror)
+{
+  gchar *Ltmpdir = (gchar *)sc_grave_get_data(Ag, "tmpdir");
+  gchar Lname[MAXPATHLEN];
+
+  return TRUE;
+  if (!Ltmpdir || !*Ltmpdir) return FALSE;
+
+  g_snprintf(Lname, MAXPATHLEN-1, "%s/pathlist", Ltmpdir);
+  if (g_file_test(Lname, G_FILE_TEST_IS_REGULAR)) unlink(Lname);
+
+  g_snprintf(Lname, MAXPATHLEN-1, "%s/tmpdir", Ltmpdir);
+  if (g_file_test(Lname, G_FILE_TEST_IS_DIR)) rmdir(Lname);
+  
+  if (g_file_test(Ltmpdir, G_FILE_TEST_IS_DIR)) rmdir(Ltmpdir);
+
+  return TRUE;
+}
+
 /*
  * vim:et:ts=8:sts=2:sw=2
  */




reply via email to

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