Mercurial > audlegacy
comparison src/audacious/main.c @ 2605:1ceaf00f9c6d trunk
[svn] - fix handling of multiple files on the command line.
author | nenolod |
---|---|
date | Sat, 03 Mar 2007 22:34:27 -0800 |
parents | 40407b7363f3 |
children | 67082557b2c4 |
comparison
equal
deleted
inserted
replaced
2604:11ed1827fe10 | 2605:1ceaf00f9c6d |
---|---|
888 | 888 |
889 if (filenames != NULL) | 889 if (filenames != NULL) |
890 { | 890 { |
891 gint pos = 0; | 891 gint pos = 0; |
892 gint i = 0; | 892 gint i = 0; |
893 GList *fns = NULL; | |
893 | 894 |
894 for (i = 0; filenames[i] != NULL; i++) | 895 for (i = 0; filenames[i] != NULL; i++) |
895 { | 896 { |
896 gchar *filename; | 897 gchar *filename; |
897 gchar *current_dir = g_get_current_dir(); | 898 gchar *current_dir = g_get_current_dir(); |
899 if (filenames[i][0] == '/' || strstr(filenames[i], "://")) | 900 if (filenames[i][0] == '/' || strstr(filenames[i], "://")) |
900 filename = g_strdup(filenames[i]); | 901 filename = g_strdup(filenames[i]); |
901 else | 902 else |
902 filename = g_build_filename(current_dir, filenames[i], NULL); | 903 filename = g_build_filename(current_dir, filenames[i], NULL); |
903 | 904 |
904 if (options->load_skins) | 905 fns = g_list_prepend(fns, filename); |
905 { | 906 |
906 xmms_remote_set_skin(session, filename); | |
907 skin_install_skin(filename); | |
908 } | |
909 else | |
910 { | |
911 if (options->enqueue_to_temp) | |
912 xmms_remote_playlist_enqueue_to_temp(session, filename); | |
913 | |
914 if (options->enqueue && options->play) | |
915 pos = xmms_remote_get_playlist_length(session); | |
916 | |
917 if (!options->enqueue) | |
918 { | |
919 xmms_remote_playlist_clear(session); | |
920 xmms_remote_stop(session); | |
921 } | |
922 | |
923 xmms_remote_playlist_add_url_string(session, filename); | |
924 | |
925 if (options->enqueue && options->play && | |
926 xmms_remote_get_playlist_length(session) > pos) | |
927 xmms_remote_set_playlist_pos(session, pos); | |
928 | |
929 if (!options->enqueue) | |
930 xmms_remote_play(session); | |
931 } | |
932 | |
933 g_free(filename); | |
934 g_free(current_dir); | 907 g_free(current_dir); |
935 } | 908 } |
909 | |
910 fns = g_list_reverse(fns); | |
911 | |
912 if (options->load_skins) | |
913 { | |
914 xmms_remote_set_skin(session, filenames[0]); | |
915 skin_install_skin(filenames[0]); | |
916 } | |
917 else | |
918 { | |
919 if (options->enqueue_to_temp) | |
920 xmms_remote_playlist_enqueue_to_temp(session, filenames[0]); | |
921 | |
922 if (options->enqueue && options->play) | |
923 pos = xmms_remote_get_playlist_length(session); | |
924 | |
925 if (!options->enqueue) | |
926 { | |
927 xmms_remote_playlist_clear(session); | |
928 xmms_remote_stop(session); | |
929 } | |
930 | |
931 xmms_remote_playlist_add(session, fns); | |
932 | |
933 if (options->enqueue && options->play && | |
934 xmms_remote_get_playlist_length(session) > pos) | |
935 xmms_remote_set_playlist_pos(session, pos); | |
936 | |
937 if (!options->enqueue) | |
938 xmms_remote_play(session); | |
939 } | |
940 | |
941 g_list_foreach(fns, (GFunc) g_free, NULL); | |
942 g_list_free(fns); | |
936 | 943 |
937 g_strfreev(filenames); | 944 g_strfreev(filenames); |
938 } | 945 } |
939 | 946 |
940 if (options->rew) | 947 if (options->rew) |