1. A significant portion of the advice is independent of any
specific version-control sytem.
2. Doing the rename now means it is easier to compose a multi-file
patch that can be applied to fix the tree on the day of the git move.
(ns_store_pb_change_count, ns_get_pb_change_count)
(ns_get_our_change_count_for): New functions.
(ns_string_to_pasteboard_internal): Correct comment.
type => gtype in eassert, Call ns_store_pb_change_count.
(Fns_own_selection_internal): Remove data, use value.
(Fns_disown_selection_internal, Fns_selection_owner_p): Replace
Vselection_alist check, with change count check.
(Fns_get_selection): Initialize val to Qnil. Only get local
selection if change counts match (Bug#18799).
(nxatoms_of_nsselect): Initialize pasteboard_changecount.
function `ses--cell' gets macroexp-quote --- this change was
supposed to be in my previous commit, but left out by mistake.
(ses--cell): Do not make formula a macroexp-quote of value when
value, not formula, is *skip*.
src/w32proc.c (create_child): If calling a quoted batch file,
pass NULL for exe.
nt/cmdproxy.c (batch_file_p): New function.
(spawn): If calling a quoted batch file pass NULL for progname.
test/automated/process-tests.el (process-test-quoted-batfile): New test.
`ses--cell gets macroexp-quote.
(ses--cell): makes formula a macroexp-quote of value when formula
is nil. The rationale of this changr is to allow in the future
shorter SES files, e.g. we could have only `(ses-cell A1 1.0)'
instead of `(ses-cell A1 1.0 1.0 nil REFLIST)'. In such a case
reference list REFLIST would be re-computed after load --- thus
trading off load time against file size.
* emacs-lisp/package.el (package--alist-to-plist-args): use
macroexp-quote instead of a lambda expression which has the same
content as macroexp-quote.
(macroexp): add require for this package, so that function
`package--alist-to-plist-args' gets macroexp-quote.
* emacs-lisp/macroexp.el (macroexp-quote): new defun.
src/bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
(bidi_resolve_brackets): Use end of string position rather than ZV
when iterating over a string.
* keyboard.c (make_lispy_position): Return coordinates also when
on scroll bars, fringes, margins or not in a window.
* xdisp.c (show_mouse_face): Don't change cursor face during
mouse tracking.
* mouse.el (mouse-drag-line): Don't use mouse-pixel-position.
Calculate increment from last position instead of window edge.
Add right- and bottom-divider bindings to transient map.
even if :predicate was nil, for the benefit of typep.
Record the name of the predicate for typep's use.
(cl--make-type-test): Use pcase. Obey new cl-deftype-satisfies property.
(cfengine3-create-imenu-index): Use it and use ` ' for separation.
(cfengine3-current-defun): New function.
(cfengine3-mode): Set add-log-current-defun-function.
* Makefile.in (AWK, srcdir_doc_info_dir_inputs, info_dir_inputs):
New macros.
(clean): Remove info-dir.*.
(info_dir_deps): Depend on make-info-dir too.
Fix bug with wildcards that weren't expanded.
(${srcdir}/info/dir): Make sure info directory exists.
Don't call pwd; just redirect make-info-dir's stdout to temp file.
* build-aux/make-info-dir: Send output to stdout.
Take input file names from args.
Fix a "FIXME inefficient looping" by using awk's associative arrays.
Basically, this rewrites the script from scratch, and speeds up
'make info/dir' from 2.6s to 0.07s on my platform.
src/bidi.c (bidi_cache_reset_to): New function.
(bidi_cache_reset): Call it.
(bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
member to -1.
(bidi_resolve_explicit): Reset bracket_pairing_pos and
bracket_enclosed_type only if bracket_pairing_pos's value is not
ZV.
(MAX_BPA_STACK): Make sure the value is signed.
(PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
stop pushing values onto the stack.
(bidi_find_bracket_pairs): If the bracketed text is only on the
base embedding level, remove all the states cached by this
function from the cache, and return zero, so that the brackets in
this segment of text are processed as normal neutrals.
(bidi_resolve_brackets): Detect the brackets that are to be
processed as neutrals, and don't call bidi_find_bracket_pairs on
them.
* doc/emacs/misc.texi (Document View): Adapt to latest doc-view changes wrt
viewing the document's plain text contents.
* lisp/doc-view.el (doc-view-open-text): View the document's plain text
in the current buffer instead of a new one.
(doc-view-toggle-display): Handle the case where the current
buffer contains the plain text contents of the document.
(doc-view-initiate-display): Don't switch to fallback mode if the
user wants to view the doc's plain text.
(doc-view-set-doc-type): Use assoc-string instead of
assoc-ignore-case.
* frames.texi (Size Parameters): Replace "frame contents" by
"frame's text area". Add reference to Size and Position
section.
(Size and Position): Major rewrite. Add explanations for
frame's default font, text and display areas. Add descriptions
for `set-frame-font', `frame-text-height', `frame-text-width'
and `frame-inhibit-implied-resize'.
(mouse--down-1-maybe-follows-link): Remove unused var `this-event'.
(mouse-yank-secondary): Use gui-get-selection.
(mouse--down-1-maybe-follows-link): Use read-key.
* lisp/subr.el (read-key): Fix clicks on the mode-line.
(set-transient-map): Return exit function.
* lisp/xt-mouse.el: Add `event-kind' property on the fly from
xterm-mouse-translate-1 rather than statically at the outset.
Fixes: debbugs:18015
and make it generic instead by relying on the lower-level selection
management functions.
* select.el (select-enable-clipboard): Rename from
gui-select-enable-clipboard.
(select-enable-primary): Move from x-win.el and rename from
x-select-enable-primary.
(gui-last-selected-text): Remove.
(gui--last-selected-text-clipboard, gui--last-selected-text-primary):
New vars.
(gui-select-text): Rewrite, based on x-win.el's old x-select-text.
(gui-select-text-alist, gui-selection-value-alist): Remove.
(x-select-request-type): Move from x-win.el.
(gui--selection-value-internal): New function, taken from x-win's
x-selection-value-internal.
(gui-selection-value): Rewrite, based on x-win.el's old x-selection-value.
(gui-set-selection-alist): Rename from gui-own-selection-alist and
extend it to handle a nil value as a "disown" request.
(gui-disown-selection-alist): Remove.
(xselect-convert-to-delete): Adjust accordingly.
(gui-set-selection): Simplify accordingly as well. Use dotimes.
* lisp/frame.el (gui-method): Use window-system rather than framep.
(gui-method-declare): The tty case is now nil rather than t.
(make-frame): Adjust accordingly.
* lisp/term/x-win.el (x-last-selected-text-primary)
(x-select-enable-primary): Remove (moved to select.el).
(x-select-request-type): Move to select.el.
(x-selection-value-internal, x--selection-value): Remove functions.
(gui-selection-value, gui-select-text): Remove moethods.
(gui-set-selection): Merge own and disown methods.
* lisp/startup.el (command-line): Adjust now that `gui-method' expects nil
for ttys.
* lisp/term/ns-win.el (ns-get-pasteboard, ns-set-pasteboard)
(ns-selection-value): Remove functions.
(gui-select-text, gui-selection-value): Don't define method any more.
(gui-set-selection): Merge the old own and disown methods.
(gui-selection-exists-p, gui-get-selection): Adjust to new name of
underlying C primitive.
* lisp/term/pc-win.el (w16-get-selection-value): Add dummy argument and drop
test of gui-select-enable-clipboard, to make it usable as
a gui-get-selection method.
(gui-selection-exists-p): Adjust to new name of C primitive.
(gui-set-selection): Merge own and disown methods.
(gui-select-text, gui-selection-value): Delete methods.
(w16--select-text): Delete function.
* lisp/term/w32-win.el (w32--select-text, w32--get-selection-value):
Delete function (move functionality into w32--set-selection and
w32--get-selection).
(gui-select-text, gui-selection-value): Don't define methods.
(w32--set-selection, w32--get-selection, w32--selection-owner-p):
New functions.
(gui-get-selection, gui-selection-owner-p, gui-selection-exists-p):
Use them.
(gui-selection-exists-p): Adjust to new name of C primitive.
* src/nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
(Fns_own_selection_internal): Tighten scoping.
(Fns_selection_exists_p): Rename from Fx_selection_exists_p.
(Fns_get_selection): Rename from Fx_get_selection_internal.
(Fns_get_selection_internal, Fns_store_selection_internal):
Remove functions.
(syms_of_nsselect): Adjust accordingly.
* src/w16select.c (Fw16_selection_exists_p): Rename from
Fx_selection_exists_p.
(syms_of_win16select): Adjust accordingly.
* src/w32select.c (Fw32_selection_exists_p): Rename from
Fx_selection_exists_p.
(syms_of_w32select): Adjust accordingly.