Package: moc Version: 2.4.1-1 Severity: wishlist Tags: patch Hi, the attached patch modifies add_file_plist() to call add_dir_plist() if the current item is a directory. Rationale: suppose I'm browsing through directories, if I press 'a' to add a file/directory, I know wheter is it a file or a directory thus there's no point in having a distinct command. Moreover a directory can be seen as a "file of files" :)
thanks, filippo -- System Information: Debian Release: 4.0 APT prefers unstable APT policy: (600, 'unstable'), (1, 'experimental') Architecture: powerpc (ppc) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17.14-susp2 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Versions of packages moc depends on: ii libasoun 1.0.13-2 ALSA library ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries ii libcomer 1.39+1.40-WIP-2006.11.14+dfsg-1 common error description library ii libcurl3 7.15.5-1 Multi-protocol file transfer libra ii libflac7 1.1.2-6 Free Lossless Audio Codec - runtim ii libgnutl 1.4.4-3 the GNU TLS library - runtime libr ii libid3ta 0.15.1b-10 ID3 tag reading library from the M ii libidn11 0.6.5-1 GNU libidn library, implementation ii libjack0 0.101.1-2 JACK Audio Connection Kit (librari ii libkrb53 1.4.4-7 MIT Kerberos runtime libraries ii libmad0 0.15.1b-2.1 MPEG audio decoder library ii libmodpl 1:0.7-5.2 shared libraries for mod music bas ii libmpcde 1.2.2-1 Musepack (MPC) format library ii libncurs 5.5-5 Shared libraries for terminal hand ii libogg0 1.1.3-2 Ogg Bitstream Library ii libsampl 0.1.2-2 audio rate conversion library ii libsndfi 1.0.16-1 Library for reading/writing audio ii libspeex 1.1.12-3 The Speex Speech Codec ii libstdc+ 4.2-20060923-1 The GNU Standard C++ Library v3 ii libtagc0 1.4-4 TagLib Audio Meta-Data Library (C ii libvorbi 1.1.2.dfsg-1.2 The Vorbis General Audio Compressi ii libvorbi 1.1.2.dfsg-1.2 The Vorbis General Audio Compressi ii zlib1g 1:1.2.3-13 compression library - runtime moc recommends no packages. -- no debconf information
--- moc-2.4.1.orig/interface.c 2006-08-30 21:39:09.000000000 +0200 +++ moc-2.4.1/interface.c 2007-03-05 23:45:57.784937752 +0100 @@ -1627,67 +1627,6 @@ set_mixer (get_mixer_value() + diff); } -/* Add the currently selected file to the playlist. */ -static void add_file_plist () -{ - char *file; - - if (iface_in_plist_menu()) { - error ("Can't add to the playlist a file from the " - "playlist."); - return; - } - - if (iface_curritem_get_type() == F_DIR) { - error ("This is a directory."); - return; - } - - file = iface_get_curr_file (); - - if (!file) - return; - - if (iface_curritem_get_type() != F_SOUND) { - error ("You can only add a file using this command."); - free (file); - return; - } - - - if (plist_find_fname(playlist, file) == -1) { - struct plist_item *item = &dir_plist->items[ - plist_find_fname(dir_plist, file)]; - - send_int_to_srv (CMD_LOCK); - - if (options_get_int("SyncPlaylist")) { - send_int_to_srv (CMD_CLI_PLIST_ADD); - send_item_to_srv (item); - } - else { - int added; - - added = plist_add_from_item (playlist, item); - iface_add_to_plist (playlist, added); - } - - /* Add to the server's playlist if the server has our - * playlist */ - if (get_server_plist_serial() == plist_get_serial(playlist)) { - send_int_to_srv (CMD_LIST_ADD); - send_str_to_srv (file); - } - send_int_to_srv (CMD_UNLOCK); - } - else - error ("The file is already on the playlist."); - - iface_menu_key (KEY_CMD_MENU_DOWN); - - free (file); -} - /* Recursively add the content of a directory to the playlist. */ static void add_dir_plist () { @@ -1763,6 +1702,67 @@ free (file); } +/* Add the currently selected file to the playlist. */ +static void add_file_plist () +{ + char *file; + + if (iface_in_plist_menu()) { + error ("Can't add to the playlist a file from the " + "playlist."); + return; + } + + if (iface_curritem_get_type() == F_DIR) { + add_dir_plist(); + return; + } + + file = iface_get_curr_file (); + + if (!file) + return; + + if (iface_curritem_get_type() != F_SOUND) { + error ("You can only add a file using this command."); + free (file); + return; + } + + + if (plist_find_fname(playlist, file) == -1) { + struct plist_item *item = &dir_plist->items[ + plist_find_fname(dir_plist, file)]; + + send_int_to_srv (CMD_LOCK); + + if (options_get_int("SyncPlaylist")) { + send_int_to_srv (CMD_CLI_PLIST_ADD); + send_item_to_srv (item); + } + else { + int added; + + added = plist_add_from_item (playlist, item); + iface_add_to_plist (playlist, added); + } + + /* Add to the server's playlist if the server has our + * playlist */ + if (get_server_plist_serial() == plist_get_serial(playlist)) { + send_int_to_srv (CMD_LIST_ADD); + send_str_to_srv (file); + } + send_int_to_srv (CMD_UNLOCK); + } + else + error ("The file is already on the playlist."); + + iface_menu_key (KEY_CMD_MENU_DOWN); + + free (file); +} + static void toggle_option (const char *name) { send_int_to_srv (CMD_SET_OPTION);