Mercurial > audlegacy-plugins
comparison src/madplug/plugin.c @ 1277:e7cd962732cb
file_name and file_path in a tuple should be unescaped.
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Mon, 16 Jul 2007 16:16:41 +0900 |
parents | 08f28756209c |
children | 1d3b02d1842b |
comparison
equal
deleted
inserted
replaced
1276:504c0dc36c0a | 1277:e7cd962732cb |
---|---|
599 // tuple stuff | 599 // tuple stuff |
600 static TitleInput *audmad_get_song_tuple(char *filename) | 600 static TitleInput *audmad_get_song_tuple(char *filename) |
601 { | 601 { |
602 TitleInput *tuple = NULL; | 602 TitleInput *tuple = NULL; |
603 gchar *string = NULL; | 603 gchar *string = NULL; |
604 gchar *realfn = NULL; | |
604 | 605 |
605 struct id3_file *id3file = NULL; | 606 struct id3_file *id3file = NULL; |
606 struct id3_tag *tag = NULL; | 607 struct id3_tag *tag = NULL; |
607 | 608 |
608 #ifdef DEBUG | 609 #ifdef DEBUG |
633 } | 634 } |
634 #ifdef DEBUG | 635 #ifdef DEBUG |
635 g_message("audmad_get_song_tuple: track_name = %s", tuple->track_name); | 636 g_message("audmad_get_song_tuple: track_name = %s", tuple->track_name); |
636 g_message("audmad_get_song_tuple: stream_name = %s", tuple->album_name); | 637 g_message("audmad_get_song_tuple: stream_name = %s", tuple->album_name); |
637 #endif | 638 #endif |
638 tuple->file_name = g_path_get_basename(filename); | 639 realfn = g_filename_from_uri(filename, NULL, NULL); |
639 tuple->file_path = g_path_get_dirname(filename); | 640 tuple->file_name = g_path_get_basename(realfn ? realfn : filename); |
640 tuple->file_ext = extname(filename); | 641 tuple->file_path = g_path_get_dirname(realfn ? realfn : filename); |
642 tuple->file_ext = extname(realfn ? realfn : filename); | |
643 g_free(realfn); realfn = NULL; | |
644 | |
641 tuple->length = -1; | 645 tuple->length = -1; |
642 tuple->mtime = 0; // this indicates streaming | 646 tuple->mtime = 0; // this indicates streaming |
643 #ifdef DEBUG | 647 #ifdef DEBUG |
644 g_message("get_song_tuple: remote: tuple"); | 648 g_message("get_song_tuple: remote: tuple"); |
645 #endif | 649 #endif |
674 if (string) { | 678 if (string) { |
675 tuple->year = atoi(string); | 679 tuple->year = atoi(string); |
676 g_free(string); | 680 g_free(string); |
677 string = NULL; | 681 string = NULL; |
678 } | 682 } |
679 | 683 realfn = g_filename_from_uri(filename, NULL, NULL); |
680 tuple->file_name = g_path_get_basename(filename); | 684 tuple->file_name = g_path_get_basename(realfn ? realfn : filename); |
681 tuple->file_path = g_path_get_dirname(filename); | 685 tuple->file_path = g_path_get_dirname(realfn ? realfn : filename); |
682 tuple->file_ext = extname(filename); | 686 tuple->file_ext = extname(realfn ? realfn : filename); |
687 g_free(realfn); realfn = NULL; | |
683 | 688 |
684 // length | 689 // length |
685 tuple->length = -1; | 690 tuple->length = -1; |
686 string = input_id3_get_string(tag, "TLEN"); | 691 string = input_id3_get_string(tag, "TLEN"); |
687 if (string) { | 692 if (string) { |
718 | 723 |
719 } | 724 } |
720 id3_file_close(id3file); | 725 id3_file_close(id3file); |
721 } | 726 } |
722 else { // no id3tag | 727 else { // no id3tag |
723 tuple->file_name = g_path_get_basename(filename); | 728 realfn = g_filename_from_uri(filename, NULL, NULL); |
724 tuple->file_path = g_path_get_dirname(filename); | 729 tuple->file_name = g_path_get_basename(realfn ? realfn : filename); |
725 tuple->file_ext = extname(filename); | 730 tuple->file_path = g_path_get_dirname(realfn ? realfn : filename); |
731 tuple->file_ext = extname(realfn ? realfn : filename); | |
732 g_free(realfn); realfn = NULL; | |
726 // length | 733 // length |
727 { | 734 { |
728 char *dummy = NULL; | 735 char *dummy = NULL; |
729 int length = 0; | 736 int length = 0; |
730 if(tuple->length == -1) { | 737 if(tuple->length == -1) { |