summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-print.el
Commit message (Collapse)AuthorAgeFilesLines
* Merge from origin/emacs-26Paul Eggert2018-12-311-1/+1
|\ | | | | | | | | | | 2fcf2df Fix copyright years by hand 26bed8b Update copyright year to 2019 2814292 Fix value of default frame height. (Bug#33921)
| * Update copyright year to 2019Paul Eggert2019-01-011-1/+1
| | | | | | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* | Add new command to expand all "..."s in a backtrace frameGemini Lasswell2018-08-031-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/debugging.texi (Backtraces): Document new keybinding. * lisp/emacs-lisp/backtrace.el (backtrace-line-length): Add the option of unlimited line length. (backtrace--match-ellipsis-in-string): Add a comment to explain why this function is necessary. (backtrace-mode-map): Add keybinding for 'backtrace-expand-ellipses'. (backtrace-expand-ellipsis): Use 'cl-print-to-string-with-limit'. (backtrace-expand-ellipses): New command. (backtrace-print-to-string): Use 'cl-print-to-string-with-limit'. Tag the printed forms with a gensym instead of the values of print-length and print-level. (backtrace--print): Add 'stream' argument. * test/lisp/emacs-lisp/backtrace-tests.el (backtrace-tests--expand-ellipsis): Make the test less dependent on the implementation. (backtrace-tests--expand-ellipses): New test. Move the fitting of a printed representation into a limited number of characters using appropriate values of print-level and print-length from 'backtrace-print-to-string' to cl-print.el for future use by other parts of Emacs. * lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit): New function. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-print-to-string-with-limit): New test.
* | Add methods for strings to cl-printGemini Lasswell2018-08-031-2/+100
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object) <string>: New method. (cl-print-object-contents) <string>: New method. (cl-print--find-sharing): Look in string property lists. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-3): Test printing of long strings. (cl-print-tests-4): Test printing of strings nested in other objects. (cl-print-tests-strings, cl-print-tests-ellipsis-string): New tests.
* | Support ellipsis expansion in cl-printGemini Lasswell2018-08-031-21/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object-contents): New generic method. (cl-print-object-contents) <cons, vector,cl-structure-object>: New methods. (cl-print-object) <cons>: Use cl-print-insert-ellipsis. (cl-print-object) <vector, cl-structure-object>: Elide whole object if print-level exceeded. Use cl-print-insert-ellipsis. (cl-print-insert-ellipsis, cl-print-propertize-ellipsis) (cl-print-expand-ellipsis): New functions. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-4): Test printing of objects nested in other objects. (cl-print-tests-strings, cl-print-tests-ellipsis-cons) (cl-print-tests-ellipsis-vector, cl-print-tests-ellipsis-struct) (cl-print-tests-ellipsis-circular): New tests. (cl-print-tests-check-ellipsis-expansion) (cl-print-tests-check-ellipsis-expansion-rx): New functions.
* | 0x%x → %#x in elisp formatsPaul Eggert2018-07-231-2/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object): * lisp/profiler.el (profiler-format-entry): * lisp/progmodes/hideif.el (hif-evaluate-macro): Prefer %#x to 0x%x in elisp formats when formatting arbitrary integers, as it’ll produce more-readable output with negative args should we change how negative values are printed with %x.
* | Merge from emacs-26Noam Postavsky2018-06-101-2/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3434edc731 Enlarge DUMPED_HEAP_SIZE for 64-bit Windows builds 36bbdfc017 Update Unicode data files to version 11.0.0 of Unicode b7b7a5f4f3 * etc/NEWS: Belatedly call out vc-hg changes in v26.1. (B... 5b6f8b54d1 Clarify the documentation of 'dired-recursive-deletes' 9db97b49cd ; * etc/DEBUG: Add information about debugging libXft prob... 0214ffbe60 Clarify doc string of 'update-glyphless-char-display' ef35d405b1 Clarify subtle issues with 'eq' in byte-compiled code c6ef3c8321 Make cl-print respect print-quoted (bug#31649) 26b52ac40e Fix unexpected jumps of window-point in 'set-window-config... 4af077ab4d * etc/emacs.appdata.xml: Update Emacs screenshot. e5ab25deae Fix cursor movement by 'next-logical-line' after 'next-line' d20beef5f1 Fix prompt in bookmark.el (Bug#24726) c57e7eaae8 Improve documentation of 'empty' whitespace-style # Conflicts: # etc/NEWS
| * Make cl-print respect print-quoted (bug#31649)Gemini Lasswell2018-06-071-2/+7
| | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Observe print-quoted when printing quote and its relatives. Add printing of 'function' as #'.
| * Make cl-print respect print-level and print-length (bug#31559)Gemini Lasswell2018-06-041-47/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print--depth): New variable. (cl-print-object) <cons>: Print ellipsis if printing depth greater than 'print-level' or length of list greater than 'print-length'. (cl-print-object) <vector>: Truncate printing with ellipsis if vector is longer than 'print-length'. (cl-print-object) <cl-structure-object>: Truncate printing with ellipsis if structure has more slots than 'print-length'. (cl-print-object) <:around>: Bind 'cl-print--depth'. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-3, cl-print-tests-4): New tests. (cherry picked from commit 0f48d18fd2a30f29cc3592a835d2a2254c9b0afb)
| * Fix cl-print for circular sublists (Bug#31146)Noam Postavsky2018-06-031-3/+6
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Push each element of list being printed onto cl-print--currently-printing. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle-2): New test. (cherry picked from commit b8aa7ecf54c9b164a59f1b0e9f9fe90531dadd20)
* | Make cl-print respect print-level and print-length (bug#31559)Gemini Lasswell2018-05-271-47/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print--depth): New variable. (cl-print-object) <cons>: Print ellipsis if printing depth greater than 'print-level' or length of list greater than 'print-length'. (cl-print-object) <vector>: Truncate printing with ellipsis if vector is longer than 'print-length'. (cl-print-object) <cl-structure-object>: Truncate printing with ellipsis if structure has more slots than 'print-length'. (cl-print-object) <:around>: Bind 'cl-print--depth'. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-3, cl-print-tests-4): New tests.
* | Fix cl-print for circular sublists (Bug#31146)Noam Postavsky2018-04-261-3/+6
| | | | | | | | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Push each element of list being printed onto cl-print--currently-printing. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle-2): New test.
* | Merge from origin/emacs-26Paul Eggert2018-01-011-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63b04c11d5 Fix copyright years by hand 5c7dd8a783 Update copyright year to 2018 220a9ecba1 Merge from Gnulib 312c565566 Don't add empty keyboard macro to macro ring (Bug#24992) 39ca289a7a Allow customization of decoding of "man" command f8240815ea * etc/NEWS: Add security consideration note on passphrase ... 0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ... acd289c5a4 Fix problems with indexing in User manual b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh... e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846 81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ... 7175496d7a Fix doc string of 'enable-recursive-minibuffers' 5b38406491 Fix documentation of delsel and of killing text # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex
| * Update copyright year to 2018Paul Eggert2018-01-011-1/+1
| | | | | | | | Run admin/update-copyright.
* | * lisp/subr.el (backtrace--print-frame): Use cl-prin1Stefan Monnier2017-12-121-6/+7
|/ | | | | * lisp/emacs-lisp/cl-print.el (cl-prin1): Catch errors, since callers generally don't expect errors.
* ; * lisp/emacs-lisp/cl-print.el (cl-prin1): Whitespace fix.Glenn Morris2017-10-021-1/+1
|
* Prefer HTTPS to FTP and HTTP in documentationPaul Eggert2017-09-131-1/+1
| | | | | | | | | | | | | Most of this change is to boilerplate commentary such as license URLs. This change was prompted by ftp://ftp.gnu.org's going-away party, planned for November. Change these FTP URLs to https://ftp.gnu.org instead. Make similar changes for URLs to other organizations moving away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and fsf.org when this works, as this will further help defend against man-in-the-middle attacks (for this part I omitted the MS-DOS and MS-Windows sources and the test tarballs to keep the workload down). HTTPS is not fully working to lists.gnu.org so I left those URLs alone for now.
* Add cl-print method for hash tablesMark Oteiza2017-09-111-0/+10
| | | | * lisp/emacs-lisp/cl-print.el (cl-print-object): New method.
* Add docstrings to cl-print entry pointsMark Oteiza2017-09-111-1/+8
| | | | | * lisp/emacs-lisp/cl-print.el (cl-print-compiled): Fix docstring. (cl-prin1, cl-prin1-to-string): Add docstrings.
* ; Fix previous commitMark Oteiza2017-09-111-1/+1
| | | | | The printer otherwise includes the 0x prefix. * lisp/emacs-lisp/cl-print.el: Add 0x to format.
* Include sxhash of object with printed bytecodeMark Oteiza2017-09-111-1/+1
| | | | | | | | This printing, while succint, is rather opaque. At least give an immediate clue of whether different byte code printouts are for the same or different byte code objects. * lisp/emacs-lisp/cl-print.el (cl-print-object): Add object sxhash to printed token "#<bytecode>".
* * lisp/emacs-lisp/cl-print.el (cl-print-compiled-button): t by default.Noam Postavsky2017-07-021-1/+1
| | | | | | * lisp/emacs-lisp/debug.el (debugger-insert-backtrace): * lisp/help-fns.el (describe-variable): No need to let-bind `cl-print-compiled-button' to t anymore.
* Don't redundantly cl-print arglist in function docstring againNoam Postavsky2017-06-291-4/+5
| | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print-object): Don't print arglist part of docstring. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Update test accordingly.
* Buttonize #<bytecode> part of printed functions (Bug#25226)Noam Postavsky2017-06-121-4/+29
| | | | | | | | * lisp/emacs-lisp/cl-print.el: Autoload `disassemble-1'. (cl-print-compiled-button): New variable. (help-byte-code): New button type, calls `disassemble' in its action. (cl-print-object): Use it if `cl-print-compiled-button' is non-nil.
* cl-print: handle circular objects when `print-circle' is nil (Bug#27117)Noam Postavsky2017-05-311-11/+24
| | | | | | | | * lisp/emacs-lisp/cl-print.el (cl-print--currently-printing): New variable. (cl-print-object): When `print-circle' is nil, bind it to a list of objects that are currently printing to avoid printing the same object endlessly. * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle): New test.
* Make cl-defstruct use records.Lars Brinkhoff2017-04-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--describe-class) (cl--describe-class-slots): Use the new `type-of'. * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Use type-of. (cl--generic-struct-specializers): Adjust to new tag. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): When type is nil, use records. Use the type symbol as the tag. Use copy-record to copy structs. (cl--defstruct-predicate): New function. (cl--pcase-mutually-exclusive-p): Use it. (cl-struct-sequence-type): Can now return `record'. * lisp/emacs-lisp/cl-preloaded.el (cl--make-slot-desc): Adjust ad-hoc code to new format. (cl--struct-register-child): Work with records. (cl-struct-define): Don't touch the tag's symbol-value and symbol-function slots when we use the type as tag. * lisp/emacs-lisp/cl-print.el (cl-print-object): Adjust to new tag. * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record): New test. * doc/lispref/records.texi, doc/misc/cl.texi: Update for records.
* * lisp/emacs-lisp/cl-print.el (cl-print-compiled): New variableStefan Monnier2017-03-121-2/+36
| | | | | (cl-print-object) <compiled-function>: Print the docstring and interactive form. Obey cl-print-compiled.
* * lisp/emacs-lisp/cl-print.el (cl-print-object): Use #f(..) for functions.Stefan Monnier2017-03-071-4/+5
|
* ; Spelling fixesPaul Eggert2017-03-051-1/+1
|
* * lisp/emacs-lisp/cl-print.el: New fileStefan Monnier2017-02-231-0/+196
* lisp/emacs-lisp/nadvice.el (advice--where): New function. (advice--make-docstring): Use it. * src/print.c (print_number_index): Don't declare here any more. (Fprint_preprocess): New function. * test/lisp/emacs-lisp/cl-print-tests.el: New file.