]> git.eshelyaron.com Git - emacs.git/commitdiff
pp-fill: Fix tests breakage
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 17 Jun 2023 22:05:33 +0000 (18:05 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 17 Jun 2023 22:05:33 +0000 (18:05 -0400)
* lisp/emacs-lisp/pp.el (pp-to-string, pp-buffer, pp): Preserve old
behavior of (almost always) returning a trailing newline.

* test/lisp/emacs-lisp/pp-tests.el (pp-print-quote): Adjust tests, now
that `pp-to-string` always returns a trailing newline, rather than only
most of the time.

* test/lisp/emacs-lisp/backtrace-tests.el
(backtrace-tests--single-and-multi-line): Make the test less sensitive
to the choice of what is "pretty".

lisp/emacs-lisp/pp.el
test/lisp/emacs-lisp/backtrace-tests.el
test/lisp/emacs-lisp/pp-tests.el

index 88ce5cb3ee8041089d743ac2979a7c687a378eae..625fc5f252d2ddd5a408270ffb2db4e1bdcfc0d9 100644 (file)
@@ -142,6 +142,8 @@ Optional argument PP-FUNCTION overrides `pp-default-function'."
     (lisp-mode-variables nil)
     (set-syntax-table emacs-lisp-mode-syntax-table)
     (funcall (or pp-function pp-default-function) object)
+    ;; Preserve old behavior of (usually) finishing with a newline.
+    (unless (bolp) (insert "\n"))
     (buffer-string)))
 
 (defun pp--within-fill-column-p ()
@@ -236,7 +238,12 @@ it inserts and pretty-prints that arg at point."
 (defun pp-buffer ()
   "Prettify the current buffer with printed representation of a Lisp object."
   (interactive)
-  (funcall pp-default-function (point-min) (point-max)))
+  (funcall pp-default-function (point-min) (point-max))
+  ;; Preserve old behavior of (usually) finishing with a newline and
+  ;; with point at BOB.
+  (goto-char (point-max))
+  (unless (bolp) (insert "\n"))
+  (goto-char (point-min)))
 
 (defun pp-28 (beg &optional end)        ;FIXME: Better name?
   "Prettify the current region with printed representation of a Lisp object.
@@ -283,7 +290,9 @@ Output stream is STREAM, or value of `standard-output' (which see)."
          (eq (syntax-table) emacs-lisp-mode-syntax-table)
          (eq indent-line-function #'lisp-indent-line))
     ;; Skip the buffer->string->buffer middle man.
-    (funcall pp-default-function object))
+    (funcall pp-default-function object)
+    ;; Preserve old behavior of (usually) finishing with a newline.
+    (unless (bolp) (insert "\n")))
    (t
     (princ (pp-to-string object) (or stream standard-output)))))
 
index 794488edae8dc9fb98b6edb0ff6638e29cca14da..e5899446ee4279838efbb36036f8f41320cafaf7 100644 (file)
   "Forms in backtrace frames can be on a single line or on multiple lines."
   (ert-with-test-buffer (:name "single-multi-line")
     (let* ((arg '(lambda (x)  ; Quote this so it isn't made into a closure.
+                   ;; Make the form long enough so `number' should not
+                   ;; appear on the first line once pretty-printed.
+                   (interactive (region-beginning))
                    (let ((number (1+ x)))
                      (+ x number))))
            (header-string "Test header: ")
@@ -280,7 +283,8 @@ line contains the strings \"lambda\" and \"number\"."
   ;; Verify that the form is now back on one line,
   ;; and that point is at the same place.
   (should (string= (backtrace-tests--get-substring
-                    (- (point) 6) (point)) "number"))
+                    (- (point) 6) (point))
+                   "number"))
   (should-not (= (point) (pos-bol)))
   (should (string= (backtrace-tests--get-substring
                     (pos-bol) (1+ (pos-eol)))
index 72c7cb880d26a1c55e808bef04601c00860ae65b..1b248e19a315ccda252ccd78c114ea716164a621 100644 (file)
@@ -23,8 +23,8 @@
 (require 'ert-x)
 
 (ert-deftest pp-print-quote ()
-  (should (string= (pp-to-string 'quote) "quote"))
-  (should (string= (pp-to-string ''quote) "'quote"))
+  (should (string= (pp-to-string 'quote) "quote\n"))
+  (should (string= (pp-to-string ''quote) "'quote\n"))
   (should (string= (pp-to-string '('a 'b)) "('a 'b)\n"))
   (should (string= (pp-to-string '(''quote 'quote)) "(''quote 'quote)\n"))
   (should (string= (pp-to-string '(quote)) "(quote)\n"))