* lisp/emacs-lisp/lisp-mode.el (lisp-string-after-doc-keyword-p): New fun.
(lisp-string-in-doc-position-p): New function, extracted from
lisp-font-lock-syntactic-face-function.
(lisp-font-lock-syntactic-face-function): Use them.
Fixes: debbugs:9130
(rectangle): New group.
(rectangle--pos-cols): Add `window' argument.
(rectangle--string-preview-state, rectangle--string-preview-window):
New vars.
(rectangle--string-flush-preview, rectangle--string-erase-preview)
(rectangle--space-to, rectangle--string-preview): New functions.
(string-rectangle): Use them.
(rectangle--inhibit-region-highlight): New var.
(rectangle--highlight-for-redisplay): Obey it. Make sure
`apply-on-region' uses the point-crutches of the right window.
Use :align-to rather than multiple spaces.
(operate-on-rectangle): Use apply-on-rectangle.
(rectangle--mark-crutches): New var.
(rectangle--pos-cols, rectangle--col-pos, rectangle--point-col)
(rectangle--crutches, rectangle--reset-crutches): New functions.
(apply-on-rectangle): Obey crutches. Avoid setq.
Fix missing final iteration if end is at EOB&BOL.
(rectangle-mark-mode-map): Add remap bindings for
exchange-point-and-mark and char/line movements.
(rectangle--*-char): New function.
(rectangle-exchange-point-and-mark, rectangle-right-char)
(rectangle-left-char, rectangle-forward-char)
(rectangle-backward-char, rectangle-next-line)
(rectangle-previous-line): New commands.
(rectangle--place-cursor): New function.
(rectangle--highlight-for-redisplay): Use it. Use apply-on-rectangle.
doc/lispref/commands.texi (Click Events): Update contents of click event's
position list due to last changes in make_lispy_position.
etc/NEWS: Mention the incompatible change.
lisp/mail/rmail.el (rmail-delete-forward, rmail-delete-backward): The
argument COUNT is now optional, to be more backward-compatible.
Doc fix.
etc/NEWS: Document the API change.
* doc/emacs/macos.texi (Mac / GNUstep Customization): Mention ns custom group.
(Customization options specific to Mac OS / GNUstep): Remove section.
* etc/NEWS: Related markup.
I can't test any of this, but no-one else seems to care, so this is
what you get.
* doc/emacs/macos.texi (Mac / GNUstep Customization): Mention some new features.
* etc/NEWS: Related edits.
(Qfuncall_interactively): New var.
(Qcall_interactively): Remove.
(Fcall_interactively): Use it.
(syms_of_callint): Defsubr it.
* lisp/subr.el (internal--funcall-interactively): New.
(internal--call-interactively): Remove.
(called-interactively-p): Detect funcall-interactively instead of
call-interactively.
* lisp/simple.el (repeat-complex-command): Use funcall-interactively.
(repeat-complex-command--called-interactively-skip): Remove.
src/Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
configure.
(ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
src/lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
for MinGW, since it no longer uses gmalloc.
src/buffer.c: Do not define mmap allocations functions for Windows.
Remove mmap_find which is unused. Remove mmap_set_vars which does
nothing useful.
[WINDOWSNT]: Include w32heap.h.
(init_buffer): Always allocate new memory for buffers.
src/emacs.c: Remove mmap_set_vars calls.
src/image.c (free_image): Undef free for Windows because it is
redirected to our private version.
src/unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits
compatibility.
(copy_executable_and_dump_data): Remove dumping the heap section.
(unexec): Restore using_dynamic_heap after dumping.
src/w32heap.c (dumped_data_commit, malloc_after_dump)
(malloc_before_dump, realloc_after_dump, realloc_before_dump)
(free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
(mmap_free): New functions.
src/w32heap.h: Declare dumped_data and mmap_* function prototypes.
nt/inc/ms-w32.h: Switch to the system heap allocation scheme
instead of GNU malloc and ralloc.
nt/inc/sys/mman.h: New file.
nt/INSTALL: Update for the new build requirements.
etc/NEWS: Mention build changes on MS-Windows.
configure.ac (C_HEAP_SWITCH) define for different values of
dumped heap size depending on 32/64bits arch on Windows.
Don't check for pthreads.h on MinGW32/64, it gets in the way.
Use mmap(2) for buffers and system malloc for MinGW32/64.
* INSTALL: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* INSTALL.REPO: pkg-config is no longer required to build from
the repository.
* autogen.sh: Don't check for pkg-config.
(progs): Remove pkg-config.
(pkg_config_min, AUTORECONF_ENV, env_space, ACLOCAL_PATH):
Remove. All uses removed.
* m4/pkg.m4: New file, built by admin/merge-pkg-config.
* configure.ac: Remove unnecessary m4_pattern_forbid of ^PKG_ and
an AC_ARG_VAR of PKG_CONFIG_PATH. pkg.m4 does that for us.
(EMACS_CHECK_MODULES): Remove workaround for old pkg-config bug,
as we use pkg.m4 from a newer pkg-config.
* admin/merge-pkg-config: New script.
* admin/notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
* etc/NEWS: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* etc/PROBLEMS (Build-time-problems): Remove pkg-config problem
that is no longer an issue.
* nt/INSTALL: Remove no-longer-needed notes about pkg-config.
* doc/emacs/cal-xtra.texi (Non-Gregorian Diary): Document new features for
Chinese calendar and diary.
* etc/NEWS: Mention support for Chinese dates in calendar and diary.
* lisp/calendar/cal-china.el (calendar-chinese-month-name-array): New var.
(calendar-chinese-from-absolute-for-diary)
(calendar-chinese-to-absolute-for-diary)
(calendar-chinese-mark-date-pattern, diary-chinese-mark-entries)
(diary-chinese-list-entries): New functions to list and mark
Chinese diary entries in the calendar window.
(diary-chinese-anniversary)
(diary-chinese-insert-anniversary-entry)
(diary-chinese-insert-entry, diary-chinese-insert-monthly-entry)
(diary-chinese-insert-yearly-entry): New commands to insert
Chinese diary entries.
* lisp/calendar/cal-menu.el (cal-menu-diary-menu): Add entries for
inserting Chinese diary entries.
* lisp/calendar/calendar.el (diary-chinese-entry-symbol): New
customizable variable.
(calendar-mode-map): Add bindings for inserting Chinese diary
entries.
* lisp/calendar/diary-lib.el (diary-font-lock-keywords): Support
font-locking Chinese dates.
Fixes: debbugs:17393
(Fset_window_configuration, save_window_save)
(compare_window_configurations): Don't touch marks any more.
* doc/lispref/windows.texi (Window Configurations, Window Configurations):
Window configs don't store marks any more.
(defun-declarations-alist): Use it. Add `pure' and `side-effect-free'.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-struct-sequence-type)
(cl-struct-slot-info, cl-struct-slot-offset, cl-struct-slot-value):
Use them.
Add support for bracketed paste mode; add infrastructure for
managing terminal mode enabling and disabling automatically.
* xt-mouse.el:
(xterm-mouse-mode): Simplify.
(xterm-mouse-tracking-enable-sequence)
(xterm-mouse-tracking-disable-sequence): New constants.
(turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal): Use
tty-mode-set-strings and tty-mode-reset-strings terminal
parameters instead of random hooks.
(turn-on-xterm-mouse-tracking)
(turn-off-xterm-mouse-tracking): Delete.
* term/xterm.el (xterm-extra-capabilities): Fix bitrotted comment.
(xterm-paste-ending-sequence): New constant.
(xterm-paste): New command used for bracketed paste support.
(xterm-modify-other-keys-terminal-list): Delete obsolete variable.
(terminal-init-xterm-bracketed-paste-mode): New function.
(terminal-init-xterm): Call it.
(terminal-init-xterm-modify-other-keys): Use tty-mode-set-strings
and tty-mode-reset-strings instead of random hooks.
(xterm-turn-on-modify-other-keys)
(xterm-turn-off-modify-other-keys)
(xterm-remove-modify-other-keys): Delete obsolete functions.
* term/screen.el: Rewrite to just use the xterm code. Add
copyright notice. Mention tmux.
* doc/lispref/display.texi (Overlay Properties): Reword the doc of `priority'.
(Finding Overlays): Document new arg of `overlays-at'.
* lisp/obsolete/lucid.el (extent-at):
* lisp/htmlfontify.el (hfy-overlay-props-at): Use the new `sorted' arg of
overlays-at.
(hfy-fontify-buffer): Remove unused var `orig-ovls'.
* lisp/ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'
arg of overlays-at. Use `invisible-p'.
region handling (and don't call signal_before_change) if
inhibit_modification_hooks is set.
(signal_before_change): Don't check inhibit_modification_hooks any more.
* lisp/subr.el (with-silent-modifications): Don't bind deactivate-mark,
buffer-file-name, and buffer-file-truename any more.
* doc/emacs/files.texi (Backup Names):
* doc/emacs/arevert-xtra.texi (Supporting additional buffers):
* doc/lispref/backups.texi (Making Backups, Reverting):
Update for default values of some -function vars no longer being nil.
* etc/NEWS: Related edits.
* configure.ac (ACL_SUMMARY): Rename from acl_summary, for consistency.
(EMACS_CONFIG_FEATURES): New define.
* src/emacs.c (syms_of_emacs) <system-configuration-features>: New var.
* lisp/mail/emacsbug.el (report-emacs-bug):
Include system-configuration-features.
* etc/NEWS: Mention this.
Ref: http://debbugs.gnu.org/16717#45
If no-one objects, we can then start getting rid of some of the
convoluted Makefile hacks that exist to support non-GNU makes.
* configure.ac: Require GNU make.
(HAVE_GNU_MAKE): Remove.
* INSTALL, etc/NEWS, etc/PROBLEMS: Update for this change.
* Makefile.in: Comment.
* w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
constrain frame size in SW_SHOWMAXIMIZED case so we can truly
maximize a frame for odd default fonts.
* frames.texi (Size and Position): In `frame-resize-pixelwise'
description drop remark about frame maximization.
* windows.texi (Display Action Functions): Add description for
`display-buffer-no-window' and explain use of `allow-no-window'
alist entries.
* doc/misc/cc-mode.texi (Indentation Commands): Remove C-j, since it's not
defined by CC-mode but globally.
(FAQ): Tweak text about RET and auto-indentation.
* doc/misc/vip.texi (Other Vi Commands): Adjust doc of C-j.
* doc/emacs/programs.texi (Matching): Update WRT to the new
`blink-matchin-paren' behavior.
* doc/lispref/display.texi (Blinking): Update WRT to the new
`blink-matchin-paren' behavior.
* lisp/simple.el (blink-matching-paren): Describe the new value,
`jump', enabling the old behavior.
(blink-matching-open): Use that value.
Fixes: debbugs:17008
* doc/emacs/misc.texi (Saving Emacs Sessions):
Be briefer about desktop's handling of frames.
The manual does not need to mention every option, nor should
it just repeat the doc-strings.
* lisp/desktop.el (desktop-restore-frames)
(desktop-restore-in-current-display, desktop-restore-forces-onscreen)
(desktop-restore-reuses-frames): Doc tweaks.
* etc/NEWS: Related edits.
* window.c (Fother_window_for_scrolling): Check that
Vother_window_scroll_buffer is a buffer.
* window.el (fit-frame-to-buffer, fit-frame-to-buffer-margins):
Fix doc-strings.
(fit-frame-to-buffer): New argument ONLY. Remove dependency on
fit-frame-to-buffer variable. Fix doc-string.
(fit-window-to-buffer): Set ONLY argument in call of
fit-frame-to-buffer. Fix doc-string.
* frames.texi (Size and Position): Rewrite entries for
`fit-frame-to-buffer' and `fit-frame-to-buffer-margins'. Add
description for `fit-frame-to-buffer-sizes'.
* windows.texi (Resizing Windows): Add descriptions for
pixelwise resizing. Add entries for `window-resize-pixelwise'
and `fit-window-to-buffer-horizontally'. Rewrite
`fit-window-to-buffer' entry.
* lisp/frame.el (display-pixel-height, display-pixel-width)
(display-mm-dimensions-alist, display-mm-height)
(display-mm-width): Doc tweaks.
* doc/lispref/frames.texi: Remove FIXME comments. The x- versions of
these functions are internal details that do not need documenting.
* etc/NEWS: Related markup.