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