1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-26 07:00:35 -08:00
Commit graph

130436 commits

Author SHA1 Message Date
Noam Postavsky
82a5e4dc88 Fix free var FOO-mode-{syntax,abbrev}-table warnings
* lisp/emacs-lisp/derived.el (define-derived-mode): Unconditionally
defvar the syntax and abbrev tables so that the compiler will know that
they are dynamically bound variables (Bug#25446).
2017-01-19 20:15:18 -05:00
Vibhav Pant
fbe6b90b0c * lisp/emacs-lisp/bytecomp.el: Fix errors with matching quoted forms
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table-info)
  eval obj2 to avoid quoted forms being stored as is.
2017-01-19 23:13:53 +05:30
Vibhav Pant
5f3379b338 lisp/emacs-lisp/bytecomp.el: Use byte-switch only for quoted symbols 2017-01-19 23:13:13 +05:30
Vibhav Pant
46193d5209 * lisp/emacs-lisp/bytecomp.el: Add default-case for last cond clause.
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table) Add
default-case for last cond clause.
2017-01-19 23:12:09 +05:30
Philipp Stephani
9c4e3097b5 Check that variable lists are actually lists
'let' and 'let*' document that their first argument has to be a list,
but don't check for that; instead, they allow (and silently ignore)
other types.  Introduce an explicit type check.

* src/eval.c (Flet, FletX): Check that the variable list is indeed a
list.
* test/src/eval-tests.el: Add unit tests.
2017-01-19 17:17:50 +01:00
Vibhav Pant
522f16dac9 Add type checking for Bswitch, when enabled at compile time.
* src/bytecode.c: (exec_byte_code) If BYTE_CODE_SAFE is enabled at
  compile time, use CHECK_TYPE to verify that the jump table is a hash table.
2017-01-19 18:35:46 +05:30
Vibhav Pant
1fcbd352f8 Use byte-switch for all symbols.
* lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-valid-obj2-p) Return
  t for all symbols (instead for just keywords)
2017-01-19 18:02:40 +05:30
Noam Postavsky
8c0fcaf667 Avoid inefficient regex in diff-refine-hunk (Bug#25410)
* lisp/vc/diff-mode.el (diff--forward-while-leading-char): New function.
(diff-refine-hunk): Use it instead of trying to match multiple lines
with a single lines.
2017-01-18 20:37:31 -05:00
Eli Zaretskii
5304cb9831 Remove lock file when auto-saving into the visited file
* src/fileio.c (write_region): When auto-saving into the visited
file, unlock the file whenever we mark the buffer unmodified.
(Bug#25470)
2017-01-18 20:36:14 +02:00
Vibhav Pant
086c4eaf9d * src/bytecode.c: (exec_byte_code) Use hash_lookup for Bswitch
Fgethash type checks the provided table object, which is unnecessary
for compiled bytecode.
2017-01-18 22:40:50 +05:30
Tom Tromey
2236c53bbe fix typo in mailcap-mime-extensions
* lisp/net/mailcap.el (mailcap-mime-extensions): Use "text/x-patch",
not "test/x-patch".  (Bug#25472)
2017-01-18 09:42:00 -07:00
Lele Gaifax
85a3e4e486 Fix typos in flymake.el
* lisp/progmodes/flymake.el (flymake-check-patch-master-file-buffer):
Spelling fixes in the doc string.

Copyright-paperwork-exempt: yes
2017-01-18 18:15:28 +02:00
Eli Zaretskii
5fefaaa8c0 Fix a bug with signaling a thread that waits for condvar
* src/thread.c (lisp_mutex_lock_for_thread): New function,
with all the guts of lisp_mutex_lock.
(lisp_mutex_lock): Call lisp_mutex_lock_for_thread.
(condition_wait_callback): Don't call post_acquire_global_lock
before locking the mutex, as that could cause a signaled thread to
exit prematurely, because the condvar's mutex is recorded to be
not owned by any thread, and with-mutex wants to unlock it as part
of unwinding the stack in response to the signal.
2017-01-18 18:06:42 +02:00
Eli Zaretskii
571532605b Rudimentary error handling for non-main threads
* src/thread.c (last_thread_error): New static variable.
(syms_of_threads): Staticpro it.
(record_thread_error, Fthread_last_error): New functions.
(syms_of_threads): Defsubr Fthread_last_error.

* doc/lispref/threads.texi (Basic Thread Functions): Document
thread-last-error.

* test/src/thread-tests.el (thread-errors, thread-signal-early)
(threads-condvar-wait): Test the values returned by
thread-last-error.
2017-01-18 18:00:16 +02:00
Tom Tromey
dbb29d7eb4 Add info-lookup help for gdb-script-mode
Bug#25464:
* lisp/info-look.el (info-lookup-guess-gdb-script-symbol): New
function.
Add help for gdb-script-mode.
2017-01-17 15:40:16 -07:00
Tom Tromey
8083d258ba Treat ":root" as a css-selector
* lisp/textmodes/css-mode.el (css--font-lock-keywords): Recognize bare
":root" as selector.
2017-01-17 15:35:39 -07:00
Tom Tromey
aa711e0a92 Fix JS regexp literal syntax propertization in expressions
Bug#25465:
* lisp/progmodes/js.el (js-syntax-propertize): Recognize a regexp
literal after "!", "&", and "|".
test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax): New test.
2017-01-17 15:33:20 -07:00
Glenn Morris
a1ef10e6a0 More NEWS checking for admin.el's set-version
* admin/admin.el (set-version): Warn if temporary NEWS markup
still present in release candidates.
2017-01-17 16:10:03 -05:00
Mark Oteiza
14c7d3a6e0 Mark unused arguments and remove unused variables
* lisp/play/dunnet.el (dun-mode, dun-die, dun-inven, dun-try-take):
(dun-dig, dun-type, dun-n, dun-s, dun-e, dun-w, dun-ne, dun-se):
(dun-nw, dun-sw, dun-up, dun-down, dun-in, dun-out, dun-long):
(dun-swim, dun-score, dun-flush, dun-piss, dun-sleep, dun-drive):
(dun-superb, dun-power, dun-unix-parse, dun-bin, dun-fascii):
(dun-ftpquit, dun-ftphelp, dun-uexit, dun-pwd, dun-dos-parse):
(dun-dos-invd, dun-dos-spawn, dun-dos-exit, dun-dos-nil):
(dungeon-nil): Mark arguments as unused.
(dun-drop, dun-objnum-from-args, dun-get-path, dun-ftp):
(dun-restore): Remove unused variable.
2017-01-17 15:19:30 -05:00
Michael Albinus
299b190a6b Fix auto-save-file-name problem in Tramp on MS Windows
* lisp/files.el (make-auto-save-file-name): Use `file-remote-p'
rather than an ange-ftp regexp.

* lisp/net/tramp.el (tramp-handle-make-auto-save-file-name):
Fix a problem when running on MS Windows.

* test/lisp/net/tramp-tests.el (tramp-test31-make-auto-save-file-name):
Adapt test.
2017-01-17 17:35:23 +01:00
Michael Albinus
3993dc500d Fix auto-save-file-name problem in Tramp on MS Windows. Do not merge
* lisp/net/tramp.el (tramp-handle-make-auto-save-file-name):
Fix a problem when running on MS Windows.
2017-01-17 17:23:46 +01:00
Paul Eggert
021d340cf9 ; Spelling fixes 2017-01-17 07:46:03 -08:00
Paul Eggert
2b36ae07e3 Merge from origin/emacs-25
42614fa Update remaining copyright years with admin.el M-x set-copyright
f17a006 * lisp/ffap.el (ffap-lax-url): Bump :version after recent cha...
2017-01-17 07:34:25 -08:00
Paul Eggert
dee6981c8d ; Merge from origin/emacs-25
The following commit was skipped:

8dd624c Document that functions in 'ffap-alist' can use the match data
2017-01-17 07:32:13 -08:00
Mark Oteiza
5362ef79cb Nix some uses of eval
* lisp/play/dunnet.el: Fix triple negative.
(dun-doverb): Use funcall instead of eval.
(dun-echo): Just call dun-mprinc.
(dun-save-val): Just bind value without eval.
2017-01-17 00:48:00 -05:00
Mark Oteiza
922850bcc7 ; * lisp/play/dunnet.el: Fix file footer. 2017-01-16 23:35:05 -05:00
Tom Tromey
e27239ad1b Fix comment in css-mode.el
* lisp/textmodes/css-mode.el: Remove obsolete comment.
2017-01-16 17:22:05 -07:00
Eli Zaretskii
5569e64444 ; Spelling fixes
* src/buffer.c (delete_all_overlays, Fkill_buffer): Fix typos in
comments.
2017-01-16 19:12:40 +02:00
Vibhav Pant
37956463d6 update branch 2017-01-16 19:49:24 +05:30
Ian Dunn
24a5f57ac3 * lisp/net/eww.el (eww-tag-meta): Handle single quoted URLs (Bug#25445).
Copyright-paperwork-exempt: yes
2017-01-15 23:24:38 -05:00
Noam Postavsky
fd6b829d91 Improve ffap-gopher-at-point handling of long lines
* lisp/ffap.el (ffap-gopher-regexp): Only match the KEY part.  Note
setting to nil is now supported.
(ffap--gopher-var-on-line): New function.
(ffap-gopher-at-point): Use it instead of the old ffap-gopher-regexp
which could overflow the regexp stack on long lines (Bug#25391).  Use
`let-alist' instead of calling `set' on local variables.
* test/lisp/ffap-tests.el (ffap-gopher-at-point): New test.
2017-01-15 13:04:54 -05:00
Vibhav Pant
309b46420e * lisp/emacs-lisp/byte-opt.el: Optimize how tags are checked for use.
* byte-opt.el: (byte-optimize-lapcode): Return nil instantly on
  finding the tag in a jump table.
2017-01-15 21:38:31 +05:30
Vibhav Pant
8c0f326ea2 * lisp/emacs-lisp/bytecomp.el: Add documentation, remove code duplication 2017-01-15 19:36:26 +05:30
Vibhav Pant
88549ec38e Add new 'switch' byte-code.
'switch' takes two arguments from the stack: the variable to test, and
a jump table (implemented as a hash-table with the appropriate :test
function). By looking up the value of the variable in the hash table,
the interpreter can jump to the label pointed to by the value, if any.
This implementation can only be used for `cond' forms of the type
`(cond ((test x 'foo) 'bar) ...)`, such that the function `test` and
variable `x` is same for all clauses.

* lisp/emacs-lisp/bytecomp.el:

  * Add (byte-compile-cond-valid-obj2-p), (byte-compile-cond-vars),
    (byte-compile-cond-jump-table-info), (byte-compile-jump-table-add-tag),
    (byte-compile-cond-jump-table), byte-compile-jump-tables.

  * Add defcustom `byte-compile-cond-use-jump-table'.

  * (byte-compile-cond): Use them.

  * (byte-compile-lapcode): Patch tags present in jump tables, if any.

* lisp/emacs-lisp//byte-opt.el: (byte-optimize-lapcode): Add checks to
  some peephole optimizations to prevent them from messing up any code
  involving `byte-switch`.

* src/bytecode.c: (exec_byte_code): Add bytecode Bswitch.
2017-01-15 01:26:04 +05:30
Alan Third
af3db69ee6 Fix NS main thread check (bug#25265)
* src/nsterm.m (ns_read_socket, ns_select): Replace mainThread with
isMainThread.
2017-01-14 17:00:03 +00:00
Stefan Monnier
9b89896b7a * lisp/progmodes/sql.el (sql-product-alist): Doc tweak
`:sqli-comint-func' does not have to be a symbol.
2017-01-14 11:50:11 -05:00
Alan Mackenzie
a23974d6e6 Correct c-parse-state-get-strategy for moving HERE backward into a macro.
* list/progmodes/c-engine.el (c-parse-state-get-strategy): When HERE is below
its previous value, we chose strategy 'forward, and the new HERE is in a
(different) macro, ensure the returned START-POINT is not above the start of
the macro.
2017-01-14 12:38:43 +00:00
Eli Zaretskii
877c525f4b Include "Date:" in mail messages filed by 'sendmail-send-it'
* lisp/mail/sendmail.el (mail-do-fcc): Insert a 'Date:' header
into the filed message.  In the outgoing message, sendmail will
add the date, but the composed message body doesn't have it.
(Bug#25436)
2017-01-14 10:55:16 +02:00
Eli Zaretskii
69b50f56ad * lisp/progmodes/sql.el (sql-product-alist): Doc fix. (Bug#25440) 2017-01-14 10:40:01 +02:00
Dmitry Gutov
5b9f08fb86 Remove leftover references to log-view-message-face
* lisp/vc/vc-bzr.el (vc-bzr-log-view-mode): Use log-view-message.

* lisp/vc/vc-git.el (vc-git-root-log-format): Same.

* lisp/vc/vc-hg.el (vc-hg-root-log-format): Same.
2017-01-14 06:56:37 +03:00
Phillip Lord
72c668a904 Record autoloads till emacs dump
* admin/ldefs-clean.el (ldefs-clean-up): Record autoloads till emacs dump
* lisp/ldefs-boot-auto.el (batch-byte-compile): Update

Previously, autoloads were collected till loaddefs.el was generated as
part of the build. However, bootstrap-emacs does not load
loaddefs (rather it is dumped), hence we must record autoloads until the
full emacs binary is dumped.
2017-01-13 21:28:43 +00:00
Tom Tromey
502390822f Add chained indentation to js-mode
Bug#20896
* lisp/progmodes/js.el (js-chain-indent): New variable.
(js--skip-term-backward, js--skip-terms-backward)
(js--chained-expression-p): New functions.
(js--proper-indentation): Call js--chained-expression-p.
* test/manual/indent/js-chain.js: New file.
* test/manual/indent/js.js: Add (non-)chained indentation test.
2017-01-13 12:38:36 -07:00
Tom Tromey
b47f97218e Fix js-mode indentation bug
Bug#15582:
* lisp/progmodes/js.el (js--find-newline-backward): New function.
(js--continued-expression-p): Use it.
* test/manual/indent/js.js: Add new test.
2017-01-13 12:38:36 -07:00
Tom Tromey
cab7a38588 Fix definition of EMACS in test/manual/indent/Makefile
* test/manual/indent/Makefile (EMACS): Add one more "..".
2017-01-13 12:38:36 -07:00
Tom Tromey
765920f727 Add .jsx to auto-mode-alist
Bug#25389:
* lisp/files.el (auto-mode-alist): Add entry for .jsx.
2017-01-13 12:38:36 -07:00
Tom Tromey
05fe74bec2 Fix two js-mode filling bugs
Bug#19399 and Bug#22431:
* lisp/progmodes/js.el (js-mode): Set comment-line-break-function and
c-block-comment-start-regexp.
* test/lisp/progmodes/js-tests.el: New file.
2017-01-13 12:38:36 -07:00
Eli Zaretskii
d018843e0e Fix last change
* test/src/thread-tests.el (threads-condvar-wait): Revert
previous change.  Make sure no other threads from previous
tests are running, to avoid interfering with our thread counts.
2017-01-13 18:17:12 +02:00
Eli Zaretskii
26b5426de8 Fix the new condvar test
* test/src/thread-tests.el (threads-condvar-wait): Enlarge the
time we sleep in the main thread to let the other thread
process notifications.
2017-01-13 18:05:38 +02:00
Eli Zaretskii
9c4d2afaa5 Minor improvements in the new condvar test
* test/src/thread-tests.el (threads-test-condvar-wait): Use
with-mutex instead of emulating it inline.
(threads-condvar-wait): Improve comments.  Check that the new
thread is alive before waiting for it to become blocked on the
conditional variable.
2017-01-13 16:13:30 +02:00
Eli Zaretskii
03e4ab0d58 Fix a bug in waiting for condition variable
* src/thread.c (lisp_mutex_lock, lisp_mutex_unlock)
(lisp_mutex_unlock_for_wait, condition_wait_callback)
(condition_notify_callback): Improve commentary.
(condition_wait_callback): Call post_acquire_global_lock before
attempting to lock the mutex, to make sure the lock's owner is
recorded correctly.

* test/src/thread-tests.el (threads-condvar-wait): New test.
2017-01-13 11:48:51 +02:00