summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Optimize tail recursive calls while byte compiling.feature/byte-tail-recursionVibhav Pant2017-02-242-8/+112
| | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-stack-adjustment) (byte-optimize-conv-return-goto), (byte-optimize-copy-ops), (byte-optimize-called-function), (byte-optimize-lapcode-tail-recursion): New functions. * lisp/emacs-lisp/bytecomp.el: Add variables b-c-current-{defun, arglist}. (byte-compile-file-form-defmumble), (byte-compile): Set them. (byte-compile-out-toplevel): Use byte-optimize-lapcode-tail-recursion.
* Use cl-print for Edebug and EIEIOStefan Monnier2017-02-233-66/+49
| | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-prin1-to-string): Use cl-print. (edebug-prin1, edebug-print): Remove. * lisp/emacs-lisp/eieio.el (object-print): Declare obsolete. (cl-print-object): Add a method for EIEIO objects. (eieio-edebug-prin1-to-string): Delete. (edebug-prin1-to-string): Don't advise any more. * lisp/emacs-lisp/eieio-datadebug.el (data-debug-insert-object-button): Replace `object-print' -> `cl-prin1-to-string'.
* Fix left over uses of `call-next-method'Stefan Monnier2017-02-232-12/+13
| | | | | * lisp/cedet/semantic/db-global.el (object-print): * lisp/cedet/semantic/db.el (object-print): Use `cl-call-next-method'.
* Minor redisplay optimisationsStefan Monnier2017-02-232-10/+11
| | | | | | | | * src/frame.c (Ficonify_frame): No need to redisplay everything. * src/xdisp.c (overlay_arrows_changed_p): Add `set_redisplay' argument. (redisplay_internal): Use it to avoid redisplaying everything. (try_window_id): Use it keep the same behavior as before.
* * lisp/emacs-lisp/cl-print.el: New fileStefan Monnier2017-02-234-15/+271
| | | | | | | | | | * 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.
* Make calc's least common multiple positive (bug#25255)Peder O. Klingenberg2017-02-232-3/+3
| | | | | * lisp/calc/calc-comb.el (calcFunc-lcm): Return absolute value. * doc/misc/calc.texi (Combinatorial Functions): Update for the above.
* Support read syntax for circular objects in Edebug (Bug#23660)Gemini Lasswell2017-02-232-17/+55
| | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-read-special): New name for edebug-read-function. Handle the read syntax for circular objects. (edebug-read-objects): New variable. (edebug-read-and-maybe-wrap-form1): Reset edebug-read-objects. * src/lread.c (Fsubstitute_object_in_subtree): Make substitute_object_in_subtree into a Lisp primitive.
* Add Conference to the list of valid bibtex entry typesLixin Chin2017-02-231-1/+15
| | | | | | | * lisp/textmodes/bibtex.el (bibtex-BibTeX-entry-alist): Add Conference as a duplicate of InProceedings. (Bug#25143) Copyright-paperwork-exempt: yes
* * lisp/comint.el (comint-password-prompt-regexp): Add SUDO. (Bug#24817)Glenn Morris2017-02-231-1/+1
|
* Small dunnet score file improvementsGlenn Morris2017-02-231-6/+11
| | | | | * lisp/play/dunnet.el (dun-log-file): Switch to per-user default. (dun-do-logfile): Handle non-existing score file.
* * lisp/play/dunnet.el (dun-help): Doc fix.Glenn Morris2017-02-231-1/+1
|
* Declare dun-line and dun-line-listMark Oteiza2017-02-231-24/+27
| | | | | | | | Previously, there were free variables 'line' and 'line-list'. * lisp/play/dunnet.el (dun-line, dun-line-list): New variables. (dun-press, dun-vparse, dun-parse2, dun-unix-parse, dun-batch-parse): (dun-batch-parse2, dun-batch-loop, dun-batch-dos-interface): (dun-batch-unix-interface): Use them.
* Merge from gnulibPaul Eggert2017-02-235-20/+61
| | | | | | | | | | | This incorporates: 2017-02-16 xbinary-io: rename from xsetmode 2017-02-15 xsetmode: new module * lib-src/etags.c (main): * lib-src/hexl.c (main): * src/emacs.c (main) [MSDOS]: Prefer set_binary_mode to the obsolescent SET_BINARY. * lib/binary-io.c, lib/binary-io.h: Copy from gnulib.
* hexl: handle large files and I/O errorsPaul Eggert2017-02-231-135/+95
| | | | | | | | | | | | | | | | * lib-src/hexl.c: Include inttypes.h, for PRIxMAX etc. Do not include ctype.h, as the code no longer uses isdigit. (DEFAULT_GROUPING, un_flag, iso_flag, group_by): Now local to ‘main’. (DEFAULT_BASE, endian): Remove; was not really used. (usage): Remove; now done by ‘main’, as that’s simpler. (progname): Now static. (output_error, hexchar): New functions. (main): Use them. Simplify. Remove "-oct", "-big-endian", and "-little-endian" options, as they did not work and were not used. Use SET_BINARY only on stdin, and fopen with "rb" otherwise. Use SET_BINARY only once on stdout. Do not assume file offsets fit in ‘long’. If an I/O error occurs, report it and exit with nonzero status.
* Avoid quitting inside a critical section on MS-WindowsEli Zaretskii2017-02-232-0/+51
| | | | | | | | | | * src/w32uniscribe.c (uniscribe_list_family): * src/w32font.c (w32font_list_family, w32font_text_extents) (w32font_list_internal, w32font_match_internal) (list_all_matching_fonts): Prevent quitting while these functions cons lists of fonts, to avoid leaving the critical section taken by the main thread, which will then cause any other thread attempting to enter the critical section to hang. (Bug#25279)
* ; Less error-like font-lock-variable-name-faceTassilo Horn2017-02-221-1/+1
| | | | ; * etc/themes/tsdh-light-theme.el (tsdh-light):
* Use revision-completion-table in vc-retrieve-tagDmitry Gutov2017-02-221-11/+15
| | | | | * lisp/vc/vc.el (vc-retrieve-tag): Use the revision-completion-table command for completion (bug#25710).
* * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add `atom'Stefan Monnier2017-02-211-15/+22
| | | | | | | remove entries whose car can't be returned by type-of. (cl--generic-all-builtin-types): New var. (cl-generic-generalizers): Use it to avoid requiring extra entries in cl--generic-typeof-types.
* Find macro binding for symbol-bound macros too (Bug#6848)Noam Postavsky2017-02-211-2/+3
| | | | | | | | | | | There are 2 ways to bind a macro: with global-set-key or kmacro-bind-to-key. The former binds a key to a symbol, while the latter binds to a lambda. In 2010-03-03 "Fix keyboard macro key lookup (Bug#5481)", `insert-kbd-macro' was fixed to detect the lambda case, but broke the symbol case. * lisp/macros.el (insert-kbd-macro): Also check for bindings of MACRONAME.
* * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Fix last changeStefan Monnier2017-02-211-1/+1
|
* * lisp/isearch.el (lazy-highlight-max-at-a-time): Doc fix (bug#21092).Juri Linkov2017-02-221-1/+1
|
* * lisp/isearch.el (isearch-lazy-highlight): New choice ‘all-windows’.Juri Linkov2017-02-222-4/+13
| | | | | | | | (isearch-lazy-highlight-update): Check it to decide whether to apply overlays only on the selected window. * lisp/follow.el (follow-mode): Set isearch-lazy-highlight to ‘all-windows’. (Bug#17453, bug#21092)
* Minor weak hash table performance tweaksPaul Eggert2017-02-211-5/+3
| | | | | | | | * src/fns.c (make_hash_table): Omit unnecessary assignment to h->next_weak when the hash table is not weak. (copy_hash_table): Put the copy next to the original in the weak_hash_tables list, as this should have better locality when scanning the weak hash tables.
* Use float instead of Lisp_Object for rehash_sizePaul Eggert2017-02-2110-79/+84
| | | | | | | | | | | | | | | | | | * src/alloc.c (purecopy_hash_table): * src/fns.c (maybe_resize_hash_table, Fmake_hash_table): (Fhash_table_rehash_size): * src/lisp.h (struct Lisp_Hash_Table.rehash_size): The rehash_size member of struct Lisp_Hash_Table is now a float, not a Lisp_Object. * src/alloc.c (purecopy_hash_table): Assign members in order. * src/fns.c (make_hash_table): Use EMACS_INT for size and float for rehash_size, instead of Lisp_Object for both. All callers changed. * src/lisp.h (DEFAULT_REHASH_SIZE): Now float, not double, and 1 smaller. * src/print.c (print_object): Simplify by calling Fhash_table_rehash_size and Fhash_table_rehash_threshold. Avoid unnecessary NILP.
* Use ptrdiff_t instead of Lisp_Object for collisionPaul Eggert2017-02-214-103/+106
| | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (purecopy_hash_table): Assign, don’t purecopy. * src/fns.c (set_hash_next_slot, set_hash_index_slot): Hash index arg is now ptrdiff_t index (or -1 if empty), not Lisp_Object integer (or Qnil if empty). All callers changed. (larger_vecalloc): New static function. (larger_vector): Use it. (HASH_NEXT, HASH_INDEX): Move here from lisp.h. Return ptrdiff_t index (or -1) not Lisp_Object integer (or Qnil). All callers changed. * src/fns.c (make_hash_table, maybe_resize_hash_table, hash_lookup) (hash_put, hash_remove_from_table, hash_clear, sweep_weak_table): * src/profiler.c (evict_lower_half, record_backtrace): -1, not nil, is now the convention for end of collision list. * src/fns.c (maybe_resize_hash_table): Avoid double-initialization of the free list. Reallocate H->next last, in case other reallocations exhaust memory. * src/lisp.h (struct Lisp_Hash_Table): ‘next_free’ is now ptrdiff_t, not Lisp_Object. Adjust commentary for ‘next’ and ‘index’, which no longer contain nil. (HASH_NEXT, HASH_INDEX): Move to src/fns.c.
* Hash table threshold is now float, not doublePaul Eggert2017-02-215-17/+24
| | | | | | | | | | | | | | | Change default from 0.8 to 0.8125 so it fits in float without rounding glitches. * doc/lispref/hash.texi (Creating Hash): * doc/lispref/objects.texi (Hash Table Type): * etc/NEWS: Document change. * src/fns.c (make_hash_table, maybe_resize_hash_table) (Fmake_hash_table): Threshold is now float, not double. Be consistent about how this is rounded. * src/lisp.h (struct Lisp_Hash_Table.rehash_threshold): Change back to float, now that the other code rounds consistently. (DEFAULT_REHASH_THRESHOLD): Now float 0.8125 instead of double 0.8.
* Avoid flicker in lazy-highlight by doing all updates without redisplay.Juri Linkov2017-02-221-11/+17
| | | | | | | | | | | | | * lisp/isearch.el (lazy-highlight-max-at-a-time): Change default value from 20 to nil to not trigger redisplay between updating iterations. (lazy-highlight-cleanup): New arg ‘procrastinate’ to not remove overlays when non-nil. (isearch-lazy-highlight-new-loop): Call lazy-highlight-cleanup with non-nil second arg when the search string is not empty. Run timer with isearch-lazy-highlight-start instead of isearch-lazy-highlight-update. (isearch-lazy-highlight-start): New function. (Bug#25751)
* ; * lisp/custom.el: Comments.Glenn Morris2017-02-211-2/+9
|
* * lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgenericStefan Monnier2017-02-212-5/+2
| | | | * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.
* * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplicationStefan Monnier2017-02-211-1/+14
| | | | | which resulted in incomplete list of parents in one copy of the cl-structure-class class.
* Tweak recent custom-reevaluate-setting changeGlenn Morris2017-02-211-11/+7
| | | | | * lisp/custom.el (custom-reevaluate-setting): Tweak previous change to avoid font-lock init issues.
* Ensure delayed-init custom variables get marked specialGlenn Morris2017-02-201-3/+11
| | | | | * lisp/custom.el (custom-reevaluate-setting): If the variable has never been set, defvar it. (Bug#25770)
* ; Add a new TODO itemGlenn Morris2017-02-202-1/+12
| | | | | * etc/TODO: Add a new entry for :set-after. * lisp/startup.el: Related comment.
* Turn on lexical-binding in dunnet.elMark Oteiza2017-02-201-2/+2
| | | | | * lisp/play/dunnet.el: Turn on lexical-binding. Re-instate lexical byte compile warnings.
* Make dunnet insertion functions n-aryMark Oteiza2017-02-201-66/+44
| | | | | | | | | | * lisp/play/dunnet.el (dun-mprinc, dun-mprincl, dun-minsert): (dun-minsertl, dun-batch-mprinc, dun-batch-mprincl): Change to accept any number of arguments. (dun-parse, dun-describe-room, dun-quit, dun-inven, dun-shake): (dun-take, dun-go, dun-move, dun-press, dun-score): (dun-compile-save-out, dun-do-logfile): Collect arguments from multiple insertion calls into less calls with more args.
* message-goto-body-1: Fix regexp so as not to match multi-lineKatsumi Yamaoka2017-02-211-1/+1
| | | | | * lisp/gnus/message.el (message-goto-body-1): Fix regexp so as not to match multi-line.
* Simplify cl-get using `plist-member'Noam Postavsky2017-02-202-20/+46
| | | | | | * lisp/emacs-lisp/cl-extra.el (cl-get, cl-getf, cl--set-getf): Use `plist-member' instead of explicit loop. * test/lisp/emacs-lisp/cl-extra-tests.el: New tests.
* Verify xwidget USE_LSB_TAG assumptionPaul Eggert2017-02-201-0/+2
| | | | | * src/xwidget.c (Fxwidget_webkit_execute_script): Add verification. Problem reported by Andreas Schwab (Bug#25816#8).
* * src/insdel.c (make_gap): Improve comment.Stefan Monnier2017-02-201-1/+3
|
* Do not use switch-to-buffer for working in a temp bufferMark Oteiza2017-02-201-106/+83
| | | | | | | * lisp/play/dunnet.el (dunnet): Use pop-to-buffer-same-window instead, cf. Bug#22244. (dun-load-d, dun-eval, dun-save-game, dun-do-logfile): Use with-temp-buffer instead.
* Make dun-room-shorts a defconstMark Oteiza2017-02-201-24/+11
| | | | | | * lisp/play/dunnet.el (dun-room-shorts): Make defconst and collect initial value into the declaration. (dun-space-to-hyphen): Remove.
* Port xwidget to -DCHECK_LISP_OBJECT_TYPEPaul Eggert2017-02-201-5/+12
| | | | | | | * src/xwidget.c (webkit_javascript_finished_cb) (Fxwidget_webkit_execute_script): Don't assume Lisp_Object is an integer. This fix is just a hack; I’ll file a bug report about the underlying problem.
* ; * src/insdel.c: State file encoding explicitly.Eli Zaretskii2017-02-201-1/+1
|
* mm-decode.el: Simplify regexp used to search html meta tagKatsumi Yamaoka2017-02-201-14/+11
| | | | | * lisp/gnus/mm-decode.el (mm-add-meta-html-tag, mm-shr): Simplify regexp used to search html meta tag.
* mm-shr: Ignore coding-system `ascii'Katsumi Yamaoka2017-02-201-2/+3
| | | | * lisp/gnus/mm-decode.el (mm-shr): Ignore coding-system `ascii'.
* vc-log-outgoing fixes for git; add binding to vc-dirTom Tromey2017-02-193-7/+8
| | | | | | | | | | * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind "O" to vc-log-outgoing. * lisp/vc/vc-git.el (vc-git-log-outgoing, vc-git-log-incoming): Use async execution. (vc-git-log-view-mode): Also truncate lines for log-outgoing and log-incoming. * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Don't pass nil as remote-location argument.
* Remove stale comments from vc-git and vc-hgTom Tromey2017-02-192-5/+2
| | | | | * lisp/vc/vc-git.el (vc-git-retrieve-tag): Remove comment. * lisp/vc/vc-hg.el (vc-hg-retrieve-tag): Remove comment.
* Remove member cloneMark Oteiza2017-02-191-11/+1
| | | | | * lisp/play/dunnet.el (dun-answer): Use member instead. (dun-members): Remove.
* Prefix global varMark Oteiza2017-02-191-12/+13
| | | | | | * lisp/play/dunnet.el (room): Rename to dun-room. (dun-messages, dunnet, dun-describe-room, dun-drop, dun-move): (dun-restore, dun-do-logfile, dun-batch-loop): Use new name.
* Replace nested ifs with condMark Oteiza2017-02-191-300/+252
| | | | | | | | | | * lisp/play/dunnet.el (dun-messages, dun-describe-room, dun-examine): (dun-eat, dun-put-objs, dun-turn, dun-press, dun-ls, dun-cd): Use when and cond where appropriate. (dun-sauna-heat): Accept sauna level as an argument. Use cond. (dun-take): Use null and dun-mprincl. (dun-inven-weight, dun-load-d): Reformat. (dun-remove-obj-from-inven, dun-remove-obj-from-room): Nix setq to nil.