* lisp/gnus/nnimap.el (nnimap-open-connection-1): Always query
capabilities, so that a 'plain value for the `nnimap-stream' server
variable is handled correctly.
* doc/misc/gnus.texi (Customizing the IMAP Connection):
Document the 'plain option.
Eric Abrahamsen [Wed, 8 Jul 2015 22:28:50 +0000 (22:28 +0000)]
gnus-group.el: Check if group names are already strings
* lisp/gnus/gnus-group.el (gnus-group-group-name):
The group name may already be a string.
Specifically, in the group list reached from the *Server* buffer,
the 'gnus-group text property returns a string. Everywhere else
it returns a symbol.
Stefan Monnier [Tue, 7 Jul 2015 15:37:04 +0000 (11:37 -0400)]
(gv-setter, gv-synthetic-place, gv-delay-error): New funs/macros
* lisp/emacs-lisp/gv.el (gv-setter): New function.
(gv-invalid-place): New error.
(gv-get): Use them.
(gv-synthetic-place, gv-delay-error): New places.
* lisp/emacs-lisp/cl-generic.el (cl--generic-setf-rewrite): Remove.
(cl-defgeneric, cl-defmethod): Use gv-setter.
Ken Brown [Tue, 7 Jul 2015 14:24:09 +0000 (10:24 -0400)]
Improve recent change to emacsclient on Cygwin
* lisp/server.el (server-process-filter): Remove redundant check
that 'cygwin-convert-file-name-from-windows' is defined as a
function on Cygwin. Don't call that function unless its argument
starts with a drive letter.
Stefan Monnier [Tue, 7 Jul 2015 06:14:16 +0000 (02:14 -0400)]
Add online-help support to describe types
* lisp/help-fns.el (describe-symbol-backends): Move to help-mode.el.
(describe-symbol): Improve the selection of default.
* lisp/help-mode.el: Require cl-lib.
(describe-symbol-backends): Move from help-fns.el.
(help-make-xrefs): Use it.
* lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Add entry
for types.
(cl--typedef-regexp): New const.
(find-function-regexp-alist): Add entry for types.
(cl-help-type, cl-type-definition): New buttons.
(cl-find-class): New function.
(cl-describe-type): New command.
(cl--describe-class, cl--describe-class-slot)
(cl--describe-class-slots): New functions, moved from eieio-opt.el.
* lisp/emacs-lisp/cl-generic.el (cl--generic-method-documentation)
(cl--generic-all-functions, cl--generic-specializers-apply-to-type-p):
New functions. Moved from eieio-opt.el.
(cl--generic-class-parents): New function, extracted from
cl--generic-struct-specializers.
(cl--generic-struct-specializers): Use it.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Use pcase-dolist.
Improve constructor's docstrings.
(cl-struct-unknown-slot): New error.
(cl-struct-slot-offset): Use it.
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Record the type
definition in current-load-list.
* lisp/emacs-lisp/eieio-core.el (eieio--known-slot-names): New var.
(eieio--add-new-slot): Set it.
(eieio-defclass-internal): Use new name for current-load-list.
(eieio-oref): Add compiler-macro to warn about unknown slots.
* lisp/emacs-lisp/eieio.el (defclass): Update eieio--known-slot-names
as compile-time as well. Improve constructor docstrings.
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
(eieio--help-print-slot, eieio-help-class-slots): Move to cl-extra.el.
(eieio-class-def): Remove button.
(eieio-help-constructor): Use new name for load-history element.
(eieio--specializers-apply-to-class-p, eieio-all-generic-functions)
(eieio-method-documentation): Move to cl-generic.el.
(eieio-display-method-list): Use new names.
* lisp/help-fns.el (describe-symbol-backends): New var.
(help-xref-stack-item): Declare.
(describe-symbol): Rename from describe-function-or-variable.
Rewrite using describe-symbol-backends instead of help-xref-interned.
* lisp/help.el (help-map): Use it.
* lisp/help-mode.el (help-symbol, help-follow-symbol): Use it.
(help-xref-interned): Make it into an obsolete alias.
Fix parsing glitches in dired-mark-sexp (bug#13575)
* lisp/dired-x.el (dired-x--string-to-number): New function.
(dired-mark-sexp): Use it. Tweak dired-re-inode-size. Fix usage
of directory-listing-before-filename-regexp. Consider
forward-word harmful and replace it. Add more verbiage in
comments and doc string.
python.el: Respect process environment for remote shells
* lisp/progmodes/python.el
(python-shell-calculate-process-environment): Calculate
process-environment or tramp-remote-process-environment depending
whether current file is remote.
(python-shell-calculate-exec-path): Calculate exec-path or
tramp-remote-path depending whether current file is remote.
(python-shell-with-environment): New macro.
(python-shell-prompt-detect, python-shell-calculate-command)
(python-shell-make-comint, python-check): Use it.
python.el: Avoid making let-bound defvars buffer local (Bug#18244)
* lisp/progmodes/python.el (python-shell--interpreter)
(python-shell--interpreter-args): New vars.
(inferior-python-mode, python-shell-make-comint): Use them.
Ian Kelling [Mon, 6 Jul 2015 01:14:25 +0000 (18:14 -0700)]
Avoid returning early reading process output due to SIGIO
* src/process.c (wait_reading_process_output): Extend the behavior of
not breaking due to not finding output when a timer has lowered the
timeout to include when SIGIO lowers the timeout.
Ian Kelling [Mon, 6 Jul 2015 00:00:26 +0000 (17:00 -0700)]
Don't return as fast reading any process output
* src/process.c (wait_reading_process_output):
The patch for Bug#17647 returns too fast sometimes when reading
from any processes. Revert part of it, and limit the timeout more
sensibly (Bug#20978).
Ian Kelling [Sun, 5 Jul 2015 22:38:29 +0000 (15:38 -0700)]
; Rename local var nsecs to adaptive_nsecs
* src/process.c (wait_reading_process_output): Rename inner nsecs to
adaptive_nsecs. There is already an nsecs, and this function is
confusing enough (Bug#20978).
Ian Kelling [Sun, 5 Jul 2015 22:35:23 +0000 (15:35 -0700)]
; Rename local var to match function name
* src/process.c (wait_reading_process_output, status_notify):
Previously the function wait_reading_process_input was renamed to the
more logical wait_reading_process_output. Make its local variables
consistent with that change (Bug#20978).
Ian Kelling [Sun, 5 Jul 2015 22:30:27 +0000 (15:30 -0700)]
Remove ADAPTIVE_READ_BUFFERING ifdef
* src/process.c (make-process, make-pipe-process, deactivate_process)
(wait_reading_process_output, read_process_output, send_process)
(init_process_emacs): ifdef ADAPTIVE_READ_BUFFERING was originally
added in case there was an operating system in which it was not
useful. That was 11 years ago and it hasn't happened. Make
development easier by not considering the effect of changes on a
theoretical OS where this is disabled (Bug#20978).
Christoph Wedler [Fri, 19 Jun 2015 13:38:24 +0000 (13:38 +0000)]
Respect `prog-indentation-context' in python.el
* lisp/progmodes/python.el (python-indent-guess-indent-offset)
(python-indent-context, python-indent--calculate-indentation)
(python-info-current-defun)
(python-info-dedenter-opening-block-message)
(python-info-line-ends-backslash-p)
(python-info-beginning-of-backslash)
(python-info-continuation-line-p): Use `prog-widen'.
(python-indent--calculate-indentation)
(python-indent--calculate-levels)
(python-indent-calculate-indentation): Use `prog-first-column'.
(python-indent--calculate-levels): Simplify.
Ignore also initial empty lines for syntax calculation.
* lisp/progmodes/python.el (python-indent-context): Return
:no-indent for first non-empty line, not just in line 1.
* test/automated/python-tests.el (python-indent-base-case)
(python-indent-inside-paren-1, python-indent-inside-paren-2)
(python-indent-inside-paren-3, python-indent-inside-paren-4)
(python-indent-inside-paren-5, python-indent-inside-paren-6)
(python-indent-after-backslash-1)
(python-indent-after-backslash-2)
(python-indent-after-backslash-3)
(python-indent-after-backslash-4, python-indent-inside-string-1):
Expect :no-indent for first non-empty line.
Eli Zaretskii [Sat, 4 Jul 2015 11:23:27 +0000 (14:23 +0300)]
Fix mouse pointer on w32 when a menu is active
* src/w32fns.c (w32_wnd_proc): Don't change the mouse pointer
shape while a menu is in use. This started happening since we now
send WM_EMACS_SHOWCURSOR messages when the mouse moves.
Martin Rudalics [Fri, 3 Jul 2015 13:15:51 +0000 (15:15 +0200)]
Fix some issues with `window-divider-mode'
* lisp/frame.el (window-divider-default-places): New option.
(window-divider-mode): Remove option.
(window-divider-mode): Make it a "regular" minor mode.
(window-divider-width-valid-p): Drop frame- prefix.
(window-divider-mode-apply): New argument ENABLE. Drop frame-
prefix. Handle `window-divider-default-places'.
(frame--window-divider-mode-set-and-apply): Remove.
(window-divider-default-bottom-width)
(window-divider-default-right-width): Drop :group entries.
* lisp/menu-bar.el (menu-bar-bottom-and-right-window-divider)
(menu-bar-right-window-divider, menu-bar-bottom-window-divider)
(menu-bar-no-window-divider): Set `window-divider-default-places'
and call `window-divider-mode'.
* doc/emacs/frames.texi (Window Dividers): Document
`window-divider-default-places'.
Martin Rudalics [Thu, 2 Jul 2015 12:58:31 +0000 (14:58 +0200)]
Some further fixes in Change Window node. (Bug#20183)
* doc/emacs/windows.texi (Change Window): Replace "rearranging"
by "resizing" in section title. Add some concept indices.
Suggested by N. Jackson (Bug#20183).
Paul Eggert [Thu, 2 Jul 2015 05:24:51 +0000 (22:24 -0700)]
Don't display ‘’ as `' under X in en_GB
The curved quote setup code invokes (char-displayable-p ?‘),
but this isn’t reliable until after the X frame replaces the
terminal frame (Bug#20926).
* lisp/international/mule-cmds.el (set-locale-environment):
Move curved quote setup code from here ...
* lisp/startup.el (command-line): ... to here, after creating
the X frame.
Eli Zaretskii [Wed, 1 Jul 2015 16:33:56 +0000 (19:33 +0300)]
Be more tolerant to fonts named "Foobar-12"
* src/frame.c (x_set_font): If font_spec_from_name returns nil,
don't barf; instead, request a new fontset to be generated. This
avoids unnecessarily rejecting fonts named against XLFD rules. See
http://lists.gnu.org/archive/html/help-emacs-windows/2015-06/msg00001.html,
for the description of the original problem.
* lisp/faces.el (set-face-attribute): Don't be fooled too easily
by a hyphen in a font's name.
Eli Zaretskii [Wed, 1 Jul 2015 16:27:13 +0000 (19:27 +0300)]
Fix value of posn-at-pont in R2L lines
* src/keyboard.c (Fposn_at_x_y, Fposn_at_point): Allow X pixel
coordinate of -1, for a newline in a right-to-left line that
overflowed into the left fringe.
Stefan Monnier [Wed, 1 Jul 2015 13:31:25 +0000 (09:31 -0400)]
(cl--copy-slot-descriptor): Copy the `props' alist as well
* lisp/emacs-lisp/cl-preloaded.el (cl--copy-slot-descriptor-1):
Rename from cl--copy-slot-descriptor.
(cl--copy-slot-descriptor): New function. Copy the alist (bug#20914).
Glenn Morris [Tue, 30 Jun 2015 18:59:04 +0000 (14:59 -0400)]
Improve reproducibility of generated loaddefs file.
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
Make the return value the modtime of the input file (if no autoloads).
(update-directory-autoloads): In the "no autoloads" section,
use "most recent modtime" rather than "current time".
Eli Zaretskii [Tue, 30 Jun 2015 15:59:21 +0000 (18:59 +0300)]
Don't block changes in mouse pointer inside 'track-mouse'
* etc/NEWS:
* doc/lispref/frames.texi (Mouse Tracking): Document the special
effect of setting 'track-mouse' to 'dragging'.
* lisp/textmodes/artist.el (artist-mouse-draw-continously):
* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column-iteration):
* lisp/mouse-drag.el (mouse-drag-throw):
* lisp/mouse.el (mouse-drag-line): Set 'track-mouse' to 'dragging'
to avoid changes in the shape of the mouse pointer.
* src/xdisp.c (define_frame_cursor1): Don't change the mouse
pointer shape when do_mouse_tracking has the value of 'dragging',
not just any non-nil value. (Bug#20934)
(syms_of_xdisp): DEFSYM 'dragging'.
Ted Zlatanov [Tue, 30 Jun 2015 03:07:30 +0000 (23:07 -0400)]
cfengine.el: update for the upcoming CFEngine 3.7 release
Update for the upcoming CFEngine 3.7 release: support macros and
quoted context strings; reformat JSON; indent promise attributes 2
units by default; give function parameter descriptions in the eldoc
glue.
* cfengine.el: Update version and docs and fix name. Autoload
`json-pretty-print'. Support new features in 3.7.
(cfengine-parameters-indent): Set default promise attribute indent to
2 more than the promise itself.
(cfengine3-macro-regex): New variable to match the new macro syntax.
(cfengine3-font-lock-keywords): Use it to highlight macros.
(cfengine3-indent-line): Use it to indent macros to column 0.
(cfengine3-class-selector-regex): Update for the new quoted strings
format.
(cfengine3-reformat-json-string): New function to reformat a JSON
string using `json-pretty-print'.
(cfengine3-format-function-docstring): Use function parameter
description if it's provided by the cf-promises syntax dump.
Eli Zaretskii [Mon, 29 Jun 2015 16:10:20 +0000 (19:10 +0300)]
Allow font names that end in "-NN", where NN is a number
* src/font.c (font_load_for_lface): If the font-spec didn't match
any available fonts, try again without interpreting trailing "-NN"
as the font size. For the description of the original problem, see
http://lists.gnu.org/archive/html/help-emacs-windows/2015-06/msg00001.html