]> git.eshelyaron.com Git - emacs.git/log
emacs.git
7 years agoOptimize tail recursive calls while byte compiling. feature/byte-tail-recursion
Vibhav Pant [Fri, 24 Feb 2017 15:20:51 +0000 (20:50 +0530)]
Optimize tail recursive calls while byte compiling.

* 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.

7 years agoUse cl-print for Edebug and EIEIO
Stefan Monnier [Fri, 24 Feb 2017 03:39:53 +0000 (22:39 -0500)]
Use cl-print for Edebug and EIEIO

* 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'.

7 years agoFix left over uses of `call-next-method'
Stefan Monnier [Fri, 24 Feb 2017 02:19:20 +0000 (21:19 -0500)]
Fix left over uses of `call-next-method'

* lisp/cedet/semantic/db-global.el (object-print):
* lisp/cedet/semantic/db.el (object-print): Use `cl-call-next-method'.

7 years agoMinor redisplay optimisations
Stefan Monnier [Fri, 24 Feb 2017 02:17:04 +0000 (21:17 -0500)]
Minor redisplay optimisations

* 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.

7 years ago* lisp/emacs-lisp/cl-print.el: New file
Stefan Monnier [Fri, 24 Feb 2017 02:06:54 +0000 (21:06 -0500)]
* lisp/emacs-lisp/cl-print.el: New file

* 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.

7 years agoMake calc's least common multiple positive (bug#25255)
Peder O. Klingenberg [Fri, 24 Feb 2017 01:27:57 +0000 (20:27 -0500)]
Make calc's least common multiple positive (bug#25255)

* lisp/calc/calc-comb.el (calcFunc-lcm): Return absolute value.
* doc/misc/calc.texi (Combinatorial Functions): Update for the above.

7 years agoSupport read syntax for circular objects in Edebug (Bug#23660)
Gemini Lasswell [Fri, 17 Feb 2017 06:08:03 +0000 (22:08 -0800)]
Support read syntax for circular objects in Edebug (Bug#23660)

* 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.

7 years agoAdd Conference to the list of valid bibtex entry types
Lixin Chin [Fri, 24 Feb 2017 00:04:27 +0000 (19:04 -0500)]
Add Conference to the list of valid bibtex entry types

* lisp/textmodes/bibtex.el (bibtex-BibTeX-entry-alist):
Add Conference as a duplicate of InProceedings.  (Bug#25143)

Copyright-paperwork-exempt: yes

7 years ago* lisp/comint.el (comint-password-prompt-regexp): Add SUDO. (Bug#24817)
Glenn Morris [Thu, 23 Feb 2017 22:12:49 +0000 (17:12 -0500)]
* lisp/comint.el (comint-password-prompt-regexp): Add SUDO. (Bug#24817)

7 years agoSmall dunnet score file improvements
Glenn Morris [Thu, 23 Feb 2017 18:22:31 +0000 (13:22 -0500)]
Small dunnet score file improvements

* lisp/play/dunnet.el (dun-log-file): Switch to per-user default.
(dun-do-logfile): Handle non-existing score file.

7 years ago* lisp/play/dunnet.el (dun-help): Doc fix.
Glenn Morris [Thu, 23 Feb 2017 18:20:48 +0000 (13:20 -0500)]
* lisp/play/dunnet.el (dun-help): Doc fix.

7 years agoDeclare dun-line and dun-line-list
Mark Oteiza [Thu, 23 Feb 2017 18:14:44 +0000 (13:14 -0500)]
Declare dun-line and dun-line-list

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.

7 years agoMerge from gnulib
Paul Eggert [Thu, 23 Feb 2017 17:14:06 +0000 (09:14 -0800)]
Merge from gnulib

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.

7 years agohexl: handle large files and I/O errors
Paul Eggert [Thu, 23 Feb 2017 16:58:39 +0000 (08:58 -0800)]
hexl: handle large files and I/O errors

* 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.

7 years agoAvoid quitting inside a critical section on MS-Windows
Eli Zaretskii [Thu, 23 Feb 2017 16:15:05 +0000 (18:15 +0200)]
Avoid quitting inside a critical section on MS-Windows

* 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)

7 years ago; Less error-like font-lock-variable-name-face
Tassilo Horn [Wed, 22 Feb 2017 17:31:02 +0000 (18:31 +0100)]
; Less error-like font-lock-variable-name-face

; * etc/themes/tsdh-light-theme.el (tsdh-light):

7 years agoUse revision-completion-table in vc-retrieve-tag
Dmitry Gutov [Sun, 19 Feb 2017 22:10:24 +0000 (00:10 +0200)]
Use revision-completion-table in vc-retrieve-tag

* lisp/vc/vc.el (vc-retrieve-tag): Use the
revision-completion-table command for completion (bug#25710).

7 years ago* lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add `atom'
Stefan Monnier [Wed, 22 Feb 2017 02:44:32 +0000 (21:44 -0500)]
* lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add `atom'

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.

7 years agoFind macro binding for symbol-bound macros too (Bug#6848)
Noam Postavsky [Wed, 22 Feb 2017 02:31:24 +0000 (21:31 -0500)]
Find macro binding for symbol-bound macros too (Bug#6848)

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.

7 years ago* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Fix last change
Stefan Monnier [Wed, 22 Feb 2017 02:32:27 +0000 (21:32 -0500)]
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Fix last change

7 years ago* lisp/isearch.el (lazy-highlight-max-at-a-time): Doc fix (bug#21092).
Juri Linkov [Wed, 22 Feb 2017 00:16:06 +0000 (02:16 +0200)]
* lisp/isearch.el (lazy-highlight-max-at-a-time): Doc fix (bug#21092).

7 years ago* lisp/isearch.el (isearch-lazy-highlight): New choice ‘all-windows’.
Juri Linkov [Wed, 22 Feb 2017 00:10:36 +0000 (02:10 +0200)]
* lisp/isearch.el (isearch-lazy-highlight): New choice ‘all-windows’.

(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)

7 years agoMinor weak hash table performance tweaks
Paul Eggert [Tue, 21 Feb 2017 23:31:29 +0000 (15:31 -0800)]
Minor weak hash table performance tweaks

* 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.

7 years agoUse float instead of Lisp_Object for rehash_size
Paul Eggert [Tue, 21 Feb 2017 23:31:29 +0000 (15:31 -0800)]
Use float instead of Lisp_Object for rehash_size

* 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.

7 years agoUse ptrdiff_t instead of Lisp_Object for collision
Paul Eggert [Tue, 21 Feb 2017 23:31:29 +0000 (15:31 -0800)]
Use ptrdiff_t instead of Lisp_Object for collision

* 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.

7 years agoHash table threshold is now float, not double
Paul Eggert [Tue, 21 Feb 2017 23:31:29 +0000 (15:31 -0800)]
Hash table threshold is now float, not double

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.

7 years agoAvoid flicker in lazy-highlight by doing all updates without redisplay.
Juri Linkov [Tue, 21 Feb 2017 23:22:18 +0000 (01:22 +0200)]
Avoid flicker in lazy-highlight by doing all updates without redisplay.

* 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)

7 years ago; * lisp/custom.el: Comments.
Glenn Morris [Tue, 21 Feb 2017 20:11:56 +0000 (15:11 -0500)]
; * lisp/custom.el: Comments.

7 years ago* lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgeneric
Stefan Monnier [Tue, 21 Feb 2017 18:51:12 +0000 (13:51 -0500)]
* lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgeneric

* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.

7 years ago* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplication
Stefan Monnier [Tue, 21 Feb 2017 18:48:30 +0000 (13:48 -0500)]
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplication

which resulted in incomplete list of parents in one copy of the
cl-structure-class class.

7 years agoTweak recent custom-reevaluate-setting change
Glenn Morris [Tue, 21 Feb 2017 17:59:56 +0000 (12:59 -0500)]
Tweak recent custom-reevaluate-setting change

* lisp/custom.el (custom-reevaluate-setting):
Tweak previous change to avoid font-lock init issues.

7 years agoEnsure delayed-init custom variables get marked special
Glenn Morris [Tue, 21 Feb 2017 02:30:40 +0000 (18:30 -0800)]
Ensure delayed-init custom variables get marked special

* lisp/custom.el (custom-reevaluate-setting):
If the variable has never been set, defvar it.  (Bug#25770)

7 years ago; Add a new TODO item
Glenn Morris [Tue, 21 Feb 2017 02:08:48 +0000 (18:08 -0800)]
; Add a new TODO item

* etc/TODO: Add a new entry for :set-after.
* lisp/startup.el: Related comment.

7 years agoTurn on lexical-binding in dunnet.el
Mark Oteiza [Tue, 21 Feb 2017 02:04:52 +0000 (21:04 -0500)]
Turn on lexical-binding in dunnet.el

* lisp/play/dunnet.el: Turn on lexical-binding.  Re-instate lexical
byte compile warnings.

7 years agoMake dunnet insertion functions n-ary
Mark Oteiza [Tue, 21 Feb 2017 02:00:32 +0000 (21:00 -0500)]
Make dunnet insertion functions n-ary

* 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.

7 years agomessage-goto-body-1: Fix regexp so as not to match multi-line
Katsumi Yamaoka [Tue, 21 Feb 2017 00:24:05 +0000 (00:24 +0000)]
message-goto-body-1: Fix regexp so as not to match multi-line

* lisp/gnus/message.el (message-goto-body-1):
Fix regexp so as not to match multi-line.

7 years agoSimplify cl-get using `plist-member'
Noam Postavsky [Fri, 5 Aug 2016 23:59:52 +0000 (19:59 -0400)]
Simplify cl-get using `plist-member'

* 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.

7 years agoVerify xwidget USE_LSB_TAG assumption
Paul Eggert [Mon, 20 Feb 2017 21:03:12 +0000 (13:03 -0800)]
Verify xwidget USE_LSB_TAG assumption

* src/xwidget.c (Fxwidget_webkit_execute_script):
Add verification.  Problem reported by Andreas Schwab (Bug#25816#8).

7 years ago* src/insdel.c (make_gap): Improve comment.
Stefan Monnier [Mon, 20 Feb 2017 19:05:41 +0000 (14:05 -0500)]
* src/insdel.c (make_gap): Improve comment.

7 years agoDo not use switch-to-buffer for working in a temp buffer
Mark Oteiza [Mon, 20 Feb 2017 18:53:41 +0000 (13:53 -0500)]
Do not use switch-to-buffer for working in a temp buffer

* 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.

7 years agoMake dun-room-shorts a defconst
Mark Oteiza [Mon, 20 Feb 2017 18:33:48 +0000 (13:33 -0500)]
Make dun-room-shorts a defconst

* lisp/play/dunnet.el (dun-room-shorts): Make defconst and collect
initial value into the declaration.
(dun-space-to-hyphen): Remove.

7 years agoPort xwidget to -DCHECK_LISP_OBJECT_TYPE
Paul Eggert [Mon, 20 Feb 2017 16:53:50 +0000 (08:53 -0800)]
Port xwidget to -DCHECK_LISP_OBJECT_TYPE

* 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.

7 years ago; * src/insdel.c: State file encoding explicitly.
Eli Zaretskii [Mon, 20 Feb 2017 15:41:46 +0000 (17:41 +0200)]
; * src/insdel.c: State file encoding explicitly.

7 years agomm-decode.el: Simplify regexp used to search html meta tag
Katsumi Yamaoka [Mon, 20 Feb 2017 06:40:03 +0000 (06:40 +0000)]
mm-decode.el: Simplify regexp used to search html meta tag

* lisp/gnus/mm-decode.el (mm-add-meta-html-tag, mm-shr):
Simplify regexp used to search html meta tag.

7 years agomm-shr: Ignore coding-system `ascii'
Katsumi Yamaoka [Mon, 20 Feb 2017 06:17:20 +0000 (06:17 +0000)]
mm-shr: Ignore coding-system `ascii'

* lisp/gnus/mm-decode.el (mm-shr): Ignore coding-system `ascii'.

7 years agovc-log-outgoing fixes for git; add binding to vc-dir
Tom Tromey [Wed, 15 Feb 2017 12:12:18 +0000 (05:12 -0700)]
vc-log-outgoing fixes for git; add binding to vc-dir

* 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.

7 years agoRemove stale comments from vc-git and vc-hg
Tom Tromey [Tue, 14 Feb 2017 00:24:04 +0000 (17:24 -0700)]
Remove stale comments from vc-git and vc-hg

* lisp/vc/vc-git.el (vc-git-retrieve-tag): Remove comment.
* lisp/vc/vc-hg.el (vc-hg-retrieve-tag): Remove comment.

7 years agoRemove member clone
Mark Oteiza [Mon, 20 Feb 2017 03:19:57 +0000 (22:19 -0500)]
Remove member clone

* lisp/play/dunnet.el (dun-answer): Use member instead.
(dun-members): Remove.

7 years agoPrefix global var
Mark Oteiza [Mon, 20 Feb 2017 03:15:57 +0000 (22:15 -0500)]
Prefix global var

* 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.

7 years agoReplace nested ifs with cond
Mark Oteiza [Mon, 20 Feb 2017 02:31:22 +0000 (21:31 -0500)]
Replace nested ifs with cond

* 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.

7 years agoFix glitches in recent hash table changes
Paul Eggert [Sun, 19 Feb 2017 20:22:33 +0000 (12:22 -0800)]
Fix glitches in recent hash table changes

* src/fns.c (Fmake_hash_table): Simplify the machine code slightly
by using 0 rather than -1.
* src/lisp.h (struct Lisp_Hash_Table.pure): Now bool rather
than a bitfield, for speed (the bitfield did not save space).
(struct Lisp_Hash_Table.rehash_threshold): Now double rather than
float, since the float caused unwanted rounding errors, e.g.,
(hash-table-rehash-threshold (make-hash-table)) yielded
0.800000011920929 instead of the correct 0.8.

7 years ago* src/insdel.c (make_gap): Increase enough to avoid O(N^2) behavior.
Stefan Monnier [Sun, 19 Feb 2017 18:12:16 +0000 (13:12 -0500)]
* src/insdel.c (make_gap): Increase enough to avoid O(N^2) behavior.

7 years ago; Minor fix of recent change in fringe.c
Eli Zaretskii [Sun, 19 Feb 2017 16:40:52 +0000 (18:40 +0200)]
; Minor fix of recent change in fringe.c

* src/fringe.c (init_fringe_bitmap) [HAVE_NTGUI]: Remove an
unnecessary #ifdef introduced in a recent change.

7 years ago; * src/fns.c (Fmake_hash_table): Prefer 'double' to 'float'.
Eli Zaretskii [Sun, 19 Feb 2017 16:35:48 +0000 (18:35 +0200)]
; * src/fns.c (Fmake_hash_table): Prefer 'double' to 'float'.

7 years agoAvoid aborts during loadup
Eli Zaretskii [Sun, 19 Feb 2017 16:32:51 +0000 (18:32 +0200)]
Avoid aborts during loadup

* src/emacs-module.c (syms_of_module):
* src/image.c (xpm_make_color_table_h): Update calls to
make_hash_table to adjust to a recent change in fns.c.
* src/fns.c (make_hash_table):
* src/lisp.h (make_hash_table): 4th arg is now of type double.

7 years agoRework connection local variables
Michael Albinus [Sun, 19 Feb 2017 16:14:35 +0000 (17:14 +0100)]
Rework connection local variables

For connection local variables interface, `class' is renamed
to `profile'.  All arguments `criteria' are a plist now.

* doc/lispref/variables.texi (Connection Local Variables):
Rewrite.

* lisp/files-x.el (connection-local-profile-alist): Rename
from `connection-local-class-alist'.  Adapt docstring.
(connection-local-criteria-alist): Adapt docstring.
(connection-local-normalize-criteria): New defun.
(connection-local-get-profiles): Rename from
`connection-local-get-classes'.  Rewrite.
(connection-local-set-profiles): Rename from
`connection-local-set-classes'.  Rewrite.
(connection-local-get-profile-variables): Rename from
`connection-local-get-class-variables'.  Rewrite.
(connection-local-set-profile-variables): Rename from
`connection-local-set-class-variables'.  Rewrite.
(hack-connection-local-variables)
(hack-connection-local-variables-apply)): Rewrite.
(with-connection-local-profiles): Rename from
`ith-connection-local-classes'.  Rewrite.

* lisp/net/tramp.el (tramp-set-connection-local-variables):
Compute criteria.

* lisp/net/tramp-cmds.el (tramp-bug):
Use `connection-local-profile-alist'.

* test/lisp/files-x-tests.el (files-x-test--variables1)
(files-x-test--variables2, files-x-test--variables3)
(files-x-test--variables4, files-x-test--criteria1)
(files-x-test--criteria2): Make them a defconst.
(files-x-test--application)
(files-x-test--another-application, files-x-test--protocol)
(files-x-test--user, files-x-test--machine): New defconst.
(files-x-test--criteria): New defvar.
(files-x-test--criteria3): Remove.
(files-x-test-connection-local-set-profile-variables):
Rename from `files-x-test-connection-local-set-class-variables'.
Rewrite.
(files-x-test-connection-local-set-profiles): Rename from
`files-x-test-connection-local-set-classes'.  Rewrite.
(files-x-test-hack-connection-local-variables-apply)  Rewrite.
(files-x-test-with-connection-local-profiles): Rename from
`files-x-test-with-connection-local-classes'.  Rewrite.

7 years ago; Fix previous change
Mark Oteiza [Sun, 19 Feb 2017 13:55:45 +0000 (08:55 -0500)]
; Fix previous change

Actually adjust the comment.
* lisp/play/dunnet.el: Change comment to refer to section, add page
break to better demarcate section.

7 years agoSet up combination and random item location
Mark Oteiza [Wed, 18 Jan 2017 04:15:25 +0000 (23:15 -0500)]
Set up combination and random item location

* lisp/play/dunnet.el (dun-combination): Make defconst.
(tloc, tcomb): Remove.  Replace with a top-level form.

7 years agoReplace movement variables with an alist and accessor
Mark Oteiza [Wed, 18 Jan 2017 03:05:48 +0000 (22:05 -0500)]
Replace movement variables with an alist and accessor

* lisp/play/dunnet.el (north, south, east, west, northeast, southeast):
(northwest, southwest, up, down, in, out): Remove.
(dun-movement-alist): New constant.
(dun-movement): New function.
(dun-n, dun-s, dun-e, dun-w, dun-ne, dun-se, dun-nw, dun-sw, dun-up):
(dun-down, dun-in, dun-out): Use a symbol for indicating movement.
(dun-move, dun-special-move): Translate movement symbol to an
enumeration.

7 years agoChange top-level setq forms to defvar or defconst
Mark Oteiza [Wed, 18 Jan 2017 02:34:59 +0000 (21:34 -0500)]
Change top-level setq forms to defvar or defconst

Also collect some code onto fewer lines and reindent.
* lisp/play/dunnet.el (dun-visited, dun-current-room, dun-exitf):
(dun-badcd, dun-computer, dun-floppy, dun-key-level, dun-hole):
(dun-correct-answer, dun-lastdir, dun-numsaves, dun-jar, dun-dead):
(room, dun-numcmds, dun-wizard, dun-endgame-question, dun-logged-in):
(dungeon-mode, dun-unix-verbs, dun-dos-verbs, dun-batch-mode):
(dun-cdpath, dun-cdroom, dun-uncompressed, dun-ethernet):
(dun-restricted, dun-ftptype, dun-endgame, dun-rooms):
(dun-light-rooms, dun-verblist, dun-inbus, dun-nomail, dun-ignore):
(dun-mode, dun-sauna-level, north, south, east, west, northeast):
(southeast, northwest, southwest, up, down, in, out, dungeon-map):
(dun-objnames, obj-special, dun-room-objects, dun-room-silents):
(dun-inventory, dun-objects, dun-object-lbs, dun-object-pts):
(dun-objfiles, dun-perm-objects, dun-physobj-desc, dun-permobj-desc):
(dun-diggables, dun-room-shorts, dun-endgame-questions): Change
declaration to use defvar or defconst.
(dun-doverb, dun-vparse, dun-vparse2, dun-batch-parse):
(dun-batch-parse2): Omit the dun- prefix from arguments dun-ignore
dun-verblist.  Those are now constants and the byte compiler doesn't
allow defconsts in lambda lists.

7 years agoMove all dunnet globals up to the top
Mark Oteiza [Wed, 18 Jan 2017 00:11:06 +0000 (19:11 -0500)]
Move all dunnet globals up to the top

* lisp/play/dunnet.el: Adjust comments to reflect moved forms.
(dun-visited, dun-current-room, dun-exitf):
(dun-badcd, dun-computer, dun-floppy, dun-key-level, dun-hole):
(dun-correct-answer, dun-lastdir, dun-numsaves, dun-jar, dun-dead):
(room, dun-numcmds, dun-wizard, dun-endgame-question, dun-logged-in):
(dungeon-mode, dun-unix-verbs, dun-dos-verbs, dun-batch-mode):
(dun-cdpath, dun-cdroom, dun-uncompressed, dun-ethernet):
(dun-restricted, dun-ftptype, dun-endgame, dun-rooms):
(dun-light-rooms, dun-verblist, dun-inbus, dun-nomail, dun-ignore):
(dun-mode, dun-sauna-level, north, south, east, west, northeast):
(southeast, northwest, southwest, up, down, in, out, dungeon-map):
(dun-objnames, obj-special, dun-room-objects, dun-room-silents):
(dun-inventory, dun-objects, dun-object-lbs, dun-object-pts):
(dun-objfiles, dun-perm-objects, dun-physobj-desc, dun-permobj-desc):
(dun-diggables, dun-room-shorts, dun-endgame-questions): Move to the
top of the file, before any uses.

7 years agoFix bug#25788
Michael Albinus [Sun, 19 Feb 2017 08:33:24 +0000 (09:33 +0100)]
Fix bug#25788

* lisp/net/tramp.el (tramp-autoload-file-name-handler):
Do not load tramp.el just for "/".  (Bug#25788)

7 years agoFix fringe bitmap initialization on MS-Windows
YAMAMOTO Mitsuharu [Sun, 19 Feb 2017 04:42:05 +0000 (13:42 +0900)]
Fix fringe bitmap initialization on MS-Windows

* src/fringe.c (init_fringe_bitmap) [HAVE_NTGUI]: Fix initialization
of fb->bits.  (Bug#25673)

7 years agoChange type of `rehash_threshold' and `pure' fields in hash-tables
Stefan Monnier [Sun, 19 Feb 2017 03:37:05 +0000 (22:37 -0500)]
Change type of `rehash_threshold' and `pure' fields in hash-tables

* src/lisp.h (struct Lisp_Hash_Table): Change type of
`rehash_threshold' and `pure' fields and move them after `count'.
* src/fns.c (make_hash_table): Change type of `rehash_threshold' and `pure'.
(Fmake_hash_table, Fhash_table_rehash_threshold):
* src/category.c (hash_get_category_set):
* src/xterm.c (syms_of_xterm):
* src/profiler.c (make_log):
* src/print.c (print_object):
* src/alloc.c (purecopy_hash_table, purecopy): Adjust accordingly.

7 years agoUse 'char *FOO' instead of 'char* FOO'
Paul Eggert [Sun, 19 Feb 2017 02:16:37 +0000 (18:16 -0800)]
Use 'char *FOO' instead of 'char* FOO'

7 years agoMore json.el changes
Mark Oteiza [Sun, 19 Feb 2017 01:25:50 +0000 (20:25 -0500)]
More json.el changes

* lisp/json.el (json-read-keyword, json-read-number, json-read-object):
(json-read-array): Just use = for char comparison.

7 years agoFix edebug-spec on c-lang-defvar.
Alan Mackenzie [Sat, 18 Feb 2017 16:01:15 +0000 (16:01 +0000)]
Fix edebug-spec on c-lang-defvar.

This allows c-lang-defvars with the symbol 'dont-doc in the place of the
optional documentation to be instrumented for edebug.

lisp/progmodes/cc-langs.el (top-level): Amend the edebug-spec for
c-lang-defvar.
(c-opt-identifier-concat-key, c-decl-prefix-or-start-re): remove redundant
'dont-doc.

7 years agoLists used as plists now have to be an even length
Lars Ingebrigtsen [Sat, 18 Feb 2017 15:46:06 +0000 (16:46 +0100)]
Lists used as plists now have to be an even length

* lisp/net/eww.el (eww-size-text-inputs): `eww-form' isn't a plist.
(eww-process-text-input): Not here, either.

7 years agoUnset `non-essential' in Tramp when not needed anymore
Michael Albinus [Sat, 18 Feb 2017 13:29:19 +0000 (14:29 +0100)]
Unset `non-essential' in Tramp when not needed anymore

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.3.2-pre".

* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
Use `tramp-completion-mode-p'.

* lisp/net/tramp.el (tramp-file-name-handler): Unset `non-essential'
when file name doesn't match `tramp-completion-file-name-regexp'.

7 years agoAutomatically regenerate emacs.1 and *.rc files
Eli Zaretskii [Sat, 18 Feb 2017 12:49:30 +0000 (14:49 +0200)]
Automatically regenerate emacs.1 and *.rc files

* Makefile.in (CONFIG_STATUS_FILES_IN): New variable, lists
non-Makefile files produced by config.status.
($(MAKEFILE_NAME)): Depend on $(CONFIG_STATUS_FILES_IN), so that
their targets are regenerated when the source changes.

7 years agoSet the syntax table in AWK Mode.
Alan Mackenzie [Sat, 18 Feb 2017 12:38:29 +0000 (12:38 +0000)]
Set the syntax table in AWK Mode.

This is a partial reversion of CC Mode commit on 2016-05-09 17:49:45 +0000.
It fixes bug #25722.

lisp/progmodes/cc-mode.el (awk-mode): Explicitly set the syntax table.

7 years agoFix Turkish language environment setup
Göktuğ Kayaalp [Sat, 18 Feb 2017 11:17:40 +0000 (13:17 +0200)]
Fix Turkish language environment setup

* lisp/language/european.el ("Turkish"): Fix a typo in Turkish
language setup.  (Bug#25763)

7 years agoSupport 24-bit direct colors on text terminals
Rami Ylimäki [Sat, 18 Feb 2017 11:04:55 +0000 (13:04 +0200)]
Support 24-bit direct colors on text terminals

* src/term.c (init_tty): Use 24-bit terminal colors if corresponding
foreground and background functions are present in terminal type
definition.
* src/tparam.h: Define prototype for tigetstr.

* lisp/term/tty-colors.el (tty-color-define): Convert color palette
index to pixel value on 16.7M color terminals.
(tty-color-24bit): New function to convert color palette index to
pixel value on 16.7M color terminals.
(tty-color-desc): Don't approximate colors on 16.7M color terminals.
* lisp/term/xterm.el (xterm-register-default-colors): Define all named
TTY colors on 16.7M color terminals.

* doc/misc/efaq.texi (Colors on a TTY): Add instructions on how to
enable direct color TTY mode.
* etc/NEWS: Mention direct color TTY mode and point to FAQ.

7 years agoRemove unused TN_max_pairs field
Rami Ylimäki [Sat, 18 Feb 2017 10:56:12 +0000 (12:56 +0200)]
Remove unused TN_max_pairs field

* src/termchar.h (tty_display_info): Remove TN_max_pairs field,
describing maximum number of terminal background/foreground color pairs.
* src/term.c (tty_default_color_capabilities, tty_setup_colors)
(init_tty): Remove references to TN_max_pairs.

7 years agoImprove documentation of query-replace-from-to-separator
Eli Zaretskii [Sat, 18 Feb 2017 10:44:17 +0000 (12:44 +0200)]
Improve documentation of query-replace-from-to-separator

* doc/emacs/search.texi (Query Replace): Document the meaning of
the nil value of query-replace-from-to-separator.  (Bug#25482)

7 years agoImprove commentary for a recent change in keyboard.c
Eli Zaretskii [Sat, 18 Feb 2017 10:30:25 +0000 (12:30 +0200)]
Improve commentary for a recent change in keyboard.c

* src/keyboard.c (Fset__this_command_keys): Add a comment about
the magic 248 value.  (Bug#25612)

7 years agoAvoid infloop in rect.el
Eli Zaretskii [Sat, 18 Feb 2017 09:32:45 +0000 (11:32 +0200)]
Avoid infloop in rect.el

* lisp/rect.el (rectangle--*-char): Avoid inflooping when called
with argument N whose absolute value is greater than 1.  (Bug#25773)

7 years agoRemove annoying warnings about let-binding
Eli Zaretskii [Sat, 18 Feb 2017 09:28:42 +0000 (11:28 +0200)]
Remove annoying warnings about let-binding

* src/data.c (Fmake_variable_buffer_local, Fmake_local_variable):
Remove warnings about making symbols local while let-bound.
(Bug#25561)

7 years agoAvoid errors when flyspell-generic-check-word-predicate is a lambda.
Hong Xu [Thu, 16 Feb 2017 21:28:56 +0000 (13:28 -0800)]
Avoid errors when flyspell-generic-check-word-predicate is a lambda.

* flyspell.el (flyspell-auto-correct-word, flyspell-word): Apply
functionp instead of fboundp on
flyspell-generic-check-word-predicate (Bug#25765).

7 years agoRemove the build number from emacs-version variable
Glenn Morris [Sat, 18 Feb 2017 01:15:21 +0000 (20:15 -0500)]
Remove the build number from emacs-version variable

It's a largely internal detail that can confuse users.  (Bug#25590)
* lisp/version.el (emacs-build-number): New constant.
(emacs-version): Use emacs-build-number.
* lisp/loadup.el (top-level): When dumping, increment
emacs-build-number rather than emacs-version.
* src/emacs.c (emacs-version): Doc fix.
* doc/lispref/intro.texi (Version Info): Update emacs-version details.
Mention emacs-build-number.
* lisp/gnus/gnus-util.el (gnus-emacs-version):
* lisp/mail/emacsbug.el (report-emacs-bug):
* admin/admin.el (set-version): Update for emacs-version change.
; * etc/NEWS: Mention this.

7 years agoEnsure that user-mail-address always has a value
Glenn Morris [Sat, 18 Feb 2017 00:06:15 +0000 (19:06 -0500)]
Ensure that user-mail-address always has a value

* lisp/startup.el (user-mail-address): Initialize in the normal way.
(command-line): Reset user-mail-address if needed using
standard custom machinery.
* lisp/mail/feedmail.el (feedmail-fiddle-from):
* lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
* lisp/mail/rmailsum.el (rmail-header-summary):
Simplify now that user-mail-address is always set.
; * doc/lispref/os.texi (System Environment): Remove fixme comment.

7 years agoTurn on lexical-binding in ruby-mode
Mark Oteiza [Sat, 18 Feb 2017 00:01:11 +0000 (19:01 -0500)]
Turn on lexical-binding in ruby-mode

* lisp/progmodes/ruby-mode.el: Turn on lexical-binding.
(ruby-font-lock-syntax-table): Use make-syntax-table.
(ruby-mode): 'define-derived-mode' writes the keys for us.

7 years agoTurn on lexical-binding in elint.el
Mark Oteiza [Fri, 17 Feb 2017 23:52:12 +0000 (18:52 -0500)]
Turn on lexical-binding in elint.el

* lisp/emacs-lisp/elint.el: Quote entry point commands in commentary.
(elint-running, elint-current-pos): Move these dynamic vars to toward
the top of the file.
(elint-check-quote-form): Ignore unused argument.
(elint-check-conditional-form): Remove unused binding.

7 years ago* lisp/emacs-lisp/subr-x.el (if-let*): Fix Edebug spec (Bug#24748)
Gemini Lasswell [Sun, 5 Feb 2017 00:16:11 +0000 (16:16 -0800)]
* lisp/emacs-lisp/subr-x.el (if-let*): Fix Edebug spec (Bug#24748)

7 years agoEnable erc-accidental-paste-threshold-seconds by default
Mark Oteiza [Fri, 17 Feb 2017 23:38:09 +0000 (18:38 -0500)]
Enable erc-accidental-paste-threshold-seconds by default

* lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Set
default to 0.2 (Bug#25709).

7 years agoFix build failure caused by ‘Generate upcase and downcase tables from Unicode’
Michal Nazarewicz [Fri, 17 Feb 2017 15:36:44 +0000 (16:36 +0100)]
Fix build failure caused by ‘Generate upcase and downcase tables from Unicode’

The [5ec3a584: Generate upcase and downcase tables from Unicode data]
commit broke bootstrap from a truly clean tree (e.g. a fresh clone or
one created with ‘make extraclean’), see
<http://hydra.nixos.org/build/48774928>.

The failure was caused by characters.el trying to read Unicode
property tables which aren’t available so early in the build process.

Wrap the part that requires Unicode property tables in a condition
checking if those are available.  If they aren’t they case and syntax
tables won’t be fully set but later on, the characters.el file will be
evaluated again and this time with Unicode properties available so
final Emacs ends up with the exact same case and syntax tables.

7 years agomm-add-meta-html-tag: Improve regexp
Katsumi Yamaoka [Fri, 17 Feb 2017 10:05:56 +0000 (10:05 +0000)]
mm-add-meta-html-tag: Improve regexp

* lisp/gnus/mm-decode.el (mm-add-meta-html-tag):
Improve regexp to search html meta tag.

7 years agomm-shr: Prefer charset specified in html meta tag
Katsumi Yamaoka [Fri, 17 Feb 2017 09:52:09 +0000 (09:52 +0000)]
mm-shr: Prefer charset specified in html meta tag

* lisp/gnus/mm-decode.el (mm-shr): Prefer charset specified in html
meta tag than mail-parse-charset in the case there is no charset spec
in MIME header.

7 years agoStop duplicating some custom-types in message.el
Glenn Morris [Fri, 17 Feb 2017 05:43:23 +0000 (21:43 -0800)]
Stop duplicating some custom-types in message.el

* lisp/gnus/message.el (user-mail-address, user-full-name):
No need to re-specify custom-type.

7 years agoWhitespace trivia in dunnet.el
Glenn Morris [Fri, 17 Feb 2017 04:33:24 +0000 (20:33 -0800)]
Whitespace trivia in dunnet.el

* lisp/play/dunnet.el (dun-special-object, dun-put-objs)
(dun-rlogin-endgame): Whitespace trivia.

7 years agoExplicit error on changing case of negative integers
Glenn Morris [Fri, 17 Feb 2017 04:24:37 +0000 (20:24 -0800)]
Explicit error on changing case of negative integers

* src/casefiddle.c (casify_object): Reject negative integers:
Emacs characters are positive integers.  (Bug#25684)

7 years agoFix buffers update in vc-retrieve-tag
Dmitry Gutov [Fri, 17 Feb 2017 01:00:46 +0000 (03:00 +0200)]
Fix buffers update in vc-retrieve-tag

* lisp/vc/vc.el (vc-retrieve-tag): When the granularity is
`repository', use the repository root and pass it to
vc-resynch-buffer (bug#25714).

7 years ago; Spelling, punctuation and minor wording fixes
Paul Eggert [Thu, 16 Feb 2017 17:17:45 +0000 (09:17 -0800)]
; Spelling, punctuation and minor wording fixes

7 years ago* src/buffer.h: Fix indenting.
Paul Eggert [Thu, 16 Feb 2017 15:55:28 +0000 (07:55 -0800)]
* src/buffer.h: Fix indenting.

7 years agoAdd sanity checks for Bswitch hash tables
Paul Eggert [Thu, 16 Feb 2017 15:52:57 +0000 (07:52 -0800)]
Add sanity checks for Bswitch hash tables

* src/bytecode.c (exec_byte_code) [BYTE_CODE_SAFE]:
Check that operand is a hash table and hashes to ints.

7 years ago* src/keyboard.c (read_key_sequence): Fix integer-overflow glitch.
Paul Eggert [Thu, 16 Feb 2017 15:49:03 +0000 (07:49 -0800)]
* src/keyboard.c (read_key_sequence): Fix integer-overflow glitch.

7 years agobytecomp.el: Avoid unnecessary calculation for jump table addresses.
Vibhav Pant [Thu, 16 Feb 2017 14:48:55 +0000 (20:18 +0530)]
bytecomp.el: Avoid unnecessary calculation for jump table addresses.

* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Don't do
  redundant operations while calculating the correct jump addresses
  from TAGs in jump tables.

7 years agoMinor changes in json.el
Mark Oteiza [Thu, 16 Feb 2017 01:43:55 +0000 (20:43 -0500)]
Minor changes in json.el

* lisp/json.el (json-advance): Simpler docstring.
(json-read-escaped-char): Use xdigit subform in rx expression.
(json-read-string): Just use = for char comparison.

7 years agoDon't expand body inside a let-binding when there are no bindings
Mark Oteiza [Thu, 16 Feb 2017 01:40:46 +0000 (20:40 -0500)]
Don't expand body inside a let-binding when there are no bindings

* lisp/emacs-lisp/pcase.el (pcase-codegen): Only let-bind if VARS
is non-nil.

7 years agoHandle user-mail-address being the empty string
Glenn Morris [Thu, 16 Feb 2017 01:23:07 +0000 (20:23 -0500)]
Handle user-mail-address being the empty string

* lisp/mail/feedmail.el (feedmail-fiddle-from):
* lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
* lisp/mail/rmailsum.el (rmail-header-summary):
Belated update for 2002-09-29 startup.el change, 680ebfa, where
the value of user-mail-address during initialization was changed
from nil to the empty string.