diff -u -U 5 -r --new-file -x *~ -x *.[oa] xmms-1.2.9.orig/xmms/playlist.c xmms-1.2.9/xmms/playlist.c --- xmms-1.2.9.orig/xmms/playlist.c Wed Jan 28 22:15:56 2004 +++ xmms-1.2.9/xmms/playlist.c Thu Jan 29 11:53:04 2004 @@ -38,11 +38,11 @@ static gboolean playlist_get_info_entry(PlaylistEntry *entry); static int playlist_sort_str_by_path_cmpfunc(gconstpointer a, gconstpointer b); static guint playlist_load_ins(char * filename, long pos); static void playlist_load_ins_file(char *filename, char *playlist_name, long pos, char *title, int len); -static int __get_playlist_length(void); +int __get_playlist_length(void); static void playlist_generate_shuffle_list(void); static void __playlist_generate_shuffle_list(void); struct devino { dev_t dev; @@ -922,11 +922,11 @@ PL_UNLOCK(); return retval; } -static int __get_playlist_length(void) +int __get_playlist_length(void) { /* Caller should hold playlist_mutex */ if (playlist) return(g_list_length(playlist)); return 0; diff -u -U 5 -r --new-file -x *~ -x *.[oa] xmms-1.2.9.orig/xmms/playlist_list.c xmms-1.2.9/xmms/playlist_list.c --- xmms-1.2.9.orig/xmms/playlist_list.c Wed Jun 11 20:44:17 2003 +++ xmms-1.2.9/xmms/playlist_list.c Thu Jan 29 11:53:04 2004 @@ -394,10 +394,12 @@ GdkGC *gc; GdkPixmap *obj; int width, height; char *text, *title; int i, tw, max_first; + gchar *formatstring; + int formatstringint; gc = pl->pl_widget.gc; width = pl->pl_widget.width; height = pl->pl_widget.height; @@ -428,10 +430,18 @@ if (pl->pl_first < 0) pl->pl_first = 0; for (i = 0; i < pl->pl_first; i++) list = g_list_next(list); + formatstringint=(int)(log10(__get_playlist_length()))+1; + if(formatstringint>9) + formatstringint=9; + if(formatstringint<1) + formatstringint=1; + formatstring=g_strdup("%01d. %s"); + formatstring[2]=formatstringint+'0'; + for (i = pl->pl_first; list && i < pl->pl_first + pl->pl_num_visible; list = list->next, i++) { char qstr[20] = "", length[40] = ""; @@ -484,11 +494,11 @@ tail, strlen(tail)) - 5; } else tw = width; if (cfg.show_numbers_in_pl) - text = g_strdup_printf("%d. %s", i + 1, title); + text = g_strdup_printf(formatstring, i + 1, title); else text = g_strdup_printf("%s", title); if (cfg.use_fontsets) playlist_list_draw_string_wc(pl, playlist_list_font, @@ -497,10 +507,12 @@ playlist_list_draw_string(pl, playlist_list_font, i - pl->pl_first, tw, text); g_free(text); } PL_UNLOCK(); + + g_free(formatstring); } PlayList_List *create_playlist_list(GList ** wlist, GdkPixmap * parent, GdkGC * gc, gint x, gint y, gint w, gint h) { PlayList_List *pl;