annotate lisp/emacs-lisp/pp.el @ 38588:08a4c6c00af0

(init_from_display_pos): If POS is in an overlay string, deal with the first overlay string having an image `display' property. (try_window_reusing_current_matrix, compute_line_metrics): Fix computation of row's visible height for the case that part of the row is invisible above and part of the row is at the same time invisible below the window.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 27 Jul 2001 15:29:16 +0000
parents b174db545cfd
children abd085bfec0c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13337
84acc3adcd63 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 11730
diff changeset
1 ;;; pp.el --- pretty printer for Emacs Lisp
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13337
diff changeset
2
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3 ;; Copyright (C) 1989, 1993 Free Software Foundation, Inc.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
14224
e47d5fcad4be Comment change.
Erik Naggum <erik@naggum.no>
parents: 14169
diff changeset
5 ;; Author: Randal Schwartz <merlyn@stonehenge.com>
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; it under the terms of the GNU General Public License as published by
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; the Free Software Foundation; either version 2, or (at your option)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; any later version.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU General Public License for more details.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13337
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13337
diff changeset
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13337
diff changeset
22 ;; Boston, MA 02111-1307, USA.
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 23244
diff changeset
24 ;;; Commentary:
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 23244
diff changeset
25
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;; Code:
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 23244
diff changeset
27
21365
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
28 (defgroup pp nil
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
29 "Pretty printer for Emacs Lisp."
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
30 :prefix "pp-"
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
31 :group 'lisp)
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32
21365
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
33 (defcustom pp-escape-newlines t
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
34 "*Value of `print-escape-newlines' used by pp-* functions."
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
35 :type 'boolean
db005054f15d Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20598
diff changeset
36 :group 'pp)
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 (defun pp-to-string (object)
23244
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
39 "Return a string containing the pretty-printed representation of OBJECT.
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
40 OBJECT can be any Lisp object. Quoting characters are used as needed
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
41 to make output that `read' can handle, whenever this is possible."
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 (save-excursion
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 (set-buffer (generate-new-buffer " pp-to-string"))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 (unwind-protect
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 (progn
19147
ec57f19bc39c (pp-to-string): Use emacs-lisp-mode-sytax-table.
Richard M. Stallman <rms@gnu.org>
parents: 16171
diff changeset
46 (lisp-mode-variables nil)
ec57f19bc39c (pp-to-string): Use emacs-lisp-mode-sytax-table.
Richard M. Stallman <rms@gnu.org>
parents: 16171
diff changeset
47 (set-syntax-table emacs-lisp-mode-syntax-table)
20598
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
48 (let ((print-escape-newlines pp-escape-newlines)
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
49 (print-quoted t))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 (prin1 object (current-buffer)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 (goto-char (point-min))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 (while (not (eobp))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; (message "%06d" (- (point-max) (point)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 (cond
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ((condition-case err-var
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 (prog1 t (down-list 1))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 (error nil))
20598
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
58 (save-excursion
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
59 (backward-char 1)
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
60 (skip-chars-backward "'`#^")
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
61 (when (and (not (bobp)) (= ?\ (char-before)))
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
62 (delete-char -1)
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
63 (insert "\n"))))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ((condition-case err-var
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 (prog1 t (up-list 1))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (error nil))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 (while (looking-at "\\s)")
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (forward-char 1))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (delete-region
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (point)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 (progn (skip-chars-forward " \t") (point)))
20598
a61e2395961f (pp-to-string): Greatly simplify by letting the
Andreas Schwab <schwab@suse.de>
parents: 19147
diff changeset
72 (insert ?\n))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 (t (goto-char (point-max)))))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (goto-char (point-min))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 (indent-sexp)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 (buffer-string))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 (kill-buffer (current-buffer)))))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78
10329
aa393c4b380c Add autoload cookies.
Noah Friedman <friedman@splode.com>
parents: 8544
diff changeset
79 ;;;###autoload
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 (defun pp (object &optional stream)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 "Output the pretty-printed representation of OBJECT, any Lisp object.
23244
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
82 Quoting characters are printed as needed to make output that `read'
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 can handle, whenever this is possible.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 Output stream is STREAM, or value of `standard-output' (which see)."
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (princ (pp-to-string object) (or stream standard-output)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86
10329
aa393c4b380c Add autoload cookies.
Noah Friedman <friedman@splode.com>
parents: 8544
diff changeset
87 ;;;###autoload
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 (defun pp-eval-expression (expression)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 "Evaluate EXPRESSION and pretty-print value into a new display buffer.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 If the pretty-printed value fits on one line, the message line is used
23244
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
91 instead. The value is also consed onto the front of the list
67e80974136e Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 21365
diff changeset
92 in the variable `values'."
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (interactive "xPp-eval: ")
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (setq values (cons (eval expression) values))
11730
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
95 (let* ((old-show-function temp-buffer-show-function)
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
96 ;; Use this function to display the buffer.
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
97 ;; This function either decides not to display it at all
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
98 ;; or displays it in the usual way.
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
99 (temp-buffer-show-function
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (function
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 (lambda (buf)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 (save-excursion
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 (set-buffer buf)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (goto-char (point-min))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (end-of-line 1)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 (if (or (< (1+ (point)) (point-max))
14225
ec298b8bee29 (pp-eval-expression): Use `frame-width' instead of `screen-width'.
Erik Naggum <erik@naggum.no>
parents: 14224
diff changeset
107 (>= (- (point) (point-min)) (frame-width)))
11730
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
108 (let ((temp-buffer-show-function old-show-function)
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
109 (old-selected (selected-window))
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
110 (window (display-buffer buf)))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 (goto-char (point-min)) ; expected by some hooks ...
11730
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
112 (make-frame-visible (window-frame window))
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
113 (unwind-protect
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
114 (progn
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
115 (select-window window)
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
116 (run-hooks 'temp-buffer-show-hook))
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
117 (select-window old-selected)))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (message "%s" (buffer-substring (point-min) (point)))
11730
084c36d46615 (pp-eval-expression): Update use of temp-buffer-show-function.
Richard M. Stallman <rms@gnu.org>
parents: 10732
diff changeset
119 ))))))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (with-output-to-temp-buffer "*Pp Eval Output*"
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 (pp (car values)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (save-excursion
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 (set-buffer "*Pp Eval Output*")
16171
919ed1778c0b (pp-eval-expression): Set font-lock-default locally to nil.
Richard M. Stallman <rms@gnu.org>
parents: 15446
diff changeset
124 (emacs-lisp-mode)
919ed1778c0b (pp-eval-expression): Set font-lock-default locally to nil.
Richard M. Stallman <rms@gnu.org>
parents: 15446
diff changeset
125 (make-local-variable 'font-lock-verbose)
919ed1778c0b (pp-eval-expression): Set font-lock-default locally to nil.
Richard M. Stallman <rms@gnu.org>
parents: 15446
diff changeset
126 (setq font-lock-verbose nil))))
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127
10329
aa393c4b380c Add autoload cookies.
Noah Friedman <friedman@splode.com>
parents: 8544
diff changeset
128 ;;;###autoload
8544
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 (defun pp-eval-last-sexp (arg)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 "Run `pp-eval-expression' on sexp before point (which see).
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 With argument, pretty-print output into current buffer.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 Ignores leading comment characters."
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 (interactive "P")
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 (let ((stab (syntax-table)) (pt (point)) start exp)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 (set-syntax-table emacs-lisp-mode-syntax-table)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 (save-excursion
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (forward-sexp -1)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 ;; If first line is commented, ignore all leading comments:
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 (if (save-excursion (beginning-of-line) (looking-at "[ \t]*;"))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 (progn
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 (setq exp (buffer-substring (point) pt))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 (while (string-match "\n[ \t]*;+" exp start)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 (setq start (1+ (match-beginning 0))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 exp (concat (substring exp 0 start)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 (substring exp (match-end 0)))))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146 (setq exp (read exp)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 (setq exp (read (current-buffer)))))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 (set-syntax-table stab)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 (if arg
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 (insert (pp-to-string (eval exp)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 (pp-eval-expression exp))))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153 ;;; Test cases for quote
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 ;; (pp-eval-expression ''(quote quote))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 ;; (pp-eval-expression ''((quote a) (quote b)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156 ;; (pp-eval-expression ''('a 'b)) ; same as above
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157 ;; (pp-eval-expression ''((quote (quote quote)) (quote quote)))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 ;; These do not satisfy the quote test.
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 ;; (pp-eval-expression ''quote)
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 ;; (pp-eval-expression ''(quote))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 ;; (pp-eval-expression ''(quote . quote))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 ;; (pp-eval-expression ''(quote a b))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 ;; (pp-eval-expression ''(quotefoo))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 ;; (pp-eval-expression ''(a b))
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 (provide 'pp) ; so (require 'pp) works
dc4a53a05b98 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 23244
diff changeset
168 ;;; pp.el ends here