[easytag] Refactor track number to string formatting
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [easytag] Refactor track number to string formatting
- Date: Tue, 9 Jul 2013 22:43:45 +0000 (UTC)
commit 10705705a02cd1b7ded3a4ce6c370e8940766dac
Author: Mathias Reineke <saihtam gmx net>
Date: Mon Jul 8 10:13:50 2013 +0200
Refactor track number to string formatting
Add et_track_number_to_string() to consistently handle track number
formatting.
src/ape_tag.c | 24 ++++++++----------------
src/cddb.c | 28 ++++++++++++++++------------
src/easytag.c | 13 +++++--------
src/et_core.c | 26 +++++++-------------------
src/flac_tag.c | 31 ++++++++-----------------------
src/id3v24_tag.c | 20 +++++---------------
src/misc.c | 19 ++++++++++---------
src/misc.h | 1 +
src/mp4_tag.c | 2 +-
src/ogg_tag.c | 34 ++++++++++------------------------
src/wavpack_tag.c | 11 +++++++----
11 files changed, 78 insertions(+), 131 deletions(-)
---
diff --git a/src/ape_tag.c b/src/ape_tag.c
index d4faa65..602fa64 100644
--- a/src/ape_tag.c
+++ b/src/ape_tag.c
@@ -110,23 +110,15 @@ gboolean Ape_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
string = Try_To_Validate_Utf8_String(string);
string1 = g_utf8_strchr(string, -1, '/'); // strchr don't like NULL string
- if (NUMBER_TRACK_FORMATED)
- {
- if (string1)
- {
- FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,
atoi(string1 + 1));
- *string1 = '\0';
- }
- FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON, atoi(string));
- } else
+
+ if (string1)
{
- if (string1)
- {
- FileTag->track_total = g_strdup(string1 + 1);
- *string1 = '\0';
- }
- FileTag->track = g_strdup(string);
+ FileTag->track_total = et_track_number_to_string (atoi (string1
+ + 1));
+ *string1 = '\0';
}
+ FileTag->track = et_track_number_to_string (atoi (string));
+
g_free(string);
} else
{
@@ -260,7 +252,7 @@ gboolean Ape_Tag_Write_File_Tag (ET_File *ETFile)
string = g_strconcat(FileTag->track,NULL);
apefrm_add(ape_mem, 0, APE_TAG_FIELD_TRACK, string);
g_free(string);
- }else
+ } else
apefrm_remove(ape_mem,APE_TAG_FIELD_TRACK);
/*********
diff --git a/src/cddb.c b/src/cddb.c
index 5c0b813..dea29cf 100644
--- a/src/cddb.c
+++ b/src/cddb.c
@@ -3873,15 +3873,17 @@ Cddb_Set_Track_Infos_To_File_List (void)
if (cddbsettoallfields || cddbsettotrack)
{
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,cddbtrackalbum->track_number);
- else snprintf(buffer,sizeof(buffer),"%d",
cddbtrackalbum->track_number);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (cddbtrackalbum->track_number));
+
ET_Set_Field_File_Tag_Item(&FileTag->track,buffer);
}
if (cddbsettoallfields || cddbsettotracktotal)
{
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,list_length);
- else snprintf(buffer,sizeof(buffer),"%d", list_length);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (list_length));
+
ET_Set_Field_File_Tag_Item(&FileTag->track_total,buffer);
}
@@ -3906,8 +3908,8 @@ Cddb_Set_Track_Infos_To_File_List (void)
FileName = ET_File_Name_Item_New();
// Build the filename with the path
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,cddbtrackalbum->track_number);
- else snprintf(buffer,sizeof(buffer),"%d",
cddbtrackalbum->track_number);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (cddbtrackalbum->track_number));
filename_generated_utf8 = g_strconcat(buffer," - ",cddbtrackalbum->track_name,NULL);
ET_File_Name_Convert_Character(filename_generated_utf8); // Replace invalid characters
@@ -3959,15 +3961,17 @@ Cddb_Set_Track_Infos_To_File_List (void)
if (cddbsettoallfields || cddbsettotrack)
{
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,cddbtrackalbum->track_number);
- else snprintf(buffer,sizeof(buffer),"%d",
cddbtrackalbum->track_number);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (cddbtrackalbum->track_number));
+
ET_Set_Field_File_Tag_Item(&FileTag->track,buffer);
}
if (cddbsettoallfields || cddbsettotracktotal)
{
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,list_length);
- else snprintf(buffer,sizeof(buffer),"%d", list_length);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (list_length));
+
ET_Set_Field_File_Tag_Item(&FileTag->track_total,buffer);
}
@@ -3992,8 +3996,8 @@ Cddb_Set_Track_Infos_To_File_List (void)
FileName = ET_File_Name_Item_New();
// Build the filename with the path
- if (NUMBER_TRACK_FORMATED)
snprintf(buffer,sizeof(buffer),"%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,cddbtrackalbum->track_number);
- else snprintf(buffer,sizeof(buffer),"%d",
cddbtrackalbum->track_number);
+ snprintf (buffer, sizeof (buffer), "%s",
+ et_track_number_to_string (cddbtrackalbum->track_number));
filename_generated_utf8 = g_strconcat(buffer," - ",cddbtrackalbum->track_name,NULL);
ET_File_Name_Convert_Character(filename_generated_utf8); // Replace invalid characters
diff --git a/src/easytag.c b/src/easytag.c
index 51fa146..34ff580 100644
--- a/src/easytag.c
+++ b/src/easytag.c
@@ -1492,10 +1492,8 @@ Mini_Button_Clicked (GObject *object)
path1 = g_path_get_dirname(FileNameCur->value);
if ( path && path1 && strcmp(path,path1)!=0 )
i = 0;
- if (NUMBER_TRACK_FORMATED)
- string_to_set = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,++i);
- else
- string_to_set = g_strdup_printf("%d",++i);
+
+ string_to_set = et_track_number_to_string (++i);
// The file is in the selection?
if ( (ET_File *)etfilelistfull->data == etfile )
@@ -1530,10 +1528,9 @@ Mini_Button_Clicked (GObject *object)
etfile = (ET_File *)l->data;
filename_utf8 = ((File_Name *)etfile->FileNameNew->data)->value_utf8;
path_utf8 = g_path_get_dirname(filename_utf8);
- if (NUMBER_TRACK_FORMATED)
- string_to_set =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,ET_Get_Number_Of_Files_In_Directory(path_utf8));
- else
- string_to_set = g_strdup_printf("%d",ET_Get_Number_Of_Files_In_Directory(path_utf8));
+
+ string_to_set = et_track_number_to_string (ET_Get_Number_Of_Files_In_Directory (path_utf8));
+
g_free(path_utf8);
if (!string_to_set1)
string_to_set1 = g_strdup(string_to_set); // Just for the message below...
diff --git a/src/et_core.c b/src/et_core.c
index 9b9f4b5..c532298 100644
--- a/src/et_core.c
+++ b/src/et_core.c
@@ -3461,11 +3461,8 @@ ET_Save_File_Tag_From_UI (File_Tag *FileTag)
if ( g_utf8_strlen(buffer, -1) > 0 )
{
- if (NUMBER_TRACK_FORMATED) {
- FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(buffer));
- g_free(buffer);
- } else
- FileTag->track = buffer;
+ FileTag->track = et_track_number_to_string (atoi (buffer));
+ g_free (buffer);
} else
{
FileTag->track = NULL;
@@ -3478,12 +3475,8 @@ ET_Save_File_Tag_From_UI (File_Tag *FileTag)
if ( g_utf8_strlen(buffer, -1) > 0 )
{
- if (NUMBER_TRACK_FORMATED)
- {
- FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(buffer));
- g_free(buffer);
- } else
- FileTag->track_total = buffer;
+ FileTag->track_total = et_track_number_to_string (atoi (buffer));
+ g_free (buffer);
} else
{
FileTag->track_total = NULL;
@@ -3692,10 +3685,8 @@ ET_Save_File_Tag_Internal (ET_File *ETFile, File_Tag *FileTag)
{
gchar *tmp_str;
- if (NUMBER_TRACK_FORMATED)
- FileTag->track =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(FileTagCur->track));
- else
- FileTag->track = g_strdup(FileTagCur->track);
+ FileTag->track = et_track_number_to_string (atoi (FileTagCur->track));
+
// This field must contain only digits
tmp_str = FileTag->track;
while (isdigit((guchar)*tmp_str)) tmp_str++;
@@ -3710,10 +3701,7 @@ ET_Save_File_Tag_Internal (ET_File *ETFile, File_Tag *FileTag)
/* Track Total */
if ( FileTagCur->track_total && g_utf8_strlen(FileTagCur->track_total, -1)>0 )
{
- if (NUMBER_TRACK_FORMATED)
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(FileTagCur->track_total));
- else
- FileTag->track_total = g_strdup(FileTagCur->track_total);
+ FileTag->track_total = et_track_number_to_string (atoi (FileTagCur->track_total));
Strip_String(FileTag->track_total);
} else
{
diff --git a/src/flac_tag.c b/src/flac_tag.c
index 41b13c1..ff9b150 100644
--- a/src/flac_tag.c
+++ b/src/flac_tag.c
@@ -338,13 +338,8 @@ gboolean Flac_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
field_value_tmp = g_strndup(field_value, field_len);
field_value = Try_To_Validate_Utf8_String(field_value_tmp);
g_free(field_value_tmp);
- if (NUMBER_TRACK_FORMATED)
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(field_value));
- }else
- {
- FileTag->track_total = g_strdup(field_value);
- }
+
+ FileTag->track_total = et_track_number_to_string (atoi (field_value));
g_free(field_value);
}
}
@@ -367,24 +362,14 @@ gboolean Flac_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
field_value = Try_To_Validate_Utf8_String(field_value_tmp);
g_free(field_value_tmp);
string = g_utf8_strchr(field_value, -1, '/');
- if (NUMBER_TRACK_FORMATED)
- {
- // If track_total not filled before, try now...
- if (string && !FileTag->track_total)
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string+1));
- *string = '\0';
- }
- FileTag->track =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(field_value));
- }else
+
+ if (string && !FileTag->track_total)
{
- if (string && !FileTag->track_total)
- {
- FileTag->track_total = g_strdup(string+1);
- *string = '\0';
- }
- FileTag->track = g_strdup(field_value);
+ FileTag->track_total = et_track_number_to_string (atoi (string + 1));
+ *string = '\0';
}
+ FileTag->track = et_track_number_to_string (atoi (field_value));
+
g_free(field_value);
}
}
diff --git a/src/id3v24_tag.c b/src/id3v24_tag.c
index 4b7d6bf..3b8f849 100644
--- a/src/id3v24_tag.c
+++ b/src/id3v24_tag.c
@@ -258,23 +258,13 @@ gboolean Id3tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
{
string2 = g_utf8_strchr(string1,-1,'/');
- if (NUMBER_TRACK_FORMATED)
+ if (string2)
{
- if (string2)
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string2+1)); // Just to have numbers like this
: '01', '05', '12', ...
- *string2 = '\0'; // To cut string1
- }
- FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string1)); //
Just to have numbers like this : '01', '05', '12', ...
- }else
- {
- if (string2)
- {
- FileTag->track_total = g_strdup(string2+1);
- *string2 = '\0'; // To cut string1
- }
- FileTag->track = g_strdup(string1);
+ FileTag->track_total = et_track_number_to_string (atoi (string2 + 1));
+ *string2 = '\0'; // To cut string1
}
+ FileTag->track = et_track_number_to_string (atoi (string1));
+
g_free(string1);
}
diff --git a/src/misc.c b/src/misc.c
index af7d153..284ea4e 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -506,15 +506,7 @@ void Load_Track_List_To_UI (void)
/* Create list of tracks. */
for (i = 1; i <= len; i++)
{
-
- if (NUMBER_TRACK_FORMATED)
- {
- text = g_strdup_printf ("%.*" G_GSIZE_FORMAT,
- NUMBER_TRACK_FORMATED_SPIN_BUTTON, i);
- } else
- {
- text = g_strdup_printf ("%.2" G_GSIZE_FORMAT, i);
- }
+ text = et_track_number_to_string (i);
gtk_list_store_insert_with_values (GTK_LIST_STORE (TrackEntryComboModel),
NULL, G_MAXINT, MISC_COMBO_TEXT,
@@ -3718,3 +3710,12 @@ et_playlist_on_response (GtkDialog *dialog, gint response_id,
g_assert_not_reached ();
}
}
+
+gchar *
+et_track_number_to_string (const guint track_number)
+{
+ return NUMBER_TRACK_FORMATED ? g_strdup_printf ("%.*d",
+ NUMBER_TRACK_FORMATED_SPIN_BUTTON,
+ track_number)
+ : g_strdup_printf ("%d", track_number);
+}
diff --git a/src/misc.h b/src/misc.h
index 10ae339..afc6016 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -109,5 +109,6 @@ void Search_File_Window_Apply_Changes (void);
void Open_Load_Filename_Window (void);
void Load_Filename_Window_Apply_Changes (void);
+gchar * et_track_number_to_string (const guint track_number);
#endif /* __MISC_H__ */
diff --git a/src/mp4_tag.c b/src/mp4_tag.c
index 48f55f3..843a6ea 100644
--- a/src/mp4_tag.c
+++ b/src/mp4_tag.c
@@ -120,7 +120,7 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
track = taglib_tag_track(tag);
if (track != 0)
- FileTag->track = NUMBER_TRACK_FORMATED ?
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track) : g_strdup_printf("%d",(gint)track);
+ FileTag->track = et_track_number_to_string (track);
/* TODO: No total track support in the TagLib C API! */
/*********
diff --git a/src/ogg_tag.c b/src/ogg_tag.c
index 39511e7..a206683 100644
--- a/src/ogg_tag.c
+++ b/src/ogg_tag.c
@@ -332,33 +332,19 @@ ogg_tag_read_file_tag (gchar *filename, File_Tag *FileTag, GError **error)
*************************/
if ( (string = vorbis_comment_query(vc,"TRACKNUMBER",0)) != NULL && g_utf8_strlen(string, -1) > 0 )
{
- if (NUMBER_TRACK_FORMATED)
+ /* Check if TRACKTOTAL used, else takes it in TRACKNUMBER. */
+ if ((string1 = vorbis_comment_query (vc, "TRACKTOTAL", 0)) != NULL
+ && g_utf8_strlen (string1, -1) > 0)
{
- // Ckeck if TRACKTOTAL used, else takes it in TRACKNUMBER
- if ( (string1 = vorbis_comment_query(vc,"TRACKTOTAL",0)) != NULL && g_utf8_strlen(string1, -1) >
0 )
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string1));
- }else
- if ( (string1 = g_utf8_strchr(string, -1, '/')) )
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string1+1));
- *string1 = '\0';
- }
- FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string));
- }else
+ FileTag->track_total = et_track_number_to_string (atoi (string1));
+ }
+ else if ((string1 = g_utf8_strchr (string, -1, '/')))
{
- // Ckeck if TRACKTOTAL used, else takes it in TRACKNUMBER
- if ( (string1 = vorbis_comment_query(vc,"TRACKTOTAL",0)) != NULL && g_utf8_strlen(string1, -1) >
0 )
- {
- FileTag->track_total =
g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,atoi(string1));
- }else
- if ( (string1 = g_utf8_strchr(string, -1, '/')) )
- {
- FileTag->track_total = g_strdup(string1+1);
- *string1 = '\0';
- }
- FileTag->track = g_strdup(string);
+ FileTag->track_total = et_track_number_to_string (atoi (string1
+ + 1));
+ *string1 = '\0';
}
+ FileTag->track = g_strdup (string);
}
/*********
diff --git a/src/wavpack_tag.c b/src/wavpack_tag.c
index 230e6cd..977e14f 100644
--- a/src/wavpack_tag.c
+++ b/src/wavpack_tag.c
@@ -37,6 +37,7 @@
#include "picture.h"
//#include "setting.h"
#include "charset.h"
+#include "misc.h"
#include "wavpack_tag.h"
@@ -169,11 +170,13 @@ gboolean Wavpack_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
field2++;
}
- if ( field2 && FileTag->track_total == NULL ) {
- FileTag->track_total = Try_To_Validate_Utf8_String(field2);
+ if (field2 && FileTag->track_total == NULL)
+ {
+ FileTag->track_total = et_track_number_to_string (atoi (Try_To_Validate_Utf8_String (field2)));
}
- if ( length > 0 && FileTag->track == NULL ) {
- FileTag->track = Try_To_Validate_Utf8_String(field);
+ if (length > 0 && FileTag->track == NULL)
+ {
+ FileTag->track = et_track_number_to_string (atoi (Try_To_Validate_Utf8_String (field)));
}
g_free (field);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]