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


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/mkisofs.c
Date: Mon, 07 Feb 2005 21:33:16 -0500

Index: graveman/current/src/mkisofs.c
diff -u graveman/current/src/mkisofs.c:1.4 graveman/current/src/mkisofs.c:1.5
--- graveman/current/src/mkisofs.c:1.4  Tue Feb  1 02:35:19 2005
+++ graveman/current/src/mkisofs.c      Tue Feb  8 02:32:57 2005
@@ -33,24 +33,41 @@
 #define MKISOFS_NOSPACE "No space left on device"
 
 /* recherche les parametres supplementaires a passer a mkisofs */
-gchar *make_image_getextrapara(GHashTable *Ahash)
+gchar *make_image_getextrapara(GHashTable *Ahash, gchar *Aop)
 {
-  const gchar *Ldatavoli = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datavoli")));
-  const gchar *Ldatapubl = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datapubl")));
-  const gchar *Ldataprep = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "dataprep")));
-  const gchar *Ldatabibl = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "databibl")));
-  const gchar *Ldatacopy = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datacopy")));
-  const gchar *Ldataabst = 
gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "dataabst")));
-  gboolean Lrockridge = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, 
"datarockridge")));
-  gboolean Ljoliet = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, 
"datajoliet")));
-  gchar *Lisolevel = get_combo_value(g_hash_table_lookup(Ahash, 
"dataisolevel"));
+  const gchar *Ldatavoli = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%svoli", Aop)));
+  const gchar *Ldatapubl = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%spubl", Aop)));
+  const gchar *Ldataprep = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sprep", Aop)));
+  const gchar *Ldatabibl = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sbibl", Aop)));
+  const gchar *Ldatacopy = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%scopy", Aop)));
+  const gchar *Ldataabst = 
gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sabst", Aop)));
   gchar *Lreturn;
+  gchar *Lextra = NULL;
+  GtkTextIter Lstart, Lend;
+  GtkTextBuffer *Lbufappi = gtk_text_view_get_buffer (GTK_TEXT_VIEW 
(sc_hash_table_lookupv(Ahash, "%sappi", Aop)));
+  char *Ldataappi, *Ltmpappi;
+  gtk_text_buffer_get_bounds (Lbufappi, &Lstart, &Lend);
+  Ltmpappi = gtk_text_iter_get_text (&Lstart, &Lend);
+  Ldataappi = g_strescape(Ltmpappi, "");
+  g_free(Ltmpappi);
+
+  if (!strcmp(Aop, "data")) { /* data cd */
+    gboolean Lrockridge = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, 
"datarockridge")));
+    gboolean Ljoliet = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, 
"datajoliet")));
+    gchar *Lisolevel = get_combo_value(g_hash_table_lookup(Ahash, 
"dataisolevel"));
+
+    Lextra = g_strdup_printf("%s %s -iso-level %s", Lrockridge == TRUE ? "-r" 
: "", Ljoliet ? "-J" : "", Lisolevel);
+    g_free(Lisolevel);
+  } else {  /* data dvd */
+    Lextra = g_strdup("-R -J");
+  }
+
+  Lreturn = g_strdup_printf("-V \"%s\" -A \"%s\" -publisher \"%s\" -p \"%s\" 
-biblio \"%s\" -copyright \"%s\" "
+            "-abstract \"%s\" %s",
+            _NN(Ldatavoli), _NN(Ldataappi), _NN(Ldatapubl), _NN(Ldataprep), 
_NN(Ldatabibl), _NN(Ldatacopy),
+            _NN(Ldataabst), Lextra);
+  g_free(Lextra);
 
-  Lreturn = g_strdup_printf("-V \"%s\" -publisher \"%s\" -p \"%s\" -biblio 
\"%s\" -copyright \"%s\" -abstract \"%s\" %s %s"
-                                   " -iso-level %s",
-            _NN(Ldatavoli), _NN(Ldatapubl), _NN(Ldataprep), _NN(Ldatabibl), 
_NN(Ldatacopy), _NN(Ldataabst),
-            Lrockridge == TRUE ? "-r" : "", Ljoliet ? "-J" : "", Lisolevel);
-  g_free(Lisolevel);
   return Lreturn;
 }
 
@@ -152,7 +169,7 @@
   }
 
   Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, /* env argument */
-    (GSpawnFlags ) (0),
+    (GSpawnFlags ) (G_SPAWN_DO_NOT_REAP_CHILD),
      NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror);
   g_strfreev(Lcmd);
 
@@ -176,13 +193,14 @@
   while (*Lcont > 0 && *Labort == FALSE) {
    gtk_main_iteration();
   }
+  exit_prog(*Lpid, Aerror, NULL);
 
 _DEB("fin !!");
 
   g_source_remove(Lcomerrevent);
   g_source_remove(Lcomevent);
 
-  /* fermeture readcd */
+  /* fermeture mkisofs */
   g_io_channel_shutdown(Lcomerr, FALSE, NULL);
   g_io_channel_unref(Lcomerr);  
   g_io_channel_shutdown(Lcom, FALSE, NULL);




reply via email to

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