aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emms-lyrics.el2
-rw-r--r--emms-tageditor.el18
-rw-r--r--emms.el16
3 files changed, 23 insertions, 13 deletions
diff --git a/emms-lyrics.el b/emms-lyrics.el
index ebbfc12..3ed5a66 100644
--- a/emms-lyrics.el
+++ b/emms-lyrics.el
@@ -141,7 +141,7 @@ To find FILE, will look up in current directory and `emms-lyrics-dir'."
(time 0)
(lyric ""))
(setq lyric
- (replace-regexp-in-string ".*\\]" "" lyric-string))
+ (emms-replace-regexp-in-string ".*\\]" "" lyric-string))
(while (string-match "\\[[0-9:.]+\\]" lyric-string)
(let* ((time-string (match-string 0 lyric-string))
(semi-pos (string-match ":" time-string)))
diff --git a/emms-tageditor.el b/emms-tageditor.el
index f093d85..4afe4e3 100644
--- a/emms-tageditor.el
+++ b/emms-tageditor.el
@@ -235,20 +235,14 @@
(setq emms-tageditor-widgets nil)
(kill-buffer (get-buffer-create emms-tageditor-buffer-name)))
-(defun emms-tageditor-replace-regexp (regexp rep string &optional fixedcase literal subexp start)
- "Compatibility wrapper for replace-regexp-in-string/replace-in-string."
- (if (featurep 'xemacs)
- (replace-in-string regexp rep string fixedcase literal subexp start)
- (replace-regexp-in-string regexp rep string fixedcase literal subexp start)))
-
(defun emms-tageditor-replace-create-replacement (replace-with trackidx)
(let ((info (aref emms-tageditor-current-infos trackidx))
(track (aref emms-tageditor-current-tracks trackidx)))
- (setq replace-with (emms-tageditor-replace-regexp "$TITLE" (emms-info-title info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$ALBUM" (emms-info-album info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$ARTIST" (emms-info-artist info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$NOTE" (emms-info-note info) replace-with))
- (setq replace-with (emms-tageditor-replace-regexp "$TRACKNAME" (emms-track-name track) replace-with)))
+ (setq replace-with (emms-replace-regexp-in-string "$TITLE" (emms-info-title info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$ALBUM" (emms-info-album info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$ARTIST" (emms-info-artist info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$NOTE" (emms-info-note info) replace-with))
+ (setq replace-with (emms-replace-regexp-in-string "$TRACKNAME" (emms-track-name track) replace-with)))
replace-with)
(defun emms-tageditor-replace-tag (field regexp replace-with)
@@ -258,7 +252,7 @@
;; Find the widget for the current track
(let ((widget (emms-tageditor-get-widget idx field)))
(let* ((str (widget-value widget))
- (str (emms-tageditor-replace-regexp regexp replace-with str)))
+ (str (emms-replace-regexp-in-string regexp replace-with str)))
(if (string= "$SET" regexp)
(widget-value-set
widget
diff --git a/emms.el b/emms.el
index 1c2a083..e547348 100644
--- a/emms.el
+++ b/emms.el
@@ -1186,5 +1186,21 @@ or negative to seek backwards."
((fboundp 'delete-itimer)
(delete-itimer timer)))))
+(defun emms-replace-regexp-in-string (regexp replacement text &optional fixedcase literal)
+ "Replace REGEXP with REPLACEMENT in TEXT.
+If fourth arg FIXEDCASE is non-nil, do not alter case of replacement text.
+If fifth arg LITERAL is non-nil, insert REPLACEMENT literally."
+ (cond
+ ((fboundp 'replace-regexp-in-string)
+ (replace-regexp-in-string regexp replacement text fixedcase literal))
+ ((fboundp 'replace-in-string)
+ (replace-in-string text regexp replacement literal))
+ (t (let ((repl-len (length replacement))
+ start)
+ (while (setq start (string-match regexp text start))
+ (setq start (+ start repl-len)
+ text (replace-match replacement fixedcase literal text))))
+ text)))
+
(provide 'emms)
;;; emms.el ends here