-(defun pp-eval-last-sexp (arg)
- "Run `pp-eval-expression' on sexp before point (which see).
-With argument, pretty-print output into current buffer.
-Ignores leading comment characters."
- (interactive "P")
+(defun pp-eval-expression (expression)
+ "Evaluate EXPRESSION and pretty-print its value.
+Also add the value to the front of the list in the variable `values'."
+ (interactive
+ (list (read-from-minibuffer "Eval: " nil read-expression-map t
+ 'read-expression-history)))
+ (message "Evaluating...")
+ (setq values (cons (eval expression) values))
+ (pp-display-expression (car values) "*Pp Eval Output*"))
+
+;;;###autoload
+(defun pp-macroexpand-expression (expression)
+ "Macroexpand EXPRESSION and pretty-print its value."
+ (interactive
+ (list (read-from-minibuffer "Macroexpand: " nil read-expression-map t
+ 'read-expression-history)))
+ (pp-display-expression (macroexpand expression) "*Pp Macroexpand Output*"))
+
+(defun pp-last-sexp ()
+ "Read sexp before point. Ignores leading comment characters."