emms-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[emms-help] [patch] more killing and yanking + darcs weirdness


From: Yoni Rabkin Katzenell
Subject: [emms-help] [patch] more killing and yanking + darcs weirdness
Date: Fri, 09 Dec 2005 18:56:37 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux)

I have just done a `darcs send' on the attached patch. The patch should
allow more natural, Emacs style killing and yanking without destroying
the overlays (bugs included of course).

To avoid conflicts I pulled a pristine tree from forcer and did a
successful `darcs apply -o ...' on it.

But there is something I don't get. Maybe some darcs guru can explain.

When I do a `darcs changes' on forcer's pristine tree I see the
following patch:

Mon Dec  5 11:20:44 IST 2005  address@hidden
  * Killing and yanking

So obviously it has already been commited. But when I issue a `darcs
send' in the exact same tree, darcs asks me if to send that exact same
patch! What am I doing wrong?

New patches:

[Killing and yanking
address@hidden {
hunk ./emms-playlist-mode.el 3
-;;; Copyright Yoni Rabkin under the GNU General Public License.
+;;; Copyright 2005 Yoni Rabkin under the GNU General Public License.
hunk ./emms-playlist-mode.el 8
-;;; I'm designing this as a method of displaying and manipulating the
-;;; different Emms playlist buffers defined by the user.
+;;; This is a method of displaying and manipulating the different Emms
+;;; playlist buffers.
hunk ./emms-playlist-mode.el 13
-
-;;; Todo:
-;;;
-;;; emms-add-m3u-playlist displays the first track on the
-;;; mode-line.
-;;;
-;;; Not all of the methods for adding tracks behave correctly in
-;;; regards to marking the current track. Stress test this.
hunk ./emms-playlist-mode.el 28
+
+(defvar emms-playlist-mode-window-width -25
+  "Width for the emms-playlist-mode pop-up window.")
hunk ./emms-playlist-mode.el 73
-    (define-key emms-playlist-mode-map (kbd "n") 'emms-next)
-    (define-key emms-playlist-mode-map (kbd "p") 'emms-previous)
hunk ./emms-playlist-mode.el 74
-    (define-key emms-playlist-mode-map (kbd "C-k") 
'emms-playlist-mode-kill-track)
hunk ./emms-playlist-mode.el 75
-    (define-key emms-playlist-mode-map (kbd "d") 
'emms-playlist-mode-kill-track)
+    (define-key emms-playlist-mode-map (kbd "C-k") 
'emms-playlist-mode-kill-track)
+    (define-key emms-playlist-mode-map (kbd "C-w") 'emms-playlist-mode-kill)
+    (define-key emms-playlist-mode-map (kbd "C-n") 'next-line)
+    (define-key emms-playlist-mode-map (kbd "C-p") 'previous-line)
+    (define-key emms-playlist-mode-map (kbd "C-j") 
'emms-playlist-mode-insert-newline)
+    (define-key emms-playlist-mode-map (kbd "M-y") 
'emms-playlist-mode-yank-pop)
+    (define-key emms-playlist-mode-map (kbd "M-<") 'emms-playlist-mode-first)
+    (define-key emms-playlist-mode-map (kbd "M->") 'emms-playlist-mode-last)
+    (define-key emms-playlist-mode-map (kbd "n") 'emms-next)
+    (define-key emms-playlist-mode-map (kbd "p") 'emms-previous)
hunk ./emms-playlist-mode.el 88
-    (define-key emms-playlist-mode-map (kbd "RET") 
'emms-playlist-mode-play-current-track)
hunk ./emms-playlist-mode.el 89
-    (define-key emms-playlist-mode-map (kbd "<mouse-2>") 
'emms-playlist-mode-play-current-track)
hunk ./emms-playlist-mode.el 90
-    (define-key emms-playlist-mode-map (kbd "M-<") 'emms-playlist-mode-first)
-    (define-key emms-playlist-mode-map (kbd "M->") 'emms-playlist-mode-last)
-    (define-key emms-playlist-mode-map (kbd "C-n") 
'emms-playlist-mode-select-next)
-    (define-key emms-playlist-mode-map (kbd "C-p") 
'emms-playlist-mode-select-previous)
hunk ./emms-playlist-mode.el 91
+    (define-key emms-playlist-mode-map (kbd "<mouse-2>") 
'emms-playlist-mode-play-current-track)
+    (define-key emms-playlist-mode-map (kbd "RET") 
'emms-playlist-mode-play-current-track)
hunk ./emms-playlist-mode.el 138
-
-;; Buggy
-(defun emms-playlist-mode-yank ()
-  "Yank the last Emms track killed into the buffer."
-  (interactive)
-  (let ((track nil)
-       (start nil))
-    (with-temp-buffer
-      (yank)
-      (setq track (get-text-property (point-min) 'emms-track)))
-    (if track
-       (funcall emms-playlist-insert-track-function track)
-      (error "No playlist info to yank"))))
-
-;; The logic for killing tracks in an interactive manner is
-;; suprisingly annoying
-(defun emms-playlist-mode-kill-track ()
-  "Kill the track at point."
-  (interactive)
-  (let ((region (emms-property-region (point) 'emms-track))
-       (inhibit-read-only t))
-    (cond ((not (emms-playlist-track-at))
-          (kill-line 1) (current-kill 1))
-         ((and (not (emms-playlist-mode-selected-at))
-               (emms-playlist-track-at))
-          (kill-region (car region)
-                       (cdr region))
-          (emms-playlist-mode-kill-track))
-         ((and emms-player-playing-p
-               (emms-playlist-mode-selected-at))
-          (emms-stop)
-          (emms-next-noerror)
-          (kill-region (car region)
-                       (cdr region))
-          (emms-playlist-mode-kill-track))
-         ((and (not emms-player-playing-p)
-               (emms-playlist-mode-selected-at))
-          (kill-region (car region)
-                       (cdr region))
-          (emms-playlist-mode-kill-track))
-         (t (error "Cannot kill content at point")))))
hunk ./emms-playlist-mode.el 151
+
+(defun emms-playlist-mode-insert-newline ()
+  "Insert a newline at point."
+  (interactive)
+  (let ((inhibit-read-only t))
+    (newline)))
+
+;;; --------------------------------------------------------
+;;; Killing and yanking
+;;; --------------------------------------------------------
+
+(defun emms-playlist-mode-between-p (p a b)
+  "Return t if P is a point between points A and B."
+  (if (eq a b)
+      nil
+    (eq p (cadr (sort (list a b p) #'<=)))))
+
+;; C-k
+(defun emms-playlist-mode-kill-track ()
+  "Kill track at point."
+  (interactive)
+  (let ((track (emms-playlist-track-at))
+       (inhibit-read-only t))
+    (if track
+       (let ((track-region (emms-property-region (point)
+                                                 'emms-track)))
+         (when (and emms-player-playing-p
+                    (equal (emms-playlist-selected-track) track))
+           (emms-stop))
+         (remove-overlays (point-at-bol) (point-at-eol))
+         (kill-region (car track-region) (cdr track-region)))
+      (kill-line))))
+
+;; C-w
+(defun emms-playlist-mode-kill ()
+  "Kill from mark to point."
+  (interactive)
+  (let ((inhibit-read-only t)
+       (m (mark))                      ; throw error if no mark
+       (p (point))
+       (sm emms-playlist-selected-marker))
+    (kill-region p m)
+    (when (emms-playlist-mode-between-p
+          (marker-position sm) p m)
+      (setq emms-playlist-selected-marker nil)
+      (setq emms-playlist-mode-selected-overlay-marker nil)
+      (emms-stop))))                   ; regardless of state
+
+;; C-y
+(defun emms-playlist-mode-yank ()
+  "Yank into the playlist buffer."
+  (interactive)
+  (let ((inhibit-read-only t))
+    (emms-playlist-mode-remove-overlay-selected)
+    (yank)
+    (emms-playlist-mode-overlay-selected)))
+
+;; M-y
+(defun emms-playlist-mode-yank-pop ()
+  "Cycle through the kill-ring."
+  (interactive)
+  (let ((inhibit-read-only t))
+    (yank-pop)))
hunk ./emms-playlist-mode.el 241
-  (unless (null emms-playlist-mode-selected-overlay-marker)
-    (save-excursion
-      (goto-char emms-playlist-mode-selected-overlay-marker)
-      (remove-overlays (point-at-bol)
-                      (point-at-eol))
-      (emms-playlist-mode-overlay-at-point 
-       'emms-playlist-track-face 1)))
+  (emms-playlist-mode-remove-overlay-selected)
hunk ./emms-playlist-mode.el 247
-         (emms-playlist-mode-overlay-at-point 
+         (emms-playlist-mode-overlay-at-point
hunk ./emms-playlist-mode.el 249
+
+(defun emms-playlist-mode-remove-overlay-selected ()
+  "Remove the overlay from the currently selected track"
+  (unless (null emms-playlist-mode-selected-overlay-marker)
+    (save-excursion
+      (goto-char emms-playlist-mode-selected-overlay-marker)
+      (remove-overlays (point-at-bol)
+                      (point-at-eol))
+      (emms-playlist-mode-overlay-at-point
+       'emms-playlist-track-face 1))))
hunk ./emms-playlist-mode.el 357
-
-(defvar emms-playlist-window-width -25
-  "Window width for the emms-playlist window when it's popuped.")
hunk ./emms-playlist-mode.el 360
-WINDOW-WIDTH is `emms-playlist-window-width'."
+WINDOW-WIDTH is `emms-playlist-mode-window-width'."
hunk ./emms-playlist-mode.el 362
-  (setq emms-playlist-window-width
-       (or window-width emms-playlist-window-width))
-  (split-window-horizontally emms-playlist-window-width)
+  (setq emms-playlist-mode-window-width
+       (or window-width emms-playlist-mode-window-width))
+  (split-window-horizontally emms-playlist-mode-window-width)
}

[killing and yanking in the interactive playlist buffer
address@hidden {
hunk ./emms-playlist-mode.el 164
-  (if (eq a b)
+  (if (or (eq a b)
+         (and (> b a)
+              (= p b)))
hunk ./emms-playlist-mode.el 171
+;;
+;; Currently this kills as regular GNU/Emacs would and not like a
+;; typical music player would.
hunk ./emms-playlist-mode.el 197
-    (kill-region p m)
+    ;; Are we killing the playing/selected track?
hunk ./emms-playlist-mode.el 199
-          (marker-position sm) p m)
+          (marker-position sm) m p)
hunk ./emms-playlist-mode.el 202
-      (emms-stop))))                   ; regardless of state
+      (emms-stop))
+    (kill-region p m)))
hunk ./emms-playlist-mode.el 210
-    (emms-playlist-mode-remove-overlay-selected)
-    (yank)
-    (emms-playlist-mode-overlay-selected)))
+    (yank))
+  (emms-playlist-mode-overlay-refresh))
hunk ./emms-playlist-mode.el 247
-  (save-excursion
-    (goto-char emms-playlist-selected-marker)
-    (setq emms-playlist-mode-selected-overlay-marker
-         (point-marker))
-    (setq emms-playlist-mode-selected-overlay
-         (emms-playlist-mode-overlay-at-point
-          'emms-playlist-selected-face 2))))
+  (when (not (and (null emms-playlist-selected-marker)
+                 (null emms-playlist-mode-selected-overlay-marker))) ; ugh
+    (save-excursion
+      (goto-char emms-playlist-selected-marker)
+      (setq emms-playlist-mode-selected-overlay-marker
+           (point-marker))
+      (setq emms-playlist-mode-selected-overlay
+           (emms-playlist-mode-overlay-at-point
+            'emms-playlist-selected-face 2)))))
hunk ./emms-playlist-mode.el 259
-  (unless (null emms-playlist-mode-selected-overlay-marker)
+  (when (not (null emms-playlist-mode-selected-overlay-marker))
hunk ./emms-playlist-mode.el 267
+(defun emms-playlist-mode-overlay-all ()
+  "Place an low-priority overlay over the entire buffer."
+  (emms-playlist-mode-overlay-track (point-min)
+                                   (point-max)
+                                   'emms-playlist-track-face
+                                   1))
+
+;; not graceful, but avoids growing as the number of tracks grow.
+(defun emms-playlist-mode-overlay-refresh ()
+  "Remove and re-apply all the overlays in the buffer."
+  (remove-overlays (point-min)
+                  (point-max))
+  (emms-playlist-mode-overlay-all)
+  (setq emms-playlist-mode-selected-overlay-marker nil)
+  (emms-playlist-mode-overlay-selected))
+
hunk ./emms-playlist-mode.el 393
+  ;; when there is neither a current emms track or a playing one...
hunk ./emms-playlist-mode.el 396
+    ;; ...then stop the player.
hunk ./emms-playlist-mode.el 398
+    ;; why select the first track?
hunk ./emms-playlist-mode.el 401
+  ;; when there is a selected track.
}

Context:

[fix manual sectioning
address@hidden 
[Fix conflicts in emms-playlist-mode.el
address@hidden 
[Fix emms.texinfo for PDF output (thanks twb)
address@hidden 
[Added `emms-playlist-mode-go-popup' for popuping emms-playlist as a side
address@hidden
 window.
] 
[emms-info-mp3info.el (emms-info-mp3find-arguments): use info-tracknumber 
instead of info-tracknum, so as to be consistent with ogginfo.
Trent Buck <address@hidden>**20051119150805
 emms-info.el: Update documentation.
] 
[emms-source-file.el: add missing third clause to AUTOLOAD calls.
Trent Buck <address@hidden>**20051028142538] 
[emms-info-libtag.el: Fix a couple of typos.
Trent Buck <address@hidden>**20051119183945] 
[Implement an emms-info function using the libtag package.
Trent Buck <address@hidden>**20051119181528] 
[Finished rewriting manual
address@hidden 
[More manual work, but still only 71 percent done
address@hidden 
[Added support for toggling default action in streams
address@hidden 
[Added a hook for emms-streams
address@hidden 
[debian/emms.emacs-install: Leave symlinks in bytecode dir for 
find-library/function/variable.
Trent Buck <address@hidden>**20051027172739] 
[debian/rules: swap binary-indep and binary-arch bodies, since emms is packages 
as source code.
Trent Buck <address@hidden>**20051027150418] 
[Makefile (ChangeLog): Generate ChangeLog from darcs metadata.
Trent Buck <address@hidden>**20051027133919
 debian/rules (build-stamp): Have make generate the ChangeLog.
 (build-arch): Include ChangeLog and debian/changelog in debian package.
] 
[Added simple player "playsound".
Trent Buck <address@hidden>**20051023012053] 
[Remove TODO from debian/docs.
Trent Buck <address@hidden>**20050912133353] 
[Don't attempt to dh_installchangelogs ChangeLog in debian/rules.
Trent Buck <address@hidden>**20050912125754] 
[Add prefix keys support.
address@hidden 
[manual 71% done
address@hidden 
[fix emms-info-ogginfo laguange
address@hidden 
[manual update (68% done)
address@hidden 
[emms-metaplaylist fix requested by Lukhas
address@hidden 
[A minor spell correction.
address@hidden 
[Make emms-mode-line-icon use the good function to get the current track
address@hidden 
[Rename `emms-playlist-save-active-as-m3u' to 
`emms-playlist-save-current-as-m3u'.
address@hidden 
[emms-playlist-sort.el: New file containing various playlist sort
address@hidden
 functions.
] 
[emms-setup.el: Added `emms-playlist-sort' to `emms-devel'.
address@hidden 
[emms-setup.el: Moved `emms-lyrics' and `emms-playing-time' into
address@hidden
 `emms-all'.
] 
[emms-lyrics.el: New function: `emms-lyrics-restore-mode-line'.
address@hidden 
[emms-playing-time.el: New function: `emms-playing-time-restore-mode-line'.
address@hidden 
[manual work (57% done)
address@hidden 
[emms.el: Should initialize `emms-player-paused-p' to nil at start. Or a
address@hidden
 pause + stop would make `emms-player-paused-p' be wrong.
] 
[emms-mode-line.el: Made `emms-mode-line-alter' be compatible with
address@hidden
 `emms-track-updated-functions'.
] 
[emms-mode-line.el: When artist or title info cann't be achieved, show
address@hidden
 file name without directory.
] 
[emms-mode-line: Changed dead `emms-playlist-current-track-changed-hook'
address@hidden
 to `emms-track-updated-functions'.
] 
[emms-playlist-mode-switch-buffer
address@hidden 
[Yet Another Installment of the manual re-write
address@hidden 
[emms-setup.el re-write
address@hidden 
[more manual re-writing
address@hidden 
[manual work
address@hidden 
[Another installment of manual changes
address@hidden 
[some manual fixes (just the start)
address@hidden 
[Rename emms-default.el to emms-setup.el.
address@hidden 
[emms.el (emms-playlist-new): Use interactive-p rather than
Michael Olson <address@hidden>**20050925165342
 called-interactively-p, since the latter is not available in Emacs21.
] 
[emms-streams.el: Update `emms-info-file-info-song-artist' so that it
Michael Olson <address@hidden>**20050925160336
 can deal with the new interface.
] 
[emms-playlist-mode.el: 3rd attempt to not clobber
Michael Olson <address@hidden>**20050924183844
 emms-playlist-buffer-p.
] 
[List all the changes needed in the manual
address@hidden 
[Update tracks with a specific function, and provide 
emms-track-updated-functions
address@hidden 
[Adding emms-info-ogginfo.el and consiquently modifying emms-default
address@hidden 
[add emms-metaplaylist-mode.el
address@hidden 
[rollback patch to fix adding tracks.
address@hidden 
[emms-playing-time.el: 
address@hidden
 
 1 New functions: `emms-playing-time-enable',
 `emms-playing-time-disable', `emms-playing-time-toggle', for handling
 hook stuffs. 
 
 2 Removed `emms-playing-time-display-p' where unnecessary now. 
 
 3 Updated commentary and author name. :-)
] 
[eemms-lyrics.el:
address@hidden
 
 1 New functions: `emms-lyrics-enable', `emms-lyrics-disable',
 `emms-lyrics-toggle', for handling hook stuffs.
 
 2 Removed `emms-lyrics-display-p' where unnecessary now. 
 
 3 Updated commentary and author name. :-)
] 
[emms-lyrics.el: Fixed a bug in `emms-lyrics-start'.
address@hidden 
[emms-playing-time.el: Applied standard customization definitions.
address@hidden 
[emms-info-mp3info: Provide a way to configure the mp3info output coding system.
address@hidden 
[Add documentation of the define symbols for emms-info.el.
address@hidden 
[remove emms-metaplaylist-mode code from emms-playlist-mode
address@hidden 
[emms-playing-time: Since 'info-playing-time is an int now, changed
address@hidden
 `emms-playing-time-display' accordingly.
] 
[emms-info-mp3info: Use number for 'info-playing-time.
address@hidden 
[emms-playing-time.el: Updated the playing-time retrieval method, so as
address@hidden
 to be able to display playing-time again.
] 
[emms-playlist-mode: Make sure emms-playlist-buffer-p is set, since we
Michael Olson <address@hidden>**20050922132808
 destroy all local variables.
] 
[emms-playlist-mode-go: Add buffer-live-p check to circumvent a
Michael Olson <address@hidden>**20050922132424
 "selecting deleted buffer" error.
] 
[emms-player-mplayer.el: Set resume method to nil to just use pause.
address@hidden 
[fix emms-score.el and emms-info-ogg.el borkage
address@hidden 
[clean-up emms-info-ogg.el
address@hidden 
[fix ogg-info
address@hidden 
[emms-info-mp3info ignores files which are not mp3s
address@hidden 
[Don't set values mp3info has nothing for
address@hidden 
[later-do.el: Run timer after function did run to avoid stacking
address@hidden 
[Inefficiency removed: Update each track only once :P
address@hidden 
[Ignore read-onliness when updating a track in a playlist buffer
address@hidden 
[Use time-less-p instead of <= for times
address@hidden 
[later-do.el emms version
address@hidden 
[emms-streams shouldn't overwrite `emms-track-initialize-functions'
address@hidden 
[Typo fix (findo -> find)
address@hidden 
[emms-info-track-description: Fall back to old behavior if no title and artist
address@hidden 
[Hotfix for emms-streams due to info changed. Please fix later.
address@hidden 
[Fix emms-default.el, and ignore ogg stuff for now.
address@hidden 
[Remove emms-info-later-do.el
address@hidden 
[Fix emms-default.el for new emms-info.el
address@hidden 
[emms-info-mp3info.el updated for newest emms-info.el
address@hidden 
[emms-info.el rewrite.
address@hidden 
[later-do: Work even if the called function errors out.
address@hidden 
[emms-random: Use `emms-playlist-current-select-random'.
address@hidden 
[fixing track killing some more
address@hidden 
[use insert function for yanking
address@hidden 
[Fixed saving/loading for emms-playlist-mode, also added track updating
address@hidden 
[Added track updating to emms.
address@hidden 
[Added emms-playlist-mode-insert-function (fixed sorting and shuffling 
font-lock)
address@hidden 
[Make emms-playlist-current-clear an interactive function.
address@hidden 
[Fix bugs in lyrics and mode-line modes when switching songs, fix yanking in 
playlist buffer
address@hidden 
[Fix track switching error and interactive playlist yanking
address@hidden 
[Fix track switching error and interactive playlist yanking
address@hidden 
[Added 'emms-playlist-clear to the default key-map for emms-playlist-mode
address@hidden 
[Added 'emms-playlist-clear to default playlist keymap
address@hidden 
[Make `emms-playlist-clear' interactive so that I can map it to a key.
address@hidden 
[include streaming into emms-default and fix streaming info from within the 
*EMMS Streams* buffer
address@hidden 
[Make `with-current-emms-playlist' disable read-onlyness.
address@hidden 
[fix emms-streams.el and emms-player-mplayer.el
address@hidden 
[comment out emms-info-playlist breakage
address@hidden 
[emms-playlist-set-playlist-buffer: Ensure the selected buffer is a playlist.
address@hidden 
[Ignore read-onliness when opening a playlist-mode-buffer.
address@hidden 
[fixing errors after breakage
address@hidden 
[Big renaming for current buffer/current playlist distinction.
address@hidden
 All playlist functions which work on the current playlist now are named
 `emms-playlist-current-...'. Other functions named `emms-playlist-...'
 work on the current buffer.
 This affects the following functions:
 
 emms-playlist-clear => emms-playlist-current-clear
 emms-playlist-selected-track => emms-playlist-current-selected-track
 emms-playlist-select-next => emms-playlist-current-select-next
 emms-playlist-select-previous => emms-playlist-current-select-previous
 emms-playlist-select-random => emms-playlist-current-select-random
 emms-playlist-select-first => emms-playlist-current-select-first
 emms-playlist-select-last => emms-playlist-current-select-last
 emms-playlist-insert-source => emms-playlist-current-insert-source
] 
[emms-playlist-new: No, it's a major mode, DONT pass an argument!
address@hidden 
[Making emms-default now emms-playlist-mode compatible
address@hidden 
[emms-playlist-new: Pass positive argument to mode function.
address@hidden 
[Renaming the "playlist" source to "streamlist".
address@hidden
 
 Things might be broken.
] 
[clean-up pseudo font-locking
address@hidden 
["font-locking" for inserted, unselected tracks
address@hidden 
[emms.el missing quote fix, emms-playlist-mode.el kill-track fix
address@hidden 
[Adding a bunch of FIXME tags for the playlist source
address@hidden
 
 When we come to a consensus on the naming, we'll just fix it.
 Yrk should have a word about it, stream-playlist sounds good.
] 
[Fixing emms-playlist-mode-open-buffer
address@hidden 
[emms-playlist-select should not switch to the playlist buffer.
address@hidden 
[Renaming emms-playlist-save to emms-playlist-mode-save-buffer
address@hidden 
[Added docstrings and clean-up for emms-playlist-mode.el
address@hidden 
[A kinder, gentler emms-playlist-mode-go
address@hidden 
[clean-up and emms-playlist-mode-center-current
address@hidden 
[emms-player-mplayer.el: mplayer also knows rm, rmvb, mp4, ...etc.
address@hidden 
[multiple fixes to emms-playlist-mode.el
address@hidden 
[emms-show now knows when nothing is playing.
address@hidden 
[Inhibit read-only in `emms-playlist-insert-track'
address@hidden 
[mpd-updates
Michael Olson <address@hidden>**20050917021138
 emms-player-mpd.el: Add handler for 'resume.
 (emms-player-mpd-paused-p): Remove, since we already have
 emms-player-paused-p.
 (emms-player-mpd-pause): Use toggle instead of either play or
 pause.
] 
[Making emms-playlist-mode-go respect emms-playlist-buffer
address@hidden 
[Add `emms-ensure-player-playing-p'
address@hidden 
[Adding emms-playlist-mode-save and -open
address@hidden 
[Small fixes
address@hidden 
[Be able to clear the playlist buffer even if it's killed.
address@hidden 
[Adding emms-playlist-save-active-as-m3u
address@hidden 
[Fixing a typo in emms-playlist-save-active
address@hidden 
[Docstrings for playlist saving functions
address@hidden 
[Adding m3u playlist format for saving.
address@hidden 
[Added emms-playlist-mode.el
address@hidden 
[Shuffle, sort and source-add don't move point anymore.
address@hidden 
[Provide source insertion
address@hidden 
[Cleaned up `emms-playlist-save' a bit
address@hidden 
[Adding emms-playlist-save and -active-save
address@hidden
 
 Opening will come soon.
 
] 
[Fix emms-playlist-new and make emms-playlist-clear use it.
address@hidden 
[Removing the old emms-save-playlist
address@hidden 
[emms-source-add now checks for an as of yet unset marker, too.
address@hidden 
[Add `emms-playlist-buffer-p'.
address@hidden 
[emms-lyrics.el: Changed to `emms-player-seeked-hook' to
address@hidden
 `emms-player-seeked-functions', defined in `emms.el'.
] 
[emms-playing-time.el: Changed to `emms-player-seeked-hook' to
address@hidden
 `emms-player-seeked-functions', defined in `emms.el'.
] 
[emms.el: Fix seek bug in `emms-player-seek'.
address@hidden 
[emms-lyrics.el: Updated commentary and applied standard customization
address@hidden
 definitions.
] 
[ogg-comment.el: Define macros before using them.
address@hidden 
[Add more mikmod command line args.
address@hidden 
[Added mikmod support (thanks to Martin Schoenmakers)
address@hidden 
[emms-playlist-new, emms-playlist-set-playlist-buffer: New commands.
address@hidden 
[Add `emms-player-simple-regexp'. Also, use it as appropriate.
address@hidden 
[Fixing typo in file regexps for gstreamer
address@hidden 
[Updated define-emms-simple-player examples in emms.texinfo
address@hidden 
[Call widen in shuffle and sort.
address@hidden 
[Added `emms-playlist-delete-track-function'.
address@hidden 
[Remove emms-playlist-kill-track.
address@hidden 
[Fix shuffling in combined sources.
address@hidden 
[Call `emms-shuffle' to shuffle a source.
address@hidden 
[Cleanup of the shuffle/sort stuff
address@hidden 
[emms-shuffle-all: Depend on the value of current, not of emms-player-playing-p
address@hidden 
[Don't make emms-playlist-sort and emms-playlist-shuffle interactive.
address@hidden 
[Keep the selected song correct for shuffling and sorting
address@hidden 
[Throw errors for `emms-next' and `emms-previous' at the end/beginning of the 
playlist
address@hidden 
[Added `emms-randomÃ' (idea by twb)
address@hidden 
[Add shuffling and sorting.
address@hidden 
[Lots of condition-case fixes.
address@hidden 
[First attempt at reading playing time for .ogg
address@hidden
 
 Problem : it's a bit long to read the info now.
 We need to optimize that.
 
] 
[Move gstreamer support into simple player.
address@hidden 
[Add pause and resume to the simple player.
address@hidden 
[emms-stream-info.el: Use emms-playlist-selected-track.
address@hidden 
[Removed old gstreamer wrappers
address@hidden 
[Added new generic wrapper for gstreamer
address@hidden 
[Fixed typo in emms.el
address@hidden
 
 Non quoted hook variable
 
] 
[Rewrote emms-player-gstreamer
address@hidden 
[Typo: It's emms-playlist-insert-track, not ...-track-insert.
address@hidden 
[emms-player-mpd doesn't need emms-player-extensions anymore.
address@hidden 
[FAQ: Typo fix (Thes -> The)
address@hidden 
[Fixing the extensions problem.
address@hidden
 
 Just removed the requires, and added require mplayer
 in emms-default.
 
] 
[Select a track after adding, too, if none is selected.
address@hidden 
[Rename emms-mpd.el to emms-player-mpd.el
address@hidden 
[Rename emms-lyric.el to emms-lyrics.el
address@hidden 
[Add speex support
address@hidden 
[Add pause and seek support to emms.el.
address@hidden
 This factors out the mplayer support into emms-player-mplayer.el,
 and removes emms-player-extensions.el.
] 
[renaming the provide, Emacs complains otherwise
address@hidden 
[Fixed emms-mode-line-icon and -playing-time
address@hidden 
[Rename emms-gstreamer.el to emms-player-gstreamer.el
address@hidden 
[fixing emms-lyric.el and emms-mode-line.el
address@hidden
 
 I don't have any lyric file, so I can't test it. But 
 there are no errors :)
 
 
] 
[emms.el (with-current-emms-playlist): Also recreate when the buffer is
address@hidden
 dead.
] 
[emms.el (emms-next-noerror): Always return non-nil when
address@hidden
 `emms-playlist-select-next' doesn't error out.
] 
[Playlist buffer rewrite
address@hidden 
[Initial commit (CVS 2005-09-11)
address@hidden 
Patch bundle hash:
8ebde18f92193e73f781983110b30cd7cc4c0dfd
-- 
"Cut your own wood and it will warm you twice"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]