summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/multisession.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/multisession.el')
-rw-r--r--lisp/emacs-lisp/multisession.el20
1 files changed, 10 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el
index 17c9384134c..bce888acc68 100644
--- a/lisp/emacs-lisp/multisession.el
+++ b/lisp/emacs-lisp/multisession.el
@@ -26,7 +26,6 @@
(require 'cl-lib)
(require 'eieio)
(require 'sqlite)
-(require 'url)
(require 'tabulated-list)
(defcustom multisession-storage 'files
@@ -158,7 +157,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to
multisession--db
"create unique index multisession_idx on multisession (package, key)")))))
-(cl-defmethod multisession-backend-value ((_type (eql sqlite)) object)
+(cl-defmethod multisession-backend-value ((_type (eql 'sqlite)) object)
(multisession--ensure-db)
(let ((id (list (multisession--package object)
(multisession--key object))))
@@ -198,7 +197,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to
(t
(multisession--cached-value object)))))
-(cl-defmethod multisession--backend-set-value ((_type (eql sqlite))
+(cl-defmethod multisession--backend-set-value ((_type (eql 'sqlite))
object value)
(catch 'done
(let ((i 0))
@@ -234,13 +233,13 @@ DOC should be a doc string, and ARGS are keywords as applicable to
id)))
(setf (multisession--cached-value object) value))))
-(cl-defmethod multisession--backend-values ((_type (eql sqlite)))
+(cl-defmethod multisession--backend-values ((_type (eql 'sqlite)))
(multisession--ensure-db)
(sqlite-select
multisession--db
"select package, key, value from multisession order by package, key"))
-(cl-defmethod multisession--backend-delete ((_type (eql sqlite)) object)
+(cl-defmethod multisession--backend-delete ((_type (eql 'sqlite)) object)
(sqlite-execute multisession--db
"delete from multisession where package = ? and key = ?"
(list (multisession--package object)
@@ -278,7 +277,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to
".value")
multisession-directory))
-(cl-defmethod multisession-backend-value ((_type (eql files)) object)
+(cl-defmethod multisession-backend-value ((_type (eql 'files)) object)
(let ((file (multisession--object-file-name object)))
(cond
;; We have no value yet; see whether it's stored.
@@ -301,7 +300,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to
(t
(multisession--cached-value object)))))
-(cl-defmethod multisession--backend-set-value ((_type (eql files))
+(cl-defmethod multisession--backend-set-value ((_type (eql 'files))
object value)
(let ((file (multisession--object-file-name object))
(time (current-time)))
@@ -322,14 +321,15 @@ DOC should be a doc string, and ARGS are keywords as applicable to
;; file for somewhat better atomicity.
(let ((coding-system-for-write 'utf-8)
(create-lockfiles nil)
- (temp (make-temp-name file)))
+ (temp (make-temp-name file))
+ (write-region-inhibit-fsync nil))
(write-region (point-min) (point-max) temp nil 'silent)
(set-file-times temp time)
(rename-file temp file t)))
(setf (multisession--cached-sequence object) time
(multisession--cached-value object) value)))
-(cl-defmethod multisession--backend-values ((_type (eql files)))
+(cl-defmethod multisession--backend-values ((_type (eql 'files)))
(mapcar (lambda (file)
(let ((bits (file-name-split file)))
(list (url-unhex-string (car (last bits 2)))
@@ -343,7 +343,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to
(expand-file-name "files" multisession-directory)
"\\.value\\'")))
-(cl-defmethod multisession--backend-delete ((_type (eql files)) object)
+(cl-defmethod multisession--backend-delete ((_type (eql 'files)) object)
(let ((file (multisession--object-file-name object)))
(when (file-exists-p file)
(delete-file file))))