1. 21 Jan, 2017 4 commits
    • Alan Mackenzie's avatar
      Fix low-level handling of (big) C macros. · de333605
      Alan Mackenzie authored
      In particular, ensure that a comment detected by its syntax is not a CPP
      construct marked with generic comment delimiter syntax-table text
      * lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): Set
      c-macro-cache-syntactic to nil when the cached macro changes.
      (c-syntactic-end-of-macro, c-no-comment-end-of-macro)
      (c-state-semi-pp-to-literal, c-state-full-pp-to-literal)
      (c-state-pp-to-literal, c-parse-ps-state-to-cache)
      (c-state-cache-non-literal-place, c-literal-limits, c-literal-start)
      (c-determine-limit): When checking a parse syntax for a comment, check that
      we're not in a CPP construct marked by syntax-table generic comment delimiter
      text property.
      (c-state-pp-to-literal): Change from a defsubst to a defun.
      * lisp/progmodes/cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Check a
      parse syntax as described above under cc-engine.el.
    • Noam Postavsky's avatar
      Don't wait for frame to become visible · 6a788d2f
      Noam Postavsky authored
      * src/xterm.c (x_make_frame_visible): Remove code that waits for the
      frame to become visible.  We have to deal with invisible frames anyway,
      the loop could sometimes before the frame turned visible, and for some
      window managers (e.g., XMonad, i3wm) it caused Emacs to get stuck in a
      busy loop (Bug#24091).
    • Tino Calancha's avatar
      diff-hunk-kill independent of point inside headers · e5e42cef
      Tino Calancha authored
      Make diff-apply-hunk and diff-hunk-kill independent of the point
      position in a diff header (Bug#17544).
      This change allows to apply hunks in order.  It also makes possible to
      press M-k repeatedly to kill hunks in the order they appear in the buffer.
      See discussion on #Bug25105.
      * lisp/vc/diff-mode.el (diff-file-junk-re):
      Move definition before it's used.
      (diff--at-diff-header-p): New predicate; return non-nil when point
      is inside a hunk header, a file header, or within a line
      matching diff-file-junk-re.
      (diff-beginning-of-hunk): Use it.
      Check if the point is inside a diff header, in the middle of a hunk,
      or before the first hunk.
      (diff-apply-hunk): Call diff-beginning-of-hunk with non-nil arg
      before apply the hunk.
      (diff-hunk-kill, diff-file-kill):
      Call diff-beginning-of-hunk with non-nil arg after kill the hunks.
      (diff-post-command-hook): Call diff-beginning-of-hunk with non-nil argument.
    • Tino Calancha's avatar
      ; Revert "Improve diff-mode navigation/manipulation" · 1508b538
      Tino Calancha authored
      This reverts commit 2c8a7e50.
      This change causes regressions:
      The following related commits are reverted as well:
      Fixes: debbugs:25105, 25400.
  2. 20 Jan, 2017 1 commit
  3. 19 Jan, 2017 2 commits
    • Philipp Stephani's avatar
      Check that variable lists are actually lists · 9c4e3097
      Philipp Stephani authored
      '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
      * test/src/eval-tests.el: Add unit tests.
    • Noam Postavsky's avatar
      Avoid inefficient regex in diff-refine-hunk (Bug#25410) · 8c0fcaf6
      Noam Postavsky authored
      * 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.
  4. 18 Jan, 2017 3 commits
    • Eli Zaretskii's avatar
      Remove lock file when auto-saving into the visited file · 5304cb98
      Eli Zaretskii authored
      * src/fileio.c (write_region): When auto-saving into the visited
      file, unlock the file whenever we mark the buffer unmodified.
    • Eli Zaretskii's avatar
      Fix a bug with signaling a thread that waits for condvar · 5fefaaa8
      Eli Zaretskii authored
      * 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.
    • Eli Zaretskii's avatar
      Rudimentary error handling for non-main threads · 57153260
      Eli Zaretskii authored
      * 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
      * test/src/thread-tests.el (thread-errors, thread-signal-early)
      (threads-condvar-wait): Test the values returned by
  5. 17 Jan, 2017 11 commits
    • Tom Tromey's avatar
      Add info-lookup help for gdb-script-mode · dbb29d7e
      Tom Tromey authored
      * lisp/info-look.el (info-lookup-guess-gdb-script-symbol): New
      Add help for gdb-script-mode.
    • Tom Tromey's avatar
      Treat ":root" as a css-selector · 8083d258
      Tom Tromey authored
      * lisp/textmodes/css-mode.el (css--font-lock-keywords): Recognize bare
      ":root" as selector.
    • Tom Tromey's avatar
      Fix JS regexp literal syntax propertization in expressions · aa711e0a
      Tom Tromey authored
      * 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.
    • Mark Oteiza's avatar
      Mark unused arguments and remove unused variables · 14c7d3a6
      Mark Oteiza authored
      * 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.
    • Michael Albinus's avatar
      Fix auto-save-file-name problem in Tramp on MS Windows · 299b190a
      Michael Albinus authored
      * 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.
    • Paul Eggert's avatar
      ; Spelling fixes · 021d340c
      Paul Eggert authored
    • Paul Eggert's avatar
      Merge from origin/emacs-25 · 2b36ae07
      Paul Eggert authored
      42614faf Update remaining copyright years with admin.el M-x set-copyright
      f17a0069 * lisp/ffap.el (ffap-lax-url): Bump :version after recent cha...
    • Paul Eggert's avatar
      ; Merge from origin/emacs-25 · dee6981c
      Paul Eggert authored
      The following commit was skipped:
      8dd624c8 Document that functions in 'ffap-alist' can use the match data
    • Mark Oteiza's avatar
      Nix some uses of eval · 5362ef79
      Mark Oteiza authored
      * 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.
    • Mark Oteiza's avatar
      ; * lisp/play/dunnet.el: Fix file footer. · 922850bc
      Mark Oteiza authored
    • Tom Tromey's avatar
      Fix comment in css-mode.el · e27239ad
      Tom Tromey authored
      * lisp/textmodes/css-mode.el: Remove obsolete comment.
  6. 15 Jan, 2017 1 commit
    • Noam Postavsky's avatar
      Improve ffap-gopher-at-point handling of long lines · fd6b829d
      Noam Postavsky authored
      * 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.
  7. 14 Jan, 2017 4 commits
  8. 13 Jan, 2017 13 commits
    • Phillip Lord's avatar
      Record autoloads till emacs dump · 72c668a9
      Phillip Lord authored
      * 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.
    • Tom Tromey's avatar
      Add chained indentation to js-mode · 50239082
      Tom Tromey authored
      * 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.
    • Tom Tromey's avatar
      Fix js-mode indentation bug · b47f9721
      Tom Tromey authored
      * lisp/progmodes/js.el (js--find-newline-backward): New function.
      (js--continued-expression-p): Use it.
      * test/manual/indent/js.js: Add new test.
    • Tom Tromey's avatar
      Fix definition of EMACS in test/manual/indent/Makefile · cab7a385
      Tom Tromey authored
      * test/manual/indent/Makefile (EMACS): Add one more "..".
    • Tom Tromey's avatar
      Add .jsx to auto-mode-alist · 765920f7
      Tom Tromey authored
      * lisp/files.el (auto-mode-alist): Add entry for .jsx.
    • Tom Tromey's avatar
      Fix two js-mode filling bugs · 05fe74be
      Tom Tromey authored
      Bug#19399 and Bug#22431:
      * lisp/progmodes/js.el (js-mode): Set comment-line-break-function and
      * test/lisp/progmodes/js-tests.el: New file.
    • Eli Zaretskii's avatar
      Fix last change · d018843e
      Eli Zaretskii authored
      * 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.
    • Eli Zaretskii's avatar
      Fix the new condvar test · 26b5426d
      Eli Zaretskii authored
      * test/src/thread-tests.el (threads-condvar-wait): Enlarge the
      time we sleep in the main thread to let the other thread
      process notifications.
    • Eli Zaretskii's avatar
      Minor improvements in the new condvar test · 9c4d2afa
      Eli Zaretskii authored
      * 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.
    • Eli Zaretskii's avatar
      Fix a bug in waiting for condition variable · 03e4ab0d
      Eli Zaretskii authored
      * 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.
    • Katsumi Yamaoka's avatar
    • Katsumi Yamaoka's avatar
      mm-uu.el: Don't dissect patch part · dd80ee69
      Katsumi Yamaoka authored
      This fixes a bug that the patch part is broken in the article
      <87inpjzhpb.fsf@users.sourceforge.net> in the bug-gnu-emacs list.
      * lisp/gnus/mm-uu.el (mm-uu-dissect-text-parts):
      Don't dissect patch part.
    • Dmitry Lazurkin's avatar
      Fix extracting async def type and name in python mode imenu · d4a97088
      Dmitry Lazurkin authored
      * lisp/progmodes/python.el (python-imenu--get-defun-type-name):
      New function.
      (python-imenu--build-tree): Use python-imenu--get-defun-type-name for
      extract async or simple def type and name at current
      position (Bug#24820).
      * test/lisp/progmodes/python-tests.el (python-imenu-create-index-1):
      (python-imenu-create-flat-index-1): Add async def's.
  9. 12 Jan, 2017 1 commit
    • Katsumi Yamaoka's avatar
      Remove garbage from Content-Transfer-Encoding value (bug#25420) · 55b52658
      Katsumi Yamaoka authored
      * lisp/mail/ietf-drums.el (ietf-drums-strip-cte): New function.
      (ietf-drums-remove-garbage): New function.
      (ietf-drums-remove-whitespace): Remove CR as well.
      * lisp/mail/mail-parse.el (mail-header-strip-cte):
      Alias to ietf-drums-strip-cte.
      * lisp/gnus/gnus-art.el (article-decode-charset):
      * lisp/gnus/gnus-sum.el (gnus-summary-enter-digest-group):
      * lisp/gnus/mm-decode.el (mm-dissect-buffer):
      * lisp/gnus/nndoc.el (nndoc-decode-content-transfer-encoding)
      * lisp/mh-e/mh-mime.el (mh-decode-message-body):
      Replace mail-header-strip with mail-header-strip-cte.