Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv11972/src

Modified Files:
        charset.c file.c prefs.c prefs.h prefs_window.c 
Log Message:

Moved charset to new prefs.


Index: charset.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/charset.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- charset.c   1 May 2006 06:07:20 -0000       1.24
+++ charset.c   20 Jun 2006 23:25:31 -0000      1.25
@@ -154,7 +154,7 @@
     static GList *charsets = NULL; /* list with choices -- takes a while to
                                     * initialize, so we only do it once */
     
-    current_charset = prefs_get_charset ();
+    current_charset = prefs_get_string("charset");
     if ((current_charset == NULL) || (strlen (current_charset) == 0))
     {
        description = g_strdup (_("System Charset"));
@@ -163,6 +163,7 @@
     {
        description = charset_to_description (current_charset);
     }
+    g_free(current_charset);
     if (charsets == NULL)
     { /* set up list with charsets */
        FILE *fp;
@@ -302,12 +303,16 @@
  * feature. So far only Japanese Auto Detecion is implemented */
 static const gchar *charset_check_auto (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;
 
     if (str == NULL) return NULL; /* sanity */
-    charset = prefs_get_charset ();
+    charset = prefs_get_string("charset");
     if (charset && (strcmp (charset, GTKPOD_JAPAN_AUTOMATIC) == 0))
-       return (charset_check_k_code (str));
+    {
+       g_free(charset);
+       return (charset_check_k_code ((gchar *)str));
+    }
+    g_free(charset);
     return NULL;
 }
 
@@ -330,23 +335,31 @@
 /* Must free the returned string yourself */
 gchar *charset_to_utf8 (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;  /* From prefs */
+    const gchar *locale_charset; /* Used if prefs doesn't have a charset */
+    gchar *ret;
 
     if (str == NULL) return NULL;  /* sanity */
-    charset = charset_check_auto (str);
+    charset = (gchar *)charset_check_auto ((gchar *)str);
     if (charset)
     {
        auto_charset = charset;
     }
     else
     {
-       charset = prefs_get_charset ();
+       charset = prefs_get_string("charset");
        if (!charset || !strlen (charset))
        {    /* use standard locale charset */
-           g_get_charset (&charset);
+           g_free(charset);
+           g_get_charset (&locale_charset);
+           ret = charset_to_charset ((gchar *)locale_charset, "UTF-8", str);
+           g_free(charset);
+           return ret;
        }
     }
-    return charset_to_charset ((gchar *)charset, "UTF-8", str);
+    ret = charset_to_charset ((gchar *)charset, "UTF-8", str);
+    g_free(charset);
+    return ret;
 }
 
 
@@ -356,15 +369,23 @@
 /* Must free the returned string yourself */
 gchar *charset_from_utf8 (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;
+    const gchar *locale_charset;
+    gchar *ret;
 
     if (str == NULL) return NULL;  /* sanity */
-    charset = prefs_get_charset ();
+    charset = prefs_get_string("charset");
     if (!charset || !strlen (charset))
-    {    /* use standard locale charset */
-       g_get_charset (&charset);
+    {   
+       /* use standard locale charset */
+       g_free(charset);
+       g_get_charset (&locale_charset);
+       ret = charset_to_charset ("UTF-8", (gchar *)locale_charset, str);
+       return ret;
     }
-    return charset_to_charset ("UTF-8", (gchar *)charset, str);
+    ret = charset_to_charset ("UTF-8", (gchar *)charset, str);
+    g_free(charset);
+    return ret;
 }
 
 /* Convert "str" from utf8 to the charset specified in @s->charset. If
@@ -373,7 +394,9 @@
 /* Must free the returned string yourself */
 gchar *charset_track_charset_from_utf8 (Track *s, const gchar *str)
 {
-    const gchar *charset = NULL;
+    gchar *charset;
+    const gchar *locale_charset;
+    gchar *ret;
     ExtraTrackData *etd;
 
     g_return_val_if_fail (s, NULL);
@@ -384,13 +407,18 @@
     etd = s->userdata;
 
     if (etd->charset && strlen (etd->charset))
-          charset = etd->charset;
-    else   charset = prefs_get_charset ();
+          charset = g_strdup( etd->charset);
+    else   charset = prefs_get_string("charset");
     if (!charset || !strlen (charset))
     {    /* use standard locale charset */
-       g_get_charset (&charset);
+       g_free(charset);
+       g_get_charset (&locale_charset);
+       ret = charset_to_charset ("UTF-8", (gchar *)locale_charset, str);
+       return ret;     
     }
-    return charset_to_charset ("UTF-8", (gchar *)charset, str);
+    ret = charset_to_charset ("UTF-8", (gchar *)charset, str);
+    g_free(charset);
+    return ret;
 }
 
 /* Convert "str" from "from_charset" to "to_charset", trying to skip

Index: file.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/file.c,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -d -r1.176 -r1.177
--- file.c      13 Jun 2006 03:27:57 -0000      1.176
+++ file.c      20 Jun 2006 23:25:31 -0000      1.177
@@ -717,7 +717,8 @@
 /* update the track->charset info with the currently used charset */
 void update_charset_info (Track *track)
 {
-    const gchar *charset = prefs_get_charset ();
+    gchar *charset = prefs_get_string("charset");
+    const gchar *locale_charset;
     ExtraTrackData *etr;
 
     g_return_if_fail (track);
@@ -725,14 +726,24 @@
     g_return_if_fail (etr);
 
     C_FREE (etr->charset);
+    /* If we can get a charset from prefs, use that one.
+     * Otherwise, use the system locale charset. */
+    /* only set charset if it's not GTKPOD_JAPAN_AUTOMATIC */
     if (!charset || !strlen (charset))
-    {    /* use standard locale charset */
-       g_get_charset (&charset);
+    { 
+       g_free(charset);
+       g_get_charset (&locale_charset);
+
+       if (locale_charset && 
+           (strcmp (locale_charset, GTKPOD_JAPAN_AUTOMATIC) != 0))
+       {
+           etr->charset = g_strdup (locale_charset);
+       }
     }
-    /* only set charset if it's not GTKPOD_JAPAN_AUTOMATIC */
-    if (charset && (strcmp (charset, GTKPOD_JAPAN_AUTOMATIC) != 0))
+    else
     {
-       etr->charset = g_strdup (charset);
+       if (strcmp(charset, GTKPOD_JAPAN_AUTOMATIC) != 0)
+           etr->charset = charset;
     }
 }
 
@@ -1510,12 +1521,8 @@
 
     if (!prefs_get_int("update_charset") && charset_set)
     {   /* we should use the initial charset for the update */
-       if (prefs_get_charset ())
-       {   /* remember the charset originally set */
-           prefs_charset = g_strdup (prefs_get_charset ());
-       }
-       /* use the charset used when first importing the track */
-       prefs_set_charset (etr->charset);
+       prefs_charset = prefs_get_string("charset");
+       prefs_set_string("charset", etr->charset);
     }
 
     trackpath = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
@@ -1614,10 +1621,11 @@
 
     if (!prefs_get_int("update_charset") && charset_set)
     {   /* reset charset */
-       prefs_set_charset (prefs_charset);
+       prefs_set_string("charset", prefs_charset);
     }
 
     g_free (trackpath);
+    g_free(prefs_charset);
 
     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
 }
@@ -1899,12 +1907,9 @@
     else               track_charset_set = FALSE;
     if (!prefs_get_int("write_charset") && track_charset_set)
     {   /* we should use the initial charset for the update */
-       if (prefs_get_charset ())
-       {   /* remember the charset originally set */
-           prefs_charset = g_strdup (prefs_get_charset ());
-       }
        /* use the charset used when first importing the track */
-       prefs_set_charset (etr->charset);
+       prefs_charset = prefs_get_string("charset");
+       prefs_set_string("charset", etr->charset);
     }
     else
     {   /* we should update the track->charset information */
@@ -1947,7 +1952,7 @@
 
     if (!prefs_get_int("write_charset") && track_charset_set)
     {   /* reset charset */
-       prefs_set_charset (prefs_charset);
+       prefs_set_string("charset", prefs_charset);
     }
     g_free (prefs_charset);
     return TRUE;

Index: prefs.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/prefs.c,v
retrieving revision 1.253
retrieving revision 1.254
diff -u -d -r1.253 -r1.254
--- prefs.c     20 Jun 2006 04:44:57 -0000      1.253
+++ prefs.c     20 Jun 2006 23:25:31 -0000      1.254
@@ -260,6 +260,7 @@
     prefs_set_int("display_toolbar", TRUE);
     prefs_set_int("toolbar_style", GTK_TOOLBAR_BOTH);
     prefs_set_int("block_display", FALSE);
+    prefs_set_string("charset", "");
 
     /* Set sorting prefs */
     prefs_set_int("case_sensitive", FALSE);
@@ -1866,7 +1867,6 @@
        g_free (dir);
     }
 
-    mycfg->charset = NULL;    
     mycfg->md5tracks = TRUE;
     mycfg->offline = FALSE;
 
@@ -1975,10 +1975,6 @@
                  prefs_set_string (EXPORT_FILES_TPL, arg);
              }
          }
-         else if(g_ascii_strcasecmp (line, "charset") == 0)
-         {
-               if(strlen (arg))      prefs_set_charset(arg);
-         }
          else if(g_ascii_strcasecmp (line, "id3_all") == 0)
          {
              /* obsoleted since 0.71 */
@@ -2173,13 +2169,6 @@
     if(!fp)
        fp = stderr;
 
-
-    if (cfg->charset)
-    {
-       fprintf(fp, "charset=%s\n", cfg->charset);
-    } else {
-       fprintf(fp, "charset=\n");
-    }
     fprintf(fp, "md5=%d\n",prefs_get_md5tracks ());
     fprintf(fp, "offline=%d\n",prefs_get_offline());
 }
@@ -2223,7 +2212,6 @@
 {
     if(c)
     {
-      g_free (c->charset);
       g_free (c);
     }
 }
@@ -2277,25 +2265,6 @@
   return cfg->offline;
 }
 
-void prefs_set_charset (gchar *charset)
-{
-    prefs_cfg_set_charset (cfg, charset);
-}
-
-void prefs_cfg_set_charset (struct cfg *cfgd, gchar *charset)
-{
-    C_FREE (cfgd->charset);
-    if (charset && strlen (charset))
-       cfgd->charset = g_strdup (charset);
-/*     printf ("set_charset: '%s'\n", charset);         */
-}
-
-gchar *prefs_get_charset (void)
-{
-    return cfg->charset;
-/*     printf ("get_charset: '%s'\n", cfg->charset); */
-}
-
 struct cfg *clone_prefs(void)
 {
     struct cfg *result = NULL;
@@ -2303,7 +2272,6 @@
     if(cfg)
     {
        result = g_memdup (cfg, sizeof (struct cfg));
-       result->charset = g_strdup(cfg->charset);
     }
     return(result);
 }

Index: prefs.h
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/prefs.h,v
retrieving revision 1.180
retrieving revision 1.181
diff -u -d -r1.180 -r1.181
--- prefs.h     20 Jun 2006 04:44:57 -0000      1.180
+++ prefs.h     20 Jun 2006 23:25:31 -0000      1.181
@@ -59,7 +59,6 @@
 
 struct cfg
 {
-  gchar    *charset;        /* CHARSET to use with file operations */
   gboolean md5tracks;      /* don't allow track duplication on your ipod */
   
   gboolean offline;       /* are we working offline, i.e. without iPod? */
@@ -203,12 +202,9 @@
 
 void prefs_set_offline(gboolean active);
 void prefs_set_md5tracks(gboolean active);
-void prefs_set_charset (gchar *charset);
-void prefs_cfg_set_charset (struct cfg *cfg, gchar *charset);
 void prefs_set_statusbar_timeout (guint32 val);
 
 gboolean prefs_get_offline(void);
-gchar * prefs_get_charset (void);
 gboolean prefs_get_md5tracks(void);
 guint32 prefs_get_statusbar_timeout (void);
 

Index: prefs_window.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/prefs_window.c,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -d -r1.174 -r1.175
--- prefs_window.c      20 Jun 2006 04:44:58 -0000      1.174
+++ prefs_window.c      20 Jun 2006 23:25:31 -0000      1.175
@@ -694,7 +694,6 @@
        /* Need this in case user reordered column order (we don't
         * catch the reorder signal) */
        tm_store_col_order ();
-       prefs_set_charset(tmpcfg->charset);
 
        /* this call well automatically destroy/setup the md5 hash table */
        prefs_set_md5tracks(tmpcfg->md5tracks);
@@ -1074,7 +1073,7 @@
 
     descr = gtk_editable_get_chars (editable, 0, -1);
     charset = charset_from_description (descr);
-    prefs_cfg_set_charset (tmpcfg, charset);
+    temp_prefs_set_string(temp_prefs, "charset", charset);
     g_free (descr);
     g_free (charset);
 }



_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to