comparison src/audacious/playlist.c @ 3638:8d2f06fc841c

Slight cleanup of few functions and fix a potential segfault.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 25 Sep 2007 23:36:01 +0300
parents 65b750891387
children d5309028af21
comparison
equal deleted inserted replaced
3637:d0775f9708e8 3638:8d2f06fc841c
2045 2045
2046 return (tracknumber_a && tracknumber_b ? 2046 return (tracknumber_a && tracknumber_b ?
2047 tracknumber_a - tracknumber_b : 0); 2047 tracknumber_a - tracknumber_b : 0);
2048 } 2048 }
2049 2049
2050 static void
2051 playlist_get_entry_title(PlaylistEntry * e, const gchar ** title)
2052 {
2053 if (e->title)
2054 *title = e->title;
2055 else {
2056 if (strrchr(e->filename, '/'))
2057 *title = strrchr(e->filename, '/') + 1;
2058 else
2059 *title = e->filename;
2060 }
2061 }
2062
2050 static gint 2063 static gint
2051 playlist_compare_playlist(PlaylistEntry * a, 2064 playlist_compare_playlist(PlaylistEntry * a,
2052 PlaylistEntry * b) 2065 PlaylistEntry * b)
2053 { 2066 {
2054 const gchar *a_title = NULL, *b_title = NULL; 2067 const gchar *a_title = NULL, *b_title = NULL;
2055 2068
2056 g_return_val_if_fail(a != NULL, 0); 2069 g_return_val_if_fail(a != NULL, 0);
2057 g_return_val_if_fail(b != NULL, 0); 2070 g_return_val_if_fail(b != NULL, 0);
2058 2071
2059 if (a->title != NULL) 2072 playlist_get_entry_title(a, &a_title);
2060 a_title = a->title; 2073 playlist_get_entry_title(b, &b_title);
2061 else {
2062 if (strrchr(a->filename, '/'))
2063 a_title = strrchr(a->filename, '/') + 1;
2064 else
2065 a_title = a->filename;
2066 }
2067
2068 if (b->title != NULL)
2069 b_title = b->title;
2070 else {
2071 if (strrchr(a->filename, '/'))
2072 b_title = strrchr(b->filename, '/') + 1;
2073 else
2074 b_title = b->filename;
2075 }
2076 2074
2077 return strcasecmp(a_title, b_title); 2075 return strcasecmp(a_title, b_title);
2078 } 2076 }
2079 2077
2080 static gint 2078 static gint
2084 const gchar *a_title = NULL, *b_title = NULL; 2082 const gchar *a_title = NULL, *b_title = NULL;
2085 2083
2086 g_return_val_if_fail(a != NULL, 0); 2084 g_return_val_if_fail(a != NULL, 0);
2087 g_return_val_if_fail(b != NULL, 0); 2085 g_return_val_if_fail(b != NULL, 0);
2088 2086
2089 if(!a->tuple) 2087 if (a->tuple == NULL)
2090 playlist_entry_get_info(a); 2088 playlist_entry_get_info(a);
2091 if(!b->tuple) 2089 if (b->tuple == NULL)
2092 playlist_entry_get_info(b); 2090 playlist_entry_get_info(b);
2093 2091
2094 if (a->tuple != NULL) 2092 if (a->tuple != NULL)
2095 a_title = tuple_get_string(a->tuple, FIELD_TITLE, NULL); 2093 a_title = tuple_get_string(a->tuple, FIELD_TITLE, NULL);
2096 if (b->tuple != NULL) 2094 if (b->tuple != NULL)
2097 b_title = tuple_get_string(b->tuple, FIELD_TITLE, NULL); 2095 b_title = tuple_get_string(b->tuple, FIELD_TITLE, NULL);
2098 2096
2099 if (a_title != NULL && b_title != NULL) 2097 if (a_title != NULL && b_title != NULL)
2100 return strcasecmp(a_title, b_title); 2098 return strcasecmp(a_title, b_title);
2101 2099
2102 if (a->title != NULL) 2100 playlist_get_entry_title(a, &a_title);
2103 a_title = a->title; 2101 playlist_get_entry_title(b, &b_title);
2104 else {
2105 if (strrchr(a->filename, '/'))
2106 a_title = strrchr(a->filename, '/') + 1;
2107 else
2108 a_title = a->filename;
2109 }
2110
2111 if (b->title != NULL)
2112 b_title = b->title;
2113 else {
2114 if (strrchr(a->filename, '/'))
2115 b_title = strrchr(b->filename, '/') + 1;
2116 else
2117 b_title = b->filename;
2118 }
2119 2102
2120 return strcasecmp(a_title, b_title); 2103 return strcasecmp(a_title, b_title);
2121 } 2104 }
2122 2105
2123 static gint 2106 static gint
2816 const gchar *a_title, *b_title; 2799 const gchar *a_title, *b_title;
2817 2800
2818 g_return_val_if_fail(a != NULL, 0); 2801 g_return_val_if_fail(a != NULL, 0);
2819 g_return_val_if_fail(b != NULL, 0); 2802 g_return_val_if_fail(b != NULL, 0);
2820 2803
2821 if (a->title) 2804 playlist_get_entry_title(a, &a_title);
2822 a_title = a->title; 2805 playlist_get_entry_title(b, &b_title);
2823 else {
2824 if (strrchr(a->filename, '/'))
2825 a_title = strrchr(a->filename, '/') + 1;
2826 else
2827 a_title = a->filename;
2828 }
2829
2830 if (b->title)
2831 b_title = b->title;
2832 else {
2833 if (strrchr(a->filename, '/'))
2834 b_title = strrchr(b->filename, '/') + 1;
2835 else
2836 b_title = b->filename;
2837 }
2838 2806
2839 return strcmp(a_title, b_title); 2807 return strcmp(a_title, b_title);
2840 } 2808 }
2841 2809
2842 static gint 2810 static gint