Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 156857 Details for
Bug 242226
Albums play in wrong order
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
better patch
gmpc-0.14-track-ordering-v2.patch (text/plain), 4.02 KB, created by
David Woodhouse
on 2007-06-13 10:03:30 UTC
(
hide
)
Description:
better patch
Filename:
MIME Type:
Creator:
David Woodhouse
Created:
2007-06-13 10:03:30 UTC
Size:
4.02 KB
patch
obsolete
>--- gmpc-0.14.0/src/playlist3-artist-browser.c~ 2007-06-13 09:40:34.000000000 +0100 >+++ gmpc-0.14.0/src/playlist3-artist-browser.c 2007-06-13 10:58:08.000000000 +0100 >@@ -32,6 +32,7 @@ > #include "playlist3-artist-browser.h" > #include "config1.h" > #include "TreeSearchWidget.h" >+#include <libmpd/libmpd-internal.h> > > static void pl3_artist_browser_add(GtkWidget *cat_tree); > static void pl3_artist_browser_fill_tree(GtkWidget *, GtkTreeIter *); >@@ -50,6 +51,7 @@ static int pl3_artist_browser_playlist_k > static void pl3_artist_browser_connection_changed(MpdObj *mi, int connect, gpointer data); > static int pl3_artist_browser_key_press_event(GtkWidget *mw, GdkEventKey *event, int type); > static void pl3_artist_browser_status_changed(MpdObj *mi,ChangedStatusType what, void *data); >+static MpdData *pl3_artist_browser_sort_tracks(MpdData *); > > static void pl3_artist_browser_reupdate(void); > >@@ -270,7 +272,50 @@ static void pl3_artist_browser_cover_art > > } > >+static MpdData *pl3_artist_browser_sort_tracks(MpdData *data) >+{ >+ MpdData_real *new_list = NULL; >+ >+ /* This should always be the case anyway, but just to make sure... */ >+ data = mpd_data_get_first(data); >+ >+ while (data) { >+ /* Insert new element 'data' into list 'new_list' */ >+ MpdData_real **pos; >+ MpdData_real *data_real = (MpdData_real *)data; >+ >+ data = mpd_data_get_next_real(data, FALSE); >+ >+ data_real->next = NULL; >+ >+ for (pos = &new_list; *pos; pos = &(*pos)->next) { >+ /* Sort on two keys. First album... */ >+ int cmp = strcmp((*pos)->song->album?:"", >+ data_real->song->album?:""); > >+ if (cmp > 0) >+ break; >+ /* ... then track number */ >+ if (!cmp && atoi((*pos)->song->track?:"") > >+ atoi(data_real->song->track?:"")) >+ break; >+ } >+ data_real->next = *pos; >+ *pos = data_real; >+ } >+ data = (MpdData *)new_list; >+ >+ if (new_list) { >+ new_list->head->first = new_list; >+ >+ new_list->prev = NULL; >+ while (new_list->next) { >+ new_list->next->prev = new_list; >+ new_list = new_list->next; >+ } >+ } >+ return data; >+} > > static long unsigned pl3_artist_browser_view_folder(GtkTreeIter *iter_cat) > { >@@ -392,6 +437,7 @@ static long unsigned pl3_artist_browser_ > > > data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > /* artist is selected */ > while(data != NULL) > { >@@ -456,6 +502,7 @@ static long unsigned pl3_artist_browser_ > if(pb) g_object_unref(pb); > /* artist and album is selected */ > data = mpd_database_find(connection,MPD_TABLE_ALBUM, string, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > while (data != NULL) > { > if(data->type == MPD_DATA_TYPE_SONG) >@@ -594,6 +641,7 @@ static void pl3_artist_browser_add_folde > /* artist selected */ > gchar *message = g_strdup_printf("Added songs from artist '%s'",artist); > MpdData * data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > while (data != NULL) > { > if(data->type == MPD_DATA_TYPE_SONG) >@@ -612,6 +660,7 @@ static void pl3_artist_browser_add_folde > /* fetch all songs by this album and check if the artist is right. from mpd and add them to the add-list */ > gchar *message = g_strdup_printf("Added songs from album '%s' ",title); > MpdData *data = mpd_database_find(connection, MPD_TABLE_ALBUM, title, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > while (data != NULL) > { > if(data->type == MPD_DATA_TYPE_SONG) >@@ -896,6 +945,7 @@ static void pl3_artist_browser_add_selec > else if (type&PL3_ENTRY_ARTIST) > { > MpdData * data = mpd_database_find(connection, MPD_TABLE_ARTIST, artist, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > while (data != NULL) > { > if(data->type == MPD_DATA_TYPE_SONG) >@@ -910,6 +960,7 @@ static void pl3_artist_browser_add_selec > { > MpdData *data = NULL; > data = mpd_database_find(connection, MPD_TABLE_ALBUM, album, TRUE); >+ data = pl3_artist_browser_sort_tracks(data); > while (data != NULL) > { > if(data->type == MPD_DATA_TYPE_SONG)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 242226
:
156490
|
156857
|
156860