/[emacs]/emacs/lisp/emacs-lisp/pp.el
ViewVC logotype

Diff of /emacs/lisp/emacs-lisp/pp.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.18.4.3 by miles, Thu Apr 1 04:29:04 2004 UTC revision 1.18.4.4 by miles, Tue Jul 6 09:31:51 2004 UTC
# Line 50  to make output that `read' can handle, w Line 50  to make output that `read' can handle, w
50            (let ((print-escape-newlines pp-escape-newlines)            (let ((print-escape-newlines pp-escape-newlines)
51                  (print-quoted t))                  (print-quoted t))
52              (prin1 object (current-buffer)))              (prin1 object (current-buffer)))
53            (goto-char (point-min))            (pp-buffer)
           (while (not (eobp))  
             ;; (message "%06d" (- (point-max) (point)))  
             (cond  
              ((condition-case err-var  
                   (prog1 t (down-list 1))  
                 (error nil))  
               (save-excursion  
                 (backward-char 1)  
                 (skip-chars-backward "'`#^")  
                 (when (and (not (bobp)) (= ?\ (char-before)))  
                   (delete-char -1)  
                   (insert "\n"))))  
              ((condition-case err-var  
                   (prog1 t (up-list 1))  
                 (error nil))  
               (while (looking-at "\\s)")  
                 (forward-char 1))  
               (delete-region  
                (point)  
                (progn (skip-chars-forward " \t") (point)))  
               (insert ?\n))  
              (t (goto-char (point-max)))))  
           (goto-char (point-min))  
           (indent-sexp)  
54            (buffer-string))            (buffer-string))
55        (kill-buffer (current-buffer)))))        (kill-buffer (current-buffer)))))
56    
57    (defun pp-buffer ()
58      "Prettify the current buffer with printed representation of a Lisp object."
59      (goto-char (point-min))
60      (while (not (eobp))
61        ;; (message "%06d" (- (point-max) (point)))
62        (cond
63         ((condition-case err-var
64              (prog1 t (down-list 1))
65            (error nil))
66          (save-excursion
67            (backward-char 1)
68            (skip-chars-backward "'`#^")
69            (when (and (not (bobp)) (memq (char-before) '(?\ ?\t ?\n)))
70              (delete-region
71               (point)
72               (progn (skip-chars-backward " \t\n") (point)))
73              (insert "\n"))))
74         ((condition-case err-var
75              (prog1 t (up-list 1))
76            (error nil))
77          (while (looking-at "\\s)")
78            (forward-char 1))
79          (delete-region
80           (point)
81           (progn (skip-chars-forward " \t\n") (point)))
82          (insert ?\n))
83         (t (goto-char (point-max)))))
84      (goto-char (point-min))
85      (indent-sexp))
86    
87  ;;;###autoload  ;;;###autoload
88  (defun pp (object &optional stream)  (defun pp (object &optional stream)
89    "Output the pretty-printed representation of OBJECT, any Lisp object.    "Output the pretty-printed representation of OBJECT, any Lisp object.

Legend:
Removed from v.1.18.4.3  
changed lines
  Added in v.1.18.4.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26