changeset 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 11ed1827fe10
children 7c19bb5516db
files ChangeLog src/audacious/build_stamp.c src/audacious/main.c
diffstat 3 files changed, 43 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Mar 03 14:56:49 2007 -0800
+++ b/ChangeLog	Sat Mar 03 22:34:27 2007 -0800
@@ -1,3 +1,13 @@
+2007-03-03 22:56:49 +0000  Michael Farber <01mf02@gmail.com>
+  revision [4218]
+  - Cleaned up file info popup stuff
+  
+  
+  trunk/src/audacious/ui_fileinfopopup.c |  204 ++++++++++++++++-----------------
+  trunk/src/audacious/util.h             |    3 
+  2 files changed, 104 insertions(+), 103 deletions(-)
+
+
 2007-03-03 14:08:20 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
   revision [4216]
   - workaround freebsd make problems. closes #827.
--- a/src/audacious/build_stamp.c	Sat Mar 03 14:56:49 2007 -0800
+++ b/src/audacious/build_stamp.c	Sat Mar 03 22:34:27 2007 -0800
@@ -1,2 +1,2 @@
 #include <glib.h>
-const gchar *svn_stamp = "20070303-4216";
+const gchar *svn_stamp = "20070303-4218";
--- a/src/audacious/main.c	Sat Mar 03 14:56:49 2007 -0800
+++ b/src/audacious/main.c	Sat Mar 03 22:34:27 2007 -0800
@@ -890,6 +890,7 @@
     {
         gint pos = 0;
         gint i = 0;
+        GList *fns = NULL;
 
         for (i = 0; filenames[i] != NULL; i++)
         {
@@ -901,39 +902,45 @@
             else
                 filename = g_build_filename(current_dir, filenames[i], NULL);
 
-            if (options->load_skins)
-            {
-                xmms_remote_set_skin(session, filename);
-                skin_install_skin(filename);
-            }
-            else
-            {
-                if (options->enqueue_to_temp)
-                    xmms_remote_playlist_enqueue_to_temp(session, filename);
+            fns = g_list_prepend(fns, filename);
 
-                if (options->enqueue && options->play)
-                    pos = xmms_remote_get_playlist_length(session);
+            g_free(current_dir);
+        }
+
+        fns = g_list_reverse(fns);
 
-                if (!options->enqueue)
-                {
-                    xmms_remote_playlist_clear(session);
-                    xmms_remote_stop(session);
-                }
+        if (options->load_skins)
+        {
+            xmms_remote_set_skin(session, filenames[0]);
+            skin_install_skin(filenames[0]);
+        }
+        else
+        {
+            if (options->enqueue_to_temp)
+                xmms_remote_playlist_enqueue_to_temp(session, filenames[0]);
 
-                xmms_remote_playlist_add_url_string(session, filename);
+            if (options->enqueue && options->play)
+                pos = xmms_remote_get_playlist_length(session);
 
-                if (options->enqueue && options->play &&
-                    xmms_remote_get_playlist_length(session) > pos)
-                    xmms_remote_set_playlist_pos(session, pos);
-
-                if (!options->enqueue)
-                    xmms_remote_play(session);
+            if (!options->enqueue)
+            {
+                xmms_remote_playlist_clear(session);
+                xmms_remote_stop(session);
             }
 
-            g_free(filename);
-            g_free(current_dir);
+            xmms_remote_playlist_add(session, fns);
+
+            if (options->enqueue && options->play &&
+                xmms_remote_get_playlist_length(session) > pos)
+                xmms_remote_set_playlist_pos(session, pos);
+
+            if (!options->enqueue)
+                xmms_remote_play(session);
         }
 
+        g_list_foreach(fns, (GFunc) g_free, NULL);
+        g_list_free(fns);
+
         g_strfreev(filenames);
     }