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: Sat, 26 Feb 2005 11:15:50 -0500

Index: graveman/current/src/mkisofs.c
diff -u graveman/current/src/mkisofs.c:1.12 graveman/current/src/mkisofs.c:1.13
--- graveman/current/src/mkisofs.c:1.12 Sat Feb 26 00:36:55 2005
+++ graveman/current/src/mkisofs.c      Sat Feb 26 16:15:40 2005
@@ -32,7 +32,9 @@
 #define MKISOFS_OK "Total translation table size"
 #define MKISOFS_NOSPACE "No space left on device"
 #define MKISOFS_SUPPORT_ISOV2 "Set ISO9660 conformance level (1..3) or 4 for 
ISO9660 version 2"
+#define MKISOFS_CHARSET "Known charsets are:"
 
+GSList *Gcharsetlist = NULL;
 
 
 /* on verifie si le support iso9660 version 2 est disponnible ou non */
@@ -246,6 +248,68 @@
   return TRUE;  
 }
 
+/* recuperation des charsets integré dans mkisofs */
+gboolean get_builtin_charset(Tgrave *Ag, GError **Aerror)
+{
+  gchar *Lcommandline, *Lout = NULL, *Lerr = NULL;
+  gboolean Lstatus = TRUE;
+  gchar **Lcharsetl;
+  gint Lexit = 0, i;
+  Tdata *Ldata;
+  gboolean Lajout = FALSE;
+
+  Lcommandline = g_strdup_printf("%s -input-charset help", 
conf_get_string("mkisofs"));
+_DEB("command [%s]", Lcommandline);
+  Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, 
Aerror);
+  g_free(Lcommandline);
+
+  if (Lstatus == FALSE || !Lerr) {
+    g_free(Lout);
+    g_free(Lerr);
+    return FALSE;
+  }
+
+  Lcharsetl = g_strsplit(Lerr, "\n", 0);
+  g_slist_free(Gcharsetlist);
+  Gcharsetlist = NULL;
+
+  for (i=0; Lcharsetl[i] && *Lcharsetl[i]; i++) {
+    if (Lajout) {
+      Ldata = g_malloc(sizeof(Tdata));
+      Ldata->data = g_strdup(Lcharsetl[i]);
+      Ldata->label = g_strdup(Lcharsetl[i]);
+      Gcharsetlist = g_slist_append(Gcharsetlist, Ldata);
+    } else if (!strncmp(Lcharsetl[i], MKISOFS_CHARSET, 
strlen(MKISOFS_CHARSET))) {
+      Lajout = TRUE;
+    }
+  } 
+  
+  g_strfreev(Lcharsetl);
+
+  return TRUE;
+}
+
+void remplirelistecharset(GtkTreeView *Aliste)
+{
+  GtkListStore *Ldata = GTK_LIST_STORE(gtk_tree_view_get_model(Aliste));
+  GtkTreeIter Liter;
+  gint i;
+  gchar Llabeldevice[50];
+  GSList *Lcur;
+  Tdata *Lptr;
+
+  gtk_list_store_clear(Ldata);
+
+  for (Lcur = Gcharsetlist, i=0; Lcur; Lcur = g_slist_next(Lcur), i++) {
+    Lptr = (Tdata *)Lcur->data;
+
+    gtk_list_store_append(Ldata, &Liter);
+
+    gtk_list_store_set(Ldata, &Liter, 0, i, 1, GcharsetpetiteIcone, 2,
+          Lptr->data, 3, Lptr->label, -1);
+  }
+}
+
 /*
  * vim:et:ts=8:sts=2:sw=2
  */




reply via email to

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