33 |
#define MKISOFS_NOSPACE "No space left on device" |
#define MKISOFS_NOSPACE "No space left on device" |
34 |
|
|
35 |
/* recherche les parametres supplementaires a passer a mkisofs */ |
/* recherche les parametres supplementaires a passer a mkisofs */ |
36 |
gchar *make_image_getextrapara(GHashTable *Ahash) |
gchar *make_image_getextrapara(GHashTable *Ahash, gchar *Aop) |
37 |
{ |
{ |
38 |
const gchar *Ldatavoli = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datavoli"))); |
const gchar *Ldatavoli = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%svoli", Aop))); |
39 |
const gchar *Ldatapubl = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datapubl"))); |
const gchar *Ldatapubl = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%spubl", Aop))); |
40 |
const gchar *Ldataprep = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "dataprep"))); |
const gchar *Ldataprep = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sprep", Aop))); |
41 |
const gchar *Ldatabibl = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "databibl"))); |
const gchar *Ldatabibl = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sbibl", Aop))); |
42 |
const gchar *Ldatacopy = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "datacopy"))); |
const gchar *Ldatacopy = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%scopy", Aop))); |
43 |
const gchar *Ldataabst = gtk_entry_get_text(GTK_ENTRY(g_hash_table_lookup(Ahash, "dataabst"))); |
const gchar *Ldataabst = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sabst", Aop))); |
|
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")); |
|
44 |
gchar *Lreturn; |
gchar *Lreturn; |
45 |
|
gchar *Lextra = NULL; |
46 |
|
GtkTextIter Lstart, Lend; |
47 |
|
GtkTextBuffer *Lbufappi = gtk_text_view_get_buffer (GTK_TEXT_VIEW (sc_hash_table_lookupv(Ahash, "%sappi", Aop))); |
48 |
|
char *Ldataappi, *Ltmpappi; |
49 |
|
gtk_text_buffer_get_bounds (Lbufappi, &Lstart, &Lend); |
50 |
|
Ltmpappi = gtk_text_iter_get_text (&Lstart, &Lend); |
51 |
|
Ldataappi = g_strescape(Ltmpappi, ""); |
52 |
|
g_free(Ltmpappi); |
53 |
|
|
54 |
|
if (!strcmp(Aop, "data")) { /* data cd */ |
55 |
|
gboolean Lrockridge = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "datarockridge"))); |
56 |
|
gboolean Ljoliet = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "datajoliet"))); |
57 |
|
gchar *Lisolevel = get_combo_value(g_hash_table_lookup(Ahash, "dataisolevel")); |
58 |
|
|
59 |
|
Lextra = g_strdup_printf("%s %s -iso-level %s", Lrockridge == TRUE ? "-r" : "", Ljoliet ? "-J" : "", Lisolevel); |
60 |
|
g_free(Lisolevel); |
61 |
|
} else { /* data dvd */ |
62 |
|
Lextra = g_strdup("-R -J"); |
63 |
|
} |
64 |
|
|
65 |
|
Lreturn = g_strdup_printf("-V \"%s\" -A \"%s\" -publisher \"%s\" -p \"%s\" -biblio \"%s\" -copyright \"%s\" " |
66 |
|
"-abstract \"%s\" %s", |
67 |
|
_NN(Ldatavoli), _NN(Ldataappi), _NN(Ldatapubl), _NN(Ldataprep), _NN(Ldatabibl), _NN(Ldatacopy), |
68 |
|
_NN(Ldataabst), Lextra); |
69 |
|
g_free(Lextra); |
70 |
|
|
|
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); |
|
71 |
return Lreturn; |
return Lreturn; |
72 |
} |
} |
73 |
|
|
169 |
} |
} |
170 |
|
|
171 |
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, /* env argument */ |
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, /* env argument */ |
172 |
(GSpawnFlags ) (0), |
(GSpawnFlags ) (G_SPAWN_DO_NOT_REAP_CHILD), |
173 |
NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror); |
NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror); |
174 |
g_strfreev(Lcmd); |
g_strfreev(Lcmd); |
175 |
|
|
193 |
while (*Lcont > 0 && *Labort == FALSE) { |
while (*Lcont > 0 && *Labort == FALSE) { |
194 |
gtk_main_iteration(); |
gtk_main_iteration(); |
195 |
} |
} |
196 |
|
exit_prog(*Lpid, Aerror, NULL); |
197 |
|
|
198 |
_DEB("fin !!"); |
_DEB("fin !!"); |
199 |
|
|
200 |
g_source_remove(Lcomerrevent); |
g_source_remove(Lcomerrevent); |
201 |
g_source_remove(Lcomevent); |
g_source_remove(Lcomevent); |
202 |
|
|
203 |
/* fermeture readcd */ |
/* fermeture mkisofs */ |
204 |
g_io_channel_shutdown(Lcomerr, FALSE, NULL); |
g_io_channel_shutdown(Lcomerr, FALSE, NULL); |
205 |
g_io_channel_unref(Lcomerr); |
g_io_channel_unref(Lcomerr); |
206 |
g_io_channel_shutdown(Lcom, FALSE, NULL); |
g_io_channel_shutdown(Lcom, FALSE, NULL); |