]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/files-x.el (modify-dir-local-variable): Use assoc-delete-all
authorJuri Linkov <juri@linkov.net>
Wed, 7 Nov 2018 22:27:58 +0000 (00:27 +0200)
committerJuri Linkov <juri@linkov.net>
Wed, 7 Nov 2018 22:27:58 +0000 (00:27 +0200)
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)

lisp/files-x.el

index 9af399c87ba38f31c53256f8541f9c1022441b64..5d87a4ed0c103acba7e06d181de8d7a39625f44a 100644 (file)
@@ -30,6 +30,8 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'subr-x)) ; for string-trim-right
+
 \f
 ;;; 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")))