Mercurial > audlegacy
diff src/audacious/input.c @ 4089:9e24c8746d99
- introduce new API functions uri_to_display_basename() and uri_to_display_dirname(). each function derives utf8 encoded basename or dirname from given uri respectively.
- input plugins can use these functions as aud_uri_to_display_basename() / aud_uri_to_display_dirname() on associating FIELD_FILE_NAME / FIELD_FILE_PATH.
| author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
|---|---|
| date | Mon, 17 Dec 2007 21:56:17 +0900 |
| parents | 76da6fe8cb39 |
| children | cc8e81a84fa6 |
line wrap: on
line diff
--- a/src/audacious/input.c Sun Dec 16 18:54:45 2007 +0100 +++ b/src/audacious/input.c Mon Dec 17 21:56:17 2007 +0900 @@ -570,14 +570,16 @@ ProbeResult *pr; if (filename == NULL) - return NULL; + return NULL; filename_proxy = g_strdup(filename); pr = input_check_file(filename_proxy, FALSE); - if (!pr) + if (!pr) { + g_free(filename_proxy); return NULL; + } ip = pr->ip; @@ -587,23 +589,24 @@ input = ip->get_song_tuple(filename_proxy); else { - gchar *tmp; + gchar *scratch; - input = tuple_new(); + scratch = uri_to_display_basename(filename); + tuple_associate_string(input, FIELD_FILE_NAME, NULL, scratch); + g_free(scratch); - tmp = g_strdup(filename); - if ((ext = strrchr(tmp, '.'))) - *ext = '\0'; + scratch = uri_to_display_dirname(filename); + tuple_associate_string(input, FIELD_FILE_PATH, NULL, scratch); + g_free(scratch); - tuple_associate_string(input, FIELD_FILE_NAME, NULL, g_path_get_basename(tmp)); + ext = strrchr(filename, '.'); + if (ext != NULL) { + ++ext; + tuple_associate_string(input, FIELD_FILE_EXT, NULL, ext); + } - if (ext) - tuple_associate_string(input, FIELD_FILE_EXT, NULL, ext + 1); - - tuple_associate_string(input, FIELD_FILE_PATH, NULL, g_path_get_dirname(tmp)); tuple_associate_int(input, FIELD_LENGTH, NULL, -1); - g_free(tmp); } g_free(filename_proxy);
