[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r115616: * lisp/simple.el (eval-expression-print-for
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] trunk r115616: * lisp/simple.el (eval-expression-print-format): Don't check for |
Date: |
Thu, 19 Dec 2013 21:02:53 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 115616
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/12985
committer: Juri Linkov <address@hidden>
branch nick: trunk
timestamp: Thu 2013-12-19 23:02:46 +0200
message:
* lisp/simple.el (eval-expression-print-format): Don't check for
command names and the last command. Always display additional
formats of the integer result in the echo area, and insert them
to the current buffer only with a zero prefix arg.
Display character when char-displayable-p is non-nil.
(eval-expression): With a zero prefix arg, set `print-length' and
`print-level' to nil, and insert the integer values from
`eval-expression-print-format' at the end. Doc fix.
* lisp/emacs-lisp/lisp-mode.el (eval-print-last-sexp): Add arg
`eval-last-sexp-arg-internal'. Doc fix.
(eval-last-sexp-1): Pass arg `eval-last-sexp-arg-internal' to
`eval-last-sexp-print-value'. Doc fix.
(eval-last-sexp-print-value): Add arg `eval-last-sexp-arg-internal'.
Set `print-length' and `print-level' to nil when arg is zero.
(eval-last-sexp): Doc fix.
(eval-defun-2): Print the integer values from
`eval-expression-print-format' at the end.
* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Print the integer
values from `eval-expression-print-format' at the end.
* lisp/ielm.el (ielm-eval-input): Print the integer
values from `eval-expression-print-format' at the end.
modified:
etc/NEWS news-20100311060928-aoit31wvzf25yr1z-1
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/emacs-lisp/edebug.el edebug.el-20091113204419-o5vbwnq5f7feedwu-483
lisp/emacs-lisp/lisp-mode.el lispmode.el-20091113204419-o5vbwnq5f7feedwu-205
lisp/ielm.el ielm.el-20091113204419-o5vbwnq5f7feedwu-770
lisp/simple.el simple.el-20091113204419-o5vbwnq5f7feedwu-403
=== modified file 'etc/NEWS'
--- a/etc/NEWS 2013-12-19 00:29:41 +0000
+++ b/etc/NEWS 2013-12-19 21:02:46 +0000
@@ -119,6 +119,12 @@
** `eval-defun' on an already defined defcustom calls the :set function,
if there is one.
+** A zero prefix arg of `eval-last-sexp' (`C-x C-e'),
+`eval-expression' (`M-:') and `eval-print-last-sexp' (`C-j') inserts
+a list with no limit on its length and level (by using nil values of
+`print-length' and `print-level'), and inserts additional formats for
+integers (octal, hexadecimal, and character).
+
** If the new variable `enable-dir-local-variables' is nil,
directory local variables are ignored. May be useful for some modes
that want to ignore directory-locals while still respecting file-locals.
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2013-12-19 16:25:25 +0000
+++ b/lisp/ChangeLog 2013-12-19 21:02:46 +0000
@@ -1,3 +1,30 @@
+2013-12-19 Juri Linkov <address@hidden>
+
+ * simple.el (eval-expression-print-format): Don't check for
+ command names and the last command. Always display additional
+ formats of the integer result in the echo area, and insert them
+ to the current buffer only with a zero prefix arg.
+ Display character when char-displayable-p is non-nil.
+ (eval-expression): With a zero prefix arg, set `print-length' and
+ `print-level' to nil, and insert the integer values from
+ `eval-expression-print-format' at the end. Doc fix. (Bug#12985)
+
+ * emacs-lisp/lisp-mode.el (eval-print-last-sexp): Add arg
+ `eval-last-sexp-arg-internal'. Doc fix.
+ (eval-last-sexp-1): Pass arg `eval-last-sexp-arg-internal' to
+ `eval-last-sexp-print-value'. Doc fix.
+ (eval-last-sexp-print-value): Add arg `eval-last-sexp-arg-internal'.
+ Set `print-length' and `print-level' to nil when arg is zero.
+ (eval-last-sexp): Doc fix.
+ (eval-defun-2): Print the integer values from
+ `eval-expression-print-format' at the end.
+
+ * emacs-lisp/edebug.el (edebug-eval-defun): Print the integer
+ values from `eval-expression-print-format' at the end.
+
+ * ielm.el (ielm-eval-input): Print the integer
+ values from `eval-expression-print-format' at the end.
+
2013-12-19 Teodor Zlatanov <address@hidden>
* net/eww.el (eww-exit, eww-close, eww-mode-map): Revert change of
=== modified file 'lisp/emacs-lisp/edebug.el'
--- a/lisp/emacs-lisp/edebug.el 2013-08-08 23:14:20 +0000
+++ b/lisp/emacs-lisp/edebug.el 2013-12-19 21:02:46 +0000
@@ -497,7 +497,10 @@
(put (nth 1 form) 'saved-face nil)))))
(setq edebug-result (eval (eval-sexp-add-defvars form) lexical-binding))
(if (not edebugging)
- (princ edebug-result)
+ (prog1
+ (princ edebug-result)
+ (let ((str (eval-expression-print-format edebug-result)))
+ (if str (princ str))))
edebug-result)))
=== modified file 'lisp/emacs-lisp/lisp-mode.el'
--- a/lisp/emacs-lisp/lisp-mode.el 2013-11-05 09:47:47 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el 2013-12-19 21:02:46 +0000
@@ -858,7 +858,7 @@
\\{lisp-interaction-mode-map}"
:abbrev-table nil)
-(defun eval-print-last-sexp ()
+(defun eval-print-last-sexp (&optional eval-last-sexp-arg-internal)
"Evaluate sexp before point; print value into current buffer.
If `eval-expression-debug-on-error' is non-nil, which is the default,
@@ -866,11 +866,13 @@
Note that printing the result is controlled by the variables
`eval-expression-print-length' and `eval-expression-print-level',
-which see."
- (interactive)
+which see. With a zero prefix arg, print output with no limit
+on the length and level of lists, and include additional formats
+for integers (octal, hexadecimal, and character)."
+ (interactive "P")
(let ((standard-output (current-buffer)))
(terpri)
- (eval-last-sexp t)
+ (eval-last-sexp (or eval-last-sexp-arg-internal t))
(terpri)))
@@ -1013,18 +1015,26 @@
(defun eval-last-sexp-1 (eval-last-sexp-arg-internal)
"Evaluate sexp before point; print value in the echo area.
-With argument, print output into current buffer."
+With argument, print output into current buffer.
+With a zero prefix arg, print output with no limit on the length
+and level of lists, and include additional formats for integers
+\(octal, hexadecimal, and character)."
(let ((standard-output (if eval-last-sexp-arg-internal (current-buffer) t)))
;; Setup the lexical environment if lexical-binding is enabled.
(eval-last-sexp-print-value
- (eval (eval-sexp-add-defvars (preceding-sexp)) lexical-binding))))
-
-
-(defun eval-last-sexp-print-value (value)
+ (eval (eval-sexp-add-defvars (preceding-sexp)) lexical-binding)
+ eval-last-sexp-arg-internal)))
+
+
+(defun eval-last-sexp-print-value (value &optional eval-last-sexp-arg-internal)
(let ((unabbreviated (let ((print-length nil) (print-level nil))
(prin1-to-string value)))
- (print-length eval-expression-print-length)
- (print-level eval-expression-print-level)
+ (print-length (and (not (zerop (prefix-numeric-value
+ eval-last-sexp-arg-internal)))
+ eval-expression-print-length))
+ (print-level (and (not (zerop (prefix-numeric-value
+ eval-last-sexp-arg-internal)))
+ eval-expression-print-level))
(beg (point))
end)
(prog1
@@ -1070,6 +1080,9 @@
Interactively, with prefix argument, print output into current buffer.
Truncates long output according to the value of the variables
`eval-expression-print-length' and `eval-expression-print-level'.
+With a zero prefix arg, print output with no limit on the length
+and level of lists, and include additional formats for integers
+\(octal, hexadecimal, and character).
If `eval-expression-debug-on-error' is non-nil, which is the default,
this command arranges for all errors to enter the debugger."
@@ -1167,6 +1180,8 @@
;; will make eval-region return.
(goto-char end)
form))))))
+ (let ((str (eval-expression-print-format (car values))))
+ (if str (princ str)))
;; The result of evaluation has been put onto VALUES. So return it.
(car values))
=== modified file 'lisp/ielm.el'
--- a/lisp/ielm.el 2013-10-18 00:55:15 +0000
+++ b/lisp/ielm.el 2013-12-19 21:02:46 +0000
@@ -458,7 +458,9 @@
;; Self-referential objects cause loops in the printer, so
;; trap quits here. May as well do errors, too
(unless for-effect
- (setq output (concat output (pp-to-string result))))
+ (setq output (concat output (pp-to-string result)
+ (let ((str (eval-expression-print-format
result)))
+ (if str (propertize str 'font-lock-face
'shadow))))))
(error (setq error-type "IELM Error")
(setq result "Error during pretty-printing (bug in pp)"))
(quit (setq error-type "IELM Error")
=== modified file 'lisp/simple.el'
--- a/lisp/simple.el 2013-12-18 02:43:47 +0000
+++ b/lisp/simple.el 2013-12-19 21:02:46 +0000
@@ -1365,13 +1365,12 @@
in addition to the value printed by prin1 in functions which
display the result of expression evaluation."
(if (and (integerp value)
- (or (not (memq this-command '(eval-last-sexp eval-print-last-sexp)))
- (eq this-command last-command)
- (if (boundp 'edebug-active) edebug-active)))
+ (or (eq standard-output t)
+ (zerop (prefix-numeric-value current-prefix-arg))))
(let ((char-string
- (if (or (if (boundp 'edebug-active) edebug-active)
- (memq this-command '(eval-last-sexp eval-print-last-sexp)))
- (prin1-char value))))
+ (if (and (characterp value)
+ (char-displayable-p value))
+ (prin1-char value))))
(if char-string
(format " (#o%o, #x%x, %s)" value value char-string)
(format " (#o%o, #x%x)" value value)))))
@@ -1399,8 +1398,11 @@
Value is also consed on to front of the variable `values'.
Optional argument INSERT-VALUE non-nil (interactively,
with prefix argument) means insert the result into the current buffer
-instead of printing it in the echo area. Truncates long output
-according to the value of the variables `eval-expression-print-length'
+instead of printing it in the echo area. With a zero prefix arg,
+insert the result with no limit on the length and level of lists,
+and include additional formats for integers (octal, hexadecimal,
+and character). Truncates long output according to the value
+of the variables `eval-expression-print-length'
and `eval-expression-print-level'.
If `eval-expression-debug-on-error' is non-nil, which is the default,
@@ -1422,13 +1424,19 @@
(unless (eq old-value new-value)
(setq debug-on-error new-value))))
- (let ((print-length eval-expression-print-length)
- (print-level eval-expression-print-level)
+ (let ((print-length (and (not (zerop (prefix-numeric-value insert-value)))
+ eval-expression-print-length))
+ (print-level (and (not (zerop (prefix-numeric-value insert-value)))
+ eval-expression-print-level))
(deactivate-mark))
(if insert-value
(with-no-warnings
(let ((standard-output (current-buffer)))
- (prin1 (car values))))
+ (prog1
+ (prin1 (car values))
+ (when (zerop (prefix-numeric-value insert-value))
+ (let ((str (eval-expression-print-format (car values))))
+ (if str (princ str)))))))
(prog1
(prin1 (car values) t)
(let ((str (eval-expression-print-format (car values))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r115616: * lisp/simple.el (eval-expression-print-format): Don't check for,
Juri Linkov <=