Eli Zaretskii [Sat, 27 Jul 2013 13:08:03 +0000 (16:08 +0300)]
Fix focus-out events on MS-Windows.
src/w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
w32_detect_focus_change instead of doing part of its job by hand.
This fixes the problem whereby FOCUS_OUT events were not sent to
the event queue.
Alan Mackenzie [Sat, 27 Jul 2013 12:07:43 +0000 (12:07 +0000)]
Make Java try-with-resources statement parse properly.
progmodes/cc-langs.el (c-block-stmt-1-2-kwds, c-block-stmt-1-2-key): New
language constants/variables.
progmodes/cc-engine.el (c-beginning-of-statement-1, c-after-conditional): Adapt
to deal with c-block-stmt-1-2-key.
progmodes/cc-fonts.el (c-font-lock-declarations): Adapt to deal with
c-block-stmt-1-2-key.
lisp/desktop.el: Restore frames at their positions, even if offscreen.
(desktop--make-frame): Apply most frame parameters after creating the frame
to force (partially or totally) offscreen frames to be restored as such.
gnus-sum.el (gnus-sort-threads-recursively): New defcustom.
(gnus-sort-threads): Use it.
gnus.texi (Sorting the Summary Buffer): Document new defcustom `gnus-sort-threads-recursively'.
Stefan Monnier [Fri, 26 Jul 2013 15:09:04 +0000 (11:09 -0400)]
* lisp/emacs-lisp/edebug.el: Use backtrace-eval to handle lexical variables.
(edebug-eval): Use backtrace-eval.
(edebug--display, edebug--recursive-edit): Don't let-bind the
edebug-outer-* vars that keep track of variables we locally let-bind.
(edebug-outside-excursion): Don't restore outside values of locally
let-bound vars.
(edebug--display): Use user-error.
(cl-lexical-debug, cl-debug-env): Remove.
Eli Zaretskii [Fri, 26 Jul 2013 09:59:59 +0000 (12:59 +0300)]
Fix bug #14841 with invisible frames on MS-Windows.
src/w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
being re-exposed only if it didn't ask to become visible.
<WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
was previously iconified.
(x_iconify_frame): Mark the frame iconified.
Add aliases for encrypting mail.
* epa.el (epa-mail-aliases): New option.
* epa-mail.el (epa-mail-encrypt): Rewrite to be callable from programs.
Bind inhibit-read-only so read-only text doesn't ruin everything.
(epa-mail-default-recipients): New subroutine broken out.
Handle epa-mail-aliases.
Stefan Monnier [Fri, 26 Jul 2013 07:38:18 +0000 (03:38 -0400)]
Add support for lexical variables to the debugger's `e' command.
* lisp/emacs-lisp/debug.el (debug): Don't let-bind the debugger-outer-*
vars, except for debugger-outer-match-data.
(debugger-frame-number): Move check for "on a function call" from
callers into it. Add `skip-base' argument.
(debugger-frame, debugger-frame-clear): Simplify accordingly.
(debugger-env-macro): Only reset the state stored in non-variables,
i.e. current-buffer and match-data.
(debugger-eval-expression): Rewrite using backtrace-eval.
* lisp/subr.el (internal--called-interactively-p--get-frame): Remove.
(called-interactively-p):
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): Use the new
`base' arg of backtrace-frame instead.
* src/eval.c (set_specpdl_old_value): New function.
(unbind_to): Minor simplification.
(get_backtrace_frame): New function.
(Fbacktrace_frame): Use it. Add `base' argument.
(backtrace_eval_unrewind, Fbacktrace_eval): New functions.
(syms_of_eval): Export backtrace-eval.
* src/xterm.c (x_focus_changed): Simplify.
lisp/desktop.el: Use pcase-let, pcase-let* in a few places.
(desktop--select-frame, desktop--sort-states, desktop-restore-frames):
Deobfuscate access to desktop--mini values.
* doc/misc/eshell.texi (Bugs and ideas): Minor updates.
* doc/misc/faq.texi (Reporting bugs, Origin of the term Emacs)
(Setting up a customization file)
(Using an already running Emacs process, Turning off beeping)
(Packages that do not come with Emacs)
(Replying to the sender of a message): Avoid using @email.
* doc/misc/pcl-cvs.texi (Contributors, Bugs): Avoid using @email.
* doc/misc/reftex.texi (Imprint): Avoid using @email.
lisp/desktop.el: Add workaround for bug#14949.
(desktop--make-frame): Do not pass the `fullscreen' parameter to
modify-frame-parameters if the value has not changed.
(desktop--make-frame): On cl-delete-if call, check parameter name,
not full parameter.
Michael Albinus [Wed, 24 Jul 2013 13:56:19 +0000 (15:56 +0200)]
* automated/file-notify-tests.el
(file-notify--test-local-enabled): New defconst. Replaces all
`file-notify-support' occurences.
(file-notify--test-remote-enabled): New defun.
(file-notify--deftest-remote): Use it.
(file-notify-test00-availability): Rewrite.
(file-notify-test00-availability-remote): New defun.
(file-notify-test01-add-watch): Rewrite first erroneous check.
Paul Eggert [Wed, 24 Jul 2013 06:21:07 +0000 (07:21 +0100)]
* src/eval.c (Fprogn): Do not check that BODY is a proper list.
This undoes the previous change. The check slows down the
interpreter, and is not needed to prevent a crash. See
<http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
* doc/lispref/eval.texi (Special Forms): Mention 'lambda'. Also, say that
non-well-formed expressions result in unspecified behavior, though
Emacs will not crash.
Stefan Monnier [Wed, 24 Jul 2013 04:56:12 +0000 (00:56 -0400)]
* lisp/files.el (revert-buffer-function): Use a non-nil default.
(revert-buffer-preserve-modes): Declare var to
provide access to the `preserve-modes' argument.
(revert-buffer): Let-bind it.
(revert-buffer--default): New function, extracted from revert-buffer.
Stefan Monnier [Wed, 24 Jul 2013 04:37:11 +0000 (00:37 -0400)]
* lisp/lpr.el: Signal print errors more prominently.
(print-region-function): Don't default to nil.
(lpr-print-region): New function, extracted from print-region-1.
Check lpr's return value and signal an error in case of problem.
(print-region-1): Use it.
* lisp/ps-print.el (ps-windows-system, ps-lp-system): Remove. Use the lpr-*
versions instead.
(ps-printer-name): Default to nil.
(ps-printer-name-option): Default to lpr-printer-switch.
(ps-print-region-function): Don't default to nil.
(ps-postscript-code-directory): Simplify default.
(ps-do-despool): Use lpr-print-region to properly check the outcome.
(ps-string-list, ps-eval-switch, ps-flatten-list)
(ps-flatten-list-1): Remove.
(ps-multibyte-buffer): Avoid setq.
* lisp/dos-w32.el (direct-print-region-helper): Use proper regexp operators.
(print-region-function, ps-print-region-function): Don't set them here.
Michael Mauger [Wed, 24 Jul 2013 00:25:53 +0000 (20:25 -0400)]
* progmodes/sql.el Version 3.3
(sql-product-alist): Improve oracle :prompt-cont-regexp.
(sql-starts-with-prompt-re, sql-ends-with-prompt-re): New functions.
(sql-interactive-remove-continuation-prompt): Rewrite, use
functions above. Fix continuation prompt and complete output line
handling.
(sql-redirect-one, sql-execute): Use `read-only-mode' on
redirected output buffer.
(sql-mode): Restore deleted code (Bug#13591).
No need for configure to create etc/ and lisp/ any more
* configure.ac (etc, lisp): No need to create specially.
Configure already creates lisp when generating lisp/Makefile;
src/Makefile now creates etc when needed.
Paul Eggert [Tue, 23 Jul 2013 08:08:57 +0000 (09:08 +0100)]
Port to GNU/Linux systems with tinfo but not ncurses.
* configure.ac (USE_NCURSES): New symbol.
* src/dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
to decide whether ncurses is being used. Without this change,
GCC complains about tgetent not being declared, on a system
that has tinfo installed but ncurses not installed.
Paul Eggert [Tue, 23 Jul 2013 06:48:34 +0000 (07:48 +0100)]
Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
* data.c (Fsetq_default):
* eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
(Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
(Fcondition_case):
Tune by taking advantage of the fact that ARGS is always a list
when a function is declared to have UNEVALLED args.
* gnus.el (gnus-continuum-version): Do main calculations in integers.
(gnus-continuum-version-1): New function, return a string.
* gnus-msg.el (gnus-extended-version, gnus-bug):
Use gnus-continuum-version-1 instead of gnus-continuum-version.
Stefan Monnier [Mon, 22 Jul 2013 16:25:32 +0000 (12:25 -0400)]
* lisp/progmodes/subword.el: Fix boundary case.
(subword-forward-regexp): Make it a constant. Wrap optional \\W in its
own group.
(subword-backward-regexp): Make it a constant.
(subword-forward-internal): Don't treat a trailing capital as the
beginning of a word.
* test/automated/subword-tests.el: New file.
Stefan Monnier [Mon, 22 Jul 2013 04:06:21 +0000 (00:06 -0400)]
* lisp/url/url-http.el (status): Remove, unused.
(success): Remove var.
(url-http-handle-authentication): Return the value that `success'
should take instead of setting `success' directly. Don't set `status'
since it's not used.
(url-http-parse-headers): Avoid unneeded setq.
Move the `setq success'.
(url-http): Use pcase.
(url-http-file-exists-p): Simplify.
lisp/desktop.el: Require 'cl-lib.
(desktop-before-saving-frames-functions): New hook.
(desktop--process-minibuffer-frames): Set desktop-mini parameter only
for frames being saved. Rename from desktop--save-minibuffer-frames.
(desktop-save-frames): Run hook desktop-before-saving-frames-functions.
Do not save frames with non-nil `desktop-dont-save' parameter. Filter
out deleted frames.
(desktop--find-frame): Use cl-find-if.
(desktop--select-frame): Use cl-(first|second|third) to access values
of desktop-mini.
(desktop--make-frame): Use cl-delete-if.
(desktop--sort-states): Fix sorting of minibuffer-owning frames.
(desktop-restore-frames): Use cl-(first|second|third) to access values
of desktop-mini. Look for visible frame at the end, not while
restoring frames.
lisp/desktop.el: Make some frame-restoring functions public.
(desktop-saved-frame-states): Rename from desktop--saved-states;
all users changed.
(desktop-save-frames): Rename from desktop--save-frames.
Do not save state to desktop file.
(desktop-save): Save desktop-saved-frame-states to desktop file
and reset to nil.
(desktop-restoring-frames-p): New function.
(desktop-restore-frames): Use it. Rename from desktop--restore-frames.
(desktop-read): Use desktop-restoring-frames-p. Do not try to fix
buffer-lists when restoring frames. Suggested by Martin Rudalics.
Paul Eggert [Sun, 21 Jul 2013 06:53:47 +0000 (23:53 -0700)]
Avoid vfork-related deadlock more cleanly.
* callproc.c (child_setup): When the child's exec fails, output
the program name, as that's more useful. Use O_NONBLOCK to avoid
deadlock.
* process.c (create_process_1): Remove; no longer needed.
(create_process): Remove timer hack; no longer needed, now that
the child avoids deadlock.
lisp/desktop.el: Correctly restore iconified frames.
(desktop--filter-iconified-position): New function.
(desktop-filter-parameters-alist): Add entries for `top' and `left'.
* lisp/image-dired.el (image-dired-track-original-file):
Use with-current-buffer.
(image-dired-track-thumbnail): Use with-current-buffer.
Avoid changing point of wrong window.