aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emms-browser.el11
-rw-r--r--emms-cache.el9
2 files changed, 14 insertions, 6 deletions
diff --git a/emms-browser.el b/emms-browser.el
index 76d4e58..d642575 100644
--- a/emms-browser.el
+++ b/emms-browser.el
@@ -127,7 +127,9 @@ adding an album, artist, etc."
:type 'function)
(defcustom emms-browser-comparison-test
- 'case-fold
+ (if (fboundp 'define-hash-table-test)
+ 'case-fold
+ 'equal)
"*A method for comparing entries in the cache.
The default is to compare case-insensitively."
:group 'emms-browser
@@ -396,7 +398,7 @@ compilations, etc."
(defun emms-browser-make-hash-by (type)
"Make a hash, mapping with TYPE, eg artist -> tracks."
(let ((hash (make-hash-table
- :test emms-browser-comparison-test))
+ :test emms-browser-comparison-test))
field existing-entry)
(maphash (lambda (path track)
(setq field (emms-browser-get-track-field track type))
@@ -422,8 +424,9 @@ compilations, etc."
(defun case-fold-string-hash (a)
(sxhash (upcase a)))
-(define-hash-table-test 'case-fold
- 'case-fold-string= 'case-fold-string-hash)
+(when (fboundp 'define-hash-table-test)
+ (define-hash-table-test 'case-fold
+ 'case-fold-string= 'case-fold-string-hash))
(defun emms-browser-insert-top-level-entry (name tracks type)
"Insert a single top level entry into the buffer."
diff --git a/emms-cache.el b/emms-cache.el
index fa5bacf..441e70e 100644
--- a/emms-cache.el
+++ b/emms-cache.el
@@ -42,8 +42,13 @@
(require 'emms)
-(define-hash-table-test 'string-hash 'string= 'sxhash)
-(defvar emms-cache-db (make-hash-table :test 'string-hash)
+(when (fboundp 'define-hash-table-test)
+ (define-hash-table-test 'string-hash 'string= 'sxhash))
+
+(defvar emms-cache-db (make-hash-table
+ :test (if (fboundp 'define-hash-table-test)
+ 'string-hash
+ 'equal))
"A mapping of paths to file info.
This is used to cache over emacs sessions.")