Mercurial > audlegacy
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 |