summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2018-11-08 00:27:58 +0200
committerJuri Linkov <juri@linkov.net>2018-11-08 00:27:58 +0200
commitfdbe4035ac7305c2f70274d2133c310c3480e23a (patch)
tree9a4ad0868de6ddc1281d14294663f645cba11156
parent4254caa2d3bc2ebec6513fccce6a3d6303b068ef (diff)
downloademacs-fdbe4035ac7305c2f70274d2133c310c3480e23a.tar.gz
* lisp/files-x.el (modify-dir-local-variable): Use assoc-delete-all
instead of assq-delete-all for cases when mode is a subdirectory name. (dir-locals-to-string): Call pp-to-string and string-trim-right on values. (Bug#32817)
-rw-r--r--lisp/files-x.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/files-x.el b/lisp/files-x.el
index 9af399c87ba..5d87a4ed0c1 100644
--- a/lisp/files-x.el
+++ b/lisp/files-x.el
@@ -30,6 +30,8 @@
;;; Code:
+(eval-when-compile (require 'subr-x)) ; for string-trim-right
+
;;; Commands to add/delete file-local/directory-local variables.
@@ -484,7 +486,7 @@ from the MODE alist ignoring the input argument VALUE."
(if (memq variable '(mode eval))
(cdr mode-assoc)
(assq-delete-all variable (cdr mode-assoc))))))
- (assq-delete-all mode variables)))
+ (assoc-delete-all mode variables)))
(setq variables
(cons `(,mode . ((,variable . ,value)))
variables))))
@@ -513,9 +515,11 @@ from the MODE alist ignoring the input argument VALUE."
(car mode-variables)
(format "(%s)" (mapconcat
(lambda (variable-value)
- (format "(%S . %S)"
+ (format "(%S . %s)"
(car variable-value)
- (cdr variable-value)))
+ (string-trim-right
+ (pp-to-string
+ (cdr variable-value)))))
(cdr mode-variables) "\n"))))
variables "\n")))