* lisp/gnus/nnmaildir.el (nnmaildir--prepare): Use a more
functional style.
(nnmaildir--update-nov): Remove unused var `numdir'.
(nnmaildir-request-type, nnmaildir--scan, nnmaildir-request-newgroups)
(nnmaildir-request-group, nnmaildir-request-create-group)
(nnmaildir-request-post, nnmaildir-request-move-article)
(nnmaildir-request-accept-article, nnmaildir-active-number): Mark unused args.
(nnmaildir-get-new-mail, nnmaildir-group-alist)
(nnmaildir-active-file): Declare.
(nnmaildir-request-scan): Remove unused vars `group' and `grp-dir'.
(nnmaildir-request-update-info): Remove unused vars `dotfile', `num',
`mark', `end', `new-mark', and `mark-sym'.
(nnmaildir-retrieve-headers): Remove unused args `srv-dir', `dir',
`nlist2'.
(nnmaildir-request-expire-articles):
Remove unused vars `article', `stop' and `nlist2'.
(nnmaildir-request-set-mark): Remove unused vars `begin', `article' and
`end'. Use nnmaildir--article when dyn-binding is needed.
Give the value directly in the `let' for `del-mark', `del-action',
`add-action', and `set-action'. Don't use `add-to-list' on a local var.
(nnmaildir-close-server): Declare those local vars that need to be
dyn-bound.
On some optimizing C compilers, copying a structure did not
copy the padding bytes between elements, and the type punning
between struct input_data and struct selection_input_data did
not work. Change the C code to use a proper union type instead.
Problem reported by YAMAMOTO Mitsuharu (Bug#20756).
* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr)
(readable_events, discard_mouse_events, kbd_buffer_events_waiting)
(kbd_buffer_get_event, process_special_events, stuff_buffered_input)
(mark_kboards):
Use union buffered_input_event, not struct input_event.
(clear_event, deliver_input_available_signal, process_special_events):
Remove unnecessary forward decls.
(kbd_buffer_store_buffered_event): New function, mostly just the
old kbd_buffer_store_event_hold, except its argument is of type
union buffered_input_event, not struct input_event.
(kbd_buffer_unget_event): Define only if HAVE_X11, since it's
not needed otherwise. Argument is now of type
struct selection_input_event *, not struct input_event *.
All callers changed.
(clear_event): Arg is now of type union buffered_input_event *,
not struct input_event *. All callers changed.
* src/keyboard.h [HAVE_X11]: Include "xterm.h".
(union buffered_input_event): New type.
(kbd_buffer_store_event_hold): Now an inline function,
defined here.
* src/termhooks.h (EVENT_KIND_WIDTH): New constant.
(struct input_event): Use it.
* src/xselect.c (struct selection_event_queue):
Make elements be of type struct selection_input_event,
not struct input_event.
(selection_input_event_equal): New static function.
(x_queue_event): Use it.
(x_queue_event, x_decline_selection_request)
(x_selection_current_request, x_reply_selection_request)
(x_handle_selection_request, x_handle_selection_clear)
(x_handle_selection_event): Use struct selection_input_event,
not struct input_event. All callers changed.
(x_convert_selection): Omit unused first arg. All callers changed.
(Fx_disown_selection_internal): Omit unnecessary union.
* src/xterm.c (handle_one_xevent): Use new union buffered_input_event
rather than rolling our own equivalent. Prefer sie.kind when
setting up that kind of structure.
Call kbd_buffer_store_buffered_event, not kbd_buffer_store_event_hold.
* src/xterm.h (struct selection_input_event: Use EVENT_KIND_WIDTH.
(SELECTION_EVENT_DISPLAY, SELECTION_EVENT_DPYINFO)
(SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
(SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
(SELECTION_EVENT_TIME, x_handle_selection_event):
Arg is now of type struct selection_input_event *)
not struct input_event *. All callers changed.
(isearch-character-fold-search, isearch--character-fold-extras)
(isearch--character-fold-table): New variable.
(isearch--character-folded-regexp): New function.
(isearch-search-fun-default): Use them.
* lisp/replace.el (replace-character-fold): New variable.
(replace-search): Use it.
* etc/NEWS: Document it.
* lisp/window.el (switch-to-visible-buffer): Doc adjustment.
(switch-to-prev-buffer, switch-to-next-buffer): Respect
switch-to-visible-buffer independent of the windows history.
Copyright-paperwork-exempt: yes
* nextstep/Makefile.in (${ns_appbindir}): Remove rule.
(${ns_appbindir}/Emacs, links): Create ns_appbindir in the rule,
not as an order-only prerequisite.
* src/syssignal.h [CYGWIN] (PROFILER_CPU_SUPPORT): Revert previous
change that undefined this.
(SIGEV_SIGNAL): Ensure that this is defined as a macro.
* src/profiler.c [CYGWIN] (timer_getoverrun): Define as a macro on
Cygwin.
* src/profiler.c (setup_cpu_timer): Change return type to 'int';
return -1 if the sampling interval is invalid.
(Fprofiler_cpu_start): Improve error message if 'setup_cpu_timer'
fails. (Bug#20843)
* src/atimer.c (Fdebug_timer_check) [!HAVE_TIMERFD]: Actively run
the expired timers, since wait_reading_process_output doesn't.
(debug_timer_callback): Enlarge the tolerance to 20 msec.
* lisp/emacs-lisp/find-func.el (find-function-on-key-do-it):
Extract from `find-function-on-key', add a second argument.
(find-function-on-key): Use it (bug#19679).
(find-function-on-key-other-window)
(find-function-on-key-other-frame): New commands.
* lisp/emacs-lisp/advice.el (ad-map-arglists):
* lisp/kermit.el (kermit-clean-on):
* lisp/mh-e/mh-comp.el (mh-repl-group-formfile):
* src/keyboard.c (Frecursive_edit):
Use curved quotes when quoting text containing apostrophe,
so that the apostrophe isn't curved in the output.
* lisp/emacs-lisp/map.el (map-elt): Define a gv-expander.
* lisp/emacs-lisp/map.el (map--dispatch): Tighten the code.
* lisp/emacs-lisp/map.el (map-put): Redefine it as a function using a
`setf' with `map-elt'.
* test/automated/map-tests.el: Comment out `test-map-put-literal'.
* test/automated/bytecomp-tests.el (bytecomp-tests--warnings):
Allow the warning to begin on the 3rd, not only 2nd line, which
happens if temporary-file-directory has a very long name.
* lisp/cus-start.el (standard): Don't assume curved quotes are
easily distinguishable when users are tinkering with a setting
that affects how curved quotes are generated.
* lisp/international/mule-util.el (filepos-to-bufferpos):
Fix typo. Move non-exact check to the utf-16 branch (the only one
affected). Don't use byte-to-position for the utf-16 case.
* lisp/international/mule-util.el (filepos-to-bufferpos): Remove
test for utf-8-emacs. Exempt single-byte encodings from the
'use-exact' path when QUALITY is 'exact'. Test UTF-16 encodings
for BOM before subtracting 2 bytes. Use 'identity' when adjusting
UTF-16 encoded files for CR-LF EOLs.