* lisp/emacs-lisp/ewoc.el (ewoc--refresh-node): Save and restore point line
and column offset.
(eowc-map) (ewoc--invalidate) (ewoc-set-hf): Don't use save-excursion
* lisp/vc/vc-dir.el (vc-dir-update): Don't save/restore point on calling
'ewoc-invalidate'.
This reverts commit de4f347901.
read-file-name already displays a long path when given a default
(like INITIAL in many other prompting functions), so using
format-prompt here is superfluous.
* lisp/vc/diff-mode.el (diff-error): New face (bug#2739).
(diff-font-lock-keywords): Use it to highlight lines like "diff: "
which are error messages from diff (for instance, when a file
doesn't exist).
* lisp/vc/ediff-diff.el (ediff-prepare-error-list): Decode the
data from diff before displaying (bug#5050). This fixes a problem
with displaying raw bytes in the error messages in non-ASCII locales.
* lisp/vc/diff-mode.el (diff-goto-source): Don't output a status
about the hunk just when jumping to it (bug#38370). This would
output "Hunk already applied" when browsing diffs.
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix problems
with visual gaps in the fringes when changing font size (bug#42300).
Copyright-paperwork-exempt: yes
lisp/vc/vc-src.el: (vc-src--parse-state) new function.
(vc-src-state) use vc-src--parse-state.
(vc-src-dir-status-files) use recursive calls to `src status -a' (bug#39502).
* lisp/comint.el (comint-read-noecho):
* lisp/emacs-lisp/edebug.el (edebug-all-defuns):
* lisp/man.el (manual-entry):
* lisp/vc/log-edit.el (vc-log-mode-map, vc-log-entry-mode): Declare
ancient backwards-compatibility aliases and functions obsolete. The
oldest in this list was added in 1992, and the most recent in 2004.
* lisp/net/telnet.el (telnet-initial-filter): Don't use
`comint-read-noecho'.
* lisp/progmodes/project.el (project-known-roots): New autoloaded function.
* lisp/vc/vc-hooks.el (vc-known-roots): New function.
* lisp/vc/vc.el (vc-root-diff, vc-print-root-log):
* lisp/vc/vc-dir.el (vc-dir): Use 'vc-known-roots' for default
values for read-directory-name.
* lisp/vc/vc.el (vc-deduce-fileset): Instead of checking for
log-view-mode, check for '(not buffer-file-name)' before trying to
get the backend for default-directory. Remove the branch that
checks for '(not buffer-file-name)' and signals the error because
vc-responsible-backend used in previous condition already signals
its error. (Bug#41974)
Otherwise, "git config branch.<branch>.remote" would return the global
default "origin" instead of the actual, project-specific remote name.
* lisp/vc/vc-git.el (vc-git-dir-extra-headers): Bind default-directory
to given DIR.
Tries to guess suitable bug-reference-bug-regexp and
bug-reference-url-format values based on version control URL (in file
buffers) and mail information (in Gnus summary and article buffers).
* lisp/progmodes/bug-reference.el
(bug-reference--maybe-setup-from-vc): New defun.
(bug-reference-setup-from-vc-alist): New defvar defining setup rules
based on version control URL.
(bug-reference-try-setup-from-vc): New defun using above defvar.
(bug-reference--maybe-setup-from-mail): New defun.
(bug-reference-setup-from-mail-alist): New defvar defining setup rules
based on mail/newsgroups and header values.
(bug-reference-try-setup-from-gnus): New defun using above defvar.
(bug-reference--try-setup-gnus-article): New defun.
(bug-reference--run-auto-setup): New defun.
(bug-reference-mode): Call bug-reference--run-auto-setup as
:after-hook.
(bug-reference-prog-mode): Call bug-reference--run-auto-setup as
:after-hook.
* lisp/vc/vc.el: Document new remote-name argument of VC
repository-url command.
* lisp/vc/vc-git.el (vc-git-repository-url): Add and use new arg.
* lisp/vc/vc-hg.el (vc-hg-repository-url): Add and use new arg.
* lisp/vc/vc-bzr.el (vc-bzr-repository-url): Add new arg but ignore
it.
* lisp/vc/vc-svn.el (vc-svn-repository-url): Add new arg but ignore
it.
* etc/NEWS: Document feature.
* lisp/vc/vc-dir.el (vc-dir-mode): Set local bookmark-make-record-function.
(bookmark-make-record-default, bookmark-prop-get, bookmark-default-handler)
(bookmark-get-bookmark-record): Declarations.
(vc-dir-bookmark-make-record): Make record used to bookmark a `vc-dir' buffer.
(vc-dir-bookmark-jump): Provides bookmark-jump behavior for a `vc-dir' buffer.
* lisp/vc/ediff-vers.el (ediff-vc-revision-other-window)
(ediff-vc-working-revision): Redefine Emacs 22 compatibility
aliases as obsolete function aliases.
(ediff-vc-internal, ediff-vc-merge-internal): Don't use the now
obsolete aliases.
Found by relint. See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00265.html
* lisp/org/org-table.el (org-table-finish-edit-field):
* lisp/arc-mode.el (archive-rar-summarize):
Avoid wrapped subsumption in repeated sequences.
* lisp/erc/erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Replace
inefficient repeated empty-matching expression with a plain greedy
form.
(erc-dcc-handle-ctcp-send): Adjust group numbers.
* lisp/net/puny.el (puny-encode-domain): Fix fast-path shortcut
pattern so that it actually works as intended.
* lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp):
* lisp/vc/diff-mode.el (diff-imenu-generic-expression):
Remove superfluous backslashes.
* lisp/progmodes/scheme.el (scheme-imenu-generic-expression):
Correct confused definition-matching pattern which would match more
than intended.
* lisp/textmodes/sgml-mode.el (sgml-tag-name-re): Avoid inefficient
matching by using the fact that the first character cannot match the
last char of sgml-name-re.
'gnus-shorten-url' (used by 'gnus-summary-browse-url') ignored
fragment identifiers and didn't check substring bounds, in some cases
leading to runtime errors, e.g.:
(gnus-shorten-url "https://some.url.with/path/and#also_a_long_target" 40)
;; => Lisp error: (args-out-of-range "/path/and" -18 nil)
This commit makes it account for #fragments and fixes faulty string
computation, reusing existing helper function. (bug#39980)
* lisp/vc/ediff-init.el (ediff-truncate-string-left): Rename to
'string-truncate-left' and move...
* lisp/emacs-lisp/subr-x.el (string-truncate-left): ...here.
All callers changed.
* lisp/gnus/gnus-sum.el (gnus-shorten-url): Fix args-out-of-range
error, don't drop #fragments, use 'string-truncate-left'.
6de20c7eab (origin/emacs-27) Fix syntax error in man page.
f8607d3c03 Handle filling of indented ChangeLog function entries
7e78f0d1b2 Fix void-variable n-reb in re-builder (Bug#40409)
452d776a5d Fix small bug in copy_string_contents.
fa823653ff Fix invocations of gpg from Gnus
d4f51d0a2e Don't draw GTK's internal border and tab bar on top of eac...
38731d504e ; * src/buffer.c (syms_of_buffer) <inhibit-read-only>: Doc...
44ac9e48bb Tweak htmlfontify's generated output
* lisp/vc/log-edit.el (log-edit-fill-entry): Relax regexp a bit to
recognize function entries with leading blanks.
* test/lisp/vc/log-edit-tests.el: New test.
* lisp/vc/vc-dir.el (vc-dir-mark-state-files): New function.
(vc-dir-mark-registered-files)
(vc-dir-mark-unregistered-files): New commands.
(vc-dir-mode-map): Bind vc-dir-mark-registered-files to '* r'.
(vc-dir-menu-map): Add menu entries for
vc-dir-mark-registered-files and vc-dir-mark-unregistered-files.
* lisp/dired-aux.el (dired-vc-next-action): New command.
(dired-vc-deduce-fileset): Rename from vc-dired-deduce-fileset in vc.el.
* lisp/dired.el (dired-mode-map): Remap vc-next-action to
dired-vc-next-action.
* lisp/vc/vc-dir.el (vc-dir-mark-files): New function.
(vc-dir-refresh): Run hook vc-dir-refresh-hook.
* lisp/vc/vc.el (vc-deduce-fileset): Rename arg 'observer' to
'not-state-changing' and document it in docstring.
(vc-dired-deduce-fileset): Rename to dired-vc-deduce-fileset in dired-aux.el.
* lisp/cedet/ede.el (ede-turn-on-hook, ede-minor-mode):
* lisp/desktop.el (desktop-minor-mode-table): Rename the long ago
obsolete vc-dired-mode to vc-dir-mode.
* lisp/vc/diff-mode.el (diff-add-log-current-defuns): If there is a
scan-error when calling end-of-defun, go to end of hunk. This can
easily happen since we are calling end-of-defun on a partial code
fragment from a diff.
* lisp/vc/log-edit.el (log-edit-generate-changelog-from-diff): Bind
display-buffer-overriding-action around the log-edit-show-diff call
only. Otherwise, it can affect, for example, debugger windows
triggered by the diff-add-log-current-defuns call.
dd5756436c Move more logic to vc-ignore from vc-default-ignore
2aed279be1 Warn about the likes of "[:alnum:]" in regexps
0273f261a7 Don't write absolute filenames and duplicate strings to CV...
d7c22338d2 Fix cursor-sensor--detect when current buf != selected win...
2e39fc83bb * doc/emacs/sending.texi (Mail Sending): Fix index entries.
b410f902d5 Document 'message-send-mail-function' in the Emacs manual
ac0546612d Fix reference to 'message-send-and-exit' in Emacs manual
cd6a9b8f65 Skip shell prompt on current line in Eshell even if it's p...
* lisp/vc/vc-dir.el (vc-dir-ignore):
Pass relative file names to vc-ignore.
* lisp/vc/vc.el (vc-ignore): Move the responsibility of
constructing the ignore pattern (right now, most often a relative
file name) using a file name received from the user, here.
(vc-default-ignore): ...from here (bug#37189, see discussion).
Also clarify the docstring.
* lisp/vc/vc-cvs.el (vc-cvs-ignore): Expand filename correctly
and pass on only the basename as the pattern.
(vc-cvs-append-to-ignore) Do not write duplicate strings to
.cvsignore. New optional parameter SORT to more explicitly
control sorting of the ignore entries. (Bug#37215)
* lisp/vc/pcvs.el (cvs-mode-ignore): Call 'vc-cvs-append-to-ignore'
with SORT argument.
* lisp/vc/vc.el (vc-deduce-fileset): Don't error out when observer is nil.
(vc-dired-deduce-fileset): Add optional args 'state-model-only-files'
and 'observer'. Check that all files are in a consistent state
when state-model-only-files is non-nil. Error out on directories.
* lisp/vc/vc-dispatcher.el (vc-dispatcher-browsing): Check dired-mode
for derived-mode-p.
0304f53076 (origin/emacs-27) doc/misc/org.texi: Fix @dircategory
027da652a4 Fix display of minibuffer prompt in ido.el
5a21aaff46 rx: Use longest match for all-string 'or' forms (bug#37659)
2b12c2b6f2 Make sure not to mark directories
ff4ed4a0ff ; Add a TODO
3a5129a1c9 vc-hg-dir-status-files: Fix when DIR is not repository root
# Conflicts:
# etc/NEWS
* lisp/vc/vc-hg.el (vc-hg-dir-status-files):
Make sure it works correctly in a subdirectory of the repo root.
Bind default-directory to DIR and add 're: -I .' to the arguments
(bug#39380).
* lisp/vc/ediff-util.el (ediff-scroll-horizontally): Use
'current-prefix-arg' to pass the value of prefix argument to
scrolling commands. (Bug#39353)
Copyright-paperwork-exempt: yes
09eed01afb Wrap some set-auto-mode calls with delay-mode-hooks (bug#3...
4a0a114505 Support ido-vertical-mode better
ef5fba9f40 Fix faces tab-bar and tab-line.
831508422e Cater for 3-argument version of pthread_setname_np
f27187f963 Clarify lexvar restrictions for add-to-ordered-list, add-t...
32763dac46 Replace add-to-list to lexical variable with push (bug#39373)
d07f177382 Clarify add-to-list documentation (bug#39373)
d3d2ea927c MH-E: alter content in mh-display-msg, not mh-show-mode
db7fa2546f Update documentation for mh-show-mode-hook
d10be6bf28 Example goto-addr hook: MH-E already uses goto-address
# Conflicts:
# etc/NEWS
* lisp/gnus/mm-view.el (mm-display-inline-fontify):
* lisp/vc/diff-mode.el (diff-syntax-fontify-props):
* lisp/vc/vc.el (vc-find-revision-no-save):
Add delay-mode-hooks around set-auto-mode calls
to not run hooks that might assume buffer-file-name
really associates buffer with a file.
3b0938c042 (origin/emacs-27) Render Ido suggestions using an overlay
d5d90dc412 * doc/misc/tramp.texi (Bug Reports): Encourage use of "ema...
ac09e8e121 * lisp/vc/smerge-mode.el (smerge-match-conflict): Fix bug#...
7e37e61f4b Correct statement about ftcr and recommend HarfBuzz
4aec94da37 Avoid leaving artifacts when the system caret is used on w32
5abd8d73b0 Improve display of temporary echo messages
186152ba40 Pacify gcc -Wunused-function on Ubuntu 18.04.3
4cd143aded Fix copyright years by hand
365e01cc9f Update copyright year to 2020
cd2c156163 ; * etc/NEWS: Make the description of XDG fallback more ac...
# Conflicts:
# etc/NEWS
# etc/refcards/ru-refcard.tex
* lisp/vc/vc.el (vc--add-line): Create file if it does not exist.
Use existing buffer to avoid discrepancies with filesytem. Make sure
that the file ends with a newline.
(vc--remove-line): Do not create file if it does not exist. Use
existing buffer to avoid discrepancies with filesytem. (bug#37185)
* lisp/vc/vc-git.el (vc-git-after-dir-status-stage):
Don't set `up-to-date' status if the previous stage (`diff-index')
has assigned some other status to the file (bug#38615).
* lisp/vc/diff.el (diff-buffers): New command.
(diff, diff-no-select, diff-file-local-copy): Improve docstrings.
* doc/emacs/files.texi:
* etc/NEWS: Document new command, and the previously-undocumented
ability for 'diff' to compare buffers.
* etc/themes/wombat-theme.el:
* etc/themes/wheatgrass-theme.el:
* etc/themes/tsdh-light-theme.el:
* etc/themes/tsdh-dark-theme.el:
* etc/themes/tango-theme.el:
* etc/themes/tango-dark-theme.el:
* etc/themes/misterioso-theme.el:
* etc/themes/manoj-dark-theme.el:
* etc/themes/light-blue-theme.el:
* etc/themes/leuven-theme.el:
* etc/themes/dichromacy-theme.el:
* etc/themes/deeper-blue-theme.el:
* etc/themes/adwaita-theme.el: Add ':extend' attribute to all
faces that are by default defined with it.
* lisp/vc/smerge-mode.el (smerge-upper, smerge-lower)
(smerge-base):
* lisp/vc/log-view.el (log-view-file, log-view-message):
* lisp/vc/ediff-init.el (ediff-current-diff-A)
(ediff-current-diff-B, ediff-current-diff-C)
(ediff-current-diff-Ancestor, ediff-even-diff-A)
(ediff-even-diff-B, ediff-even-diff-C)
(ediff-even-diff-Ancestor, ediff-odd-diff-A)
(ediff-odd-diff-B, ediff-odd-diff-C)
(ediff-odd-diff-Ancestor):
* lisp/vc/diff-mode.el (diff-header, diff-file-header)
(diff-removed, diff-added): Make sure all definitions of faces
have the same value of the ':extend' property, otherwise
customizing background color or underline etc. attributes of
these faces on some displays will produce effects different
from other displays.
* lisp/vc/vc.el (vc-print-root-log): Improve the wording of
the doc string and of the prompt for the root directory.
* etc/NEWS: Improve and expand the wording of the changes in
'C-x v L'.
* doc/emacs/maintaining.texi (VC Change Log): Improve and
clarify wording of the 'C-x v L' description.
* doc/emacs/maintaining.texi (VC Change Log): Explain the numeric prefix arg
of 'C-x v L' (vc-print-root-log).
* lisp/vc/vc-git.el (vc-git-print-log): Add command line option "-p"
when vc-log-view-type is 'with-diff'.
(vc-git-log-view-mode): Use long style when vc-log-view-type is 'with-diff'.
* lisp/vc/vc.el (vc-print-log-internal): Add optional arg 'type'.
(vc-log-internal-common): Use 'region-history-mode' when type is
'with-diff' and backend supports 'region-history-mode'.
(vc-print-root-log): Add optional arg 'revision'. In interactive spec
read a revision when current-prefix-arg is 1. Use current-prefix-arg
"as is" when it is a number. Show revision in long style with diff
when limit is 1 and revision is non-nil.
* lisp/vc/vc-hg.el (vc-hg-region-history)
(vc-hg-region-history-font-lock, vc-hg-region-history-mode):
New functions.
(vc-hg-region-history-mode-map)
(vc-hg--log-view-long-font-lock-keywords)
(vc-hg-region-history-font-lock-keywords): New variables.
* lisp/vc/vc-git.el (vc-git-region-history): Update commentary.
* doc/emacs/maintaining.texi (VC Change Log): Add
'vc-region-history' to the table at beginning of node. Update
the VCSes that support 'vc-region-history'.
* etc/NEWS: Mention the new feature of vc-hg.el.
* lisp/vc/ediff-util.el (ediff-toggle-read-only, ediff-quit):
Set this-command to the same command after using y-or-n-p
that doesn't guarantee to keep this-command unchanged
to check it later for some contrived logic.
* lisp/vc/vc.el (vc-default-update-on-retrieve-tag): New function.
(vc-retrieve-tag): Call `update-on-retrieve-tag' backend function
to determine if prompt for update buffers is needed; Include tag
name into the "Retrieving tag" message.
* lisp/vc/vc-git.el (vc-git-update-on-retrieve-tag):
* lisp/vc/vc-hg.el (vc-hg-update-on-retrieve-tag):
* lisp/vc/vc-svn.el (vc-svn-udate-on-retrieve-tag): New functions.
Buffers update prompt on `vc-retrieve-tag' is omitted (bug#38156).
(dired-rename-file): Call vc-rename-file when dired-vc-rename-file is non-nil.
* lisp/vc/vc.el (vc-rename-file): Allow renaming added files.
Call vc-file-clearprops on new file too for the case when
old and new files were renamed to each other back and forth.
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00069.html
This adds create/snapshot bindings to the stash button even when there
are no stashes, and extends the stash menu bindings.
* etc/NEWS: Announce the bindings.
* lisp/vc/vc-git.el (vc-git-stash-shared-map): New keymap. Holds
shared bindings between stash button and stash list.
(vc-git-stash-map): Inherit from vc-git-stash-shared-map.
(vc-git-stash-button-map): New keymap. Holds button bindings,
inherit from vc-git-stash-shared-map.
(vc-git-stash-shared-help, vc-git-stash-list-help): New
defconsts. Abstract out list/button help texts.
(vc-git--make-button-text): Set keymap property to
vc-git-stash-button-map.
(vc-git-make-stash-button): Use vc-git-stash-shared-help.
(vc-git-stash-menu-map): Add items for vc-git-stash and
vc-git-stash-snapshot.
(vc-git-dir-extra-headers): Use vc-git-stash-list-help and
vc-git-stash-shared-help. Add vc-git-stash and
vc-git-stash-snapshot bindings to text shown when there are no stashes.
* lisp/vc/vc-git.el (vc-git-stash-map): Give `vc-git-stash' a
keystroke, because it's a useful command.
When there are no stashes, there's no way to use that keystroke (since
it's only bound on the stash lines), so perhaps that should also be
fixed somehow.
Based on suggestions from Mattias Engdegård.
* lisp/vc/vc-git.el (vc-git--make-button-text): New function to
generate text for stash button.
(vc-git-make-stash-button): Show stash counts. Delete and recreate
button when toggling.
(vc-git-dir-extra-headers): Pass counts to vc-git-make-stash-button.
Treat stash count <= vc-git-show-stash as equivalent to showing entire
list.
* lisp/vc/vc-git.el: Move cl-lib require outside 'eval-when-compile'.
* lisp/vc/vc-git.el (vc-git-show-stash):New user option.
(vc-git-make-stash-button): Create button that allows hiding the stash
list.
(vc-git-dir-extra-headers): Split stash list into hideable and
non-hideable parts depending on value of vc-git-show-stash. Add
button to toggle visibility of hideable part.
* etc/NEWS: Announce it.
* lisp/vc/vc-sccs.el (vc-sccs-diff): If the diff command is to be
run remotely, then the temporary files it's acting on must be
remote too (bug#37777).
Copyright-paperwork-exempt: yes
* lisp/vc/vc-hg.el (vc-hg-state-slow, vc-hg-merge-branch)
(vc-hg-command): Add "--config" "ui.report_untrusted=0" to the
log commands to avoid "Hg-not trusting file " messages in the mode
line (bug#31497).
Copyright-paperwork-exempt: yes
* lisp/vc/diff-mode.el (diff-prev-line-if-patch-separator):
A function to return prev. line if it has git-format-patch
separator.
(diff-end-of-hunk): Make use of
diff-prev-line-if-patch-separator
diff-buffer-type: whether a buffer is a git-diff
(define-derived-mode): set diff-buffer-type to appropriate
value (bug#37395).
* lisp/vc/ediff-help.el (ediff-set-help-overlays): Only put the
mouse-face overlay on the actual commands (bug#5079). This avoids
a problem when you have very wide frames: The leading blank
portion of the buffer would get the mouse highlights.
* lisp/vc/vc-cvs.el (vc-cvs-revert): 3950 (#o7556) is wrong as
it keeps other-write but disables other-execute permissions.
3949 (#o7555) was intended here. Use octal notation for clarity.
* lisp/vc/vc.el: (vc-default-ignore) Treat FILE parameter as relative
to DIRECTORY parameter. Construct a file-path relative to directory
of ignore file. When removing, use properly anchored regexp. Remove
entire line, not just the match (bug#37217).
This adds FIXMEs to areas where Lisp code should support
subsecond information in broken-down timestamps.
It also fixes some unnecessary truncation of timestamps, and
ports the code to a hypothetical future Emacs version where
(decode-time) returns subsecond timestamps by default.
* lisp/calc/calc-forms.el (calc-time, math-iso-dt-to-date)
(calcFunc-now):
* lisp/calendar/icalendar.el (icalendar--add-decoded-times):
* lisp/calendar/iso8601.el (iso8601-parse-interval):
Truncate seconds to an integer, and add a FIXME about
subseconds support.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime)
(icalendar--decode-isoduration):
Add a FIXME about subseconds support.
* lisp/gnus/gnus-delay.el (gnus-delay-article):
Don’t truncate seconds to an integer, as there’s no need
to do that here.
* lisp/gnus/gnus-util.el (gnus-seconds-today)
(gnus-seconds-month, gnus-seconds-year):
* lisp/gnus/message.el (message-make-expires-date):
* lisp/org/org-timer.el (org-timer-show-remaining-time):
* lisp/vc/ediff-mult.el (ediff-format-date):
Truncate seconds to an integer, as that’s what’s wanted here.
* lisp/midnight.el (midnight-next):
Ceiling seconds to an integer, as that’s what wanted here.
This replaces the awkward reuse of encode-time to both convert
calendrical timestamps to Lisp timestamps, and to convert Lisp
timestamps to other forms. Now, encode-time does just the
former and the new function does just the latter.
The new function builds on a suggestion by Lars Ingebrigtsen in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00801.html
and refined by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00803.html
* doc/lispref/os.texi (Time of Day, Time Conversion):
* doc/misc/emacs-mime.texi (time-date):
* etc/NEWS: Update documentation.
* lisp/calendar/cal-dst.el (calendar-next-time-zone-transition):
* lisp/calendar/time-date.el (seconds-to-time, days-to-time):
* lisp/calendar/timeclock.el (timeclock-seconds-to-time):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-add-item):
* lisp/emacs-lisp/cl-extra.el (cl--random-time):
* lisp/emacs-lisp/timer.el (timer--time-setter)
(timer-next-integral-multiple-of-time):
* lisp/find-lisp.el (find-lisp-format-time):
* lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
* lisp/gnus/gnus-group.el (gnus-group-set-timestamp):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-show-org-agenda):
* lisp/gnus/nnrss.el (nnrss-normalize-date):
* lisp/gnus/nnspool.el (nnspool-request-newgroups):
* lisp/net/ntlm.el (ntlm-compute-timestamp):
* lisp/net/pop3.el (pop3-uidl-dele):
* lisp/obsolete/vc-arch.el (vc-arch-add-tagline):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-clock-in)
(org-clock-out, org-clock-sum):
* lisp/org/org-id.el (org-id-uuid, org-id-time-to-b36):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cc-cmds.el (c-progress-init)
(c-progress-update):
* lisp/progmodes/cperl-mode.el (cperl-time-fontification):
* lisp/progmodes/flymake.el (flymake--schedule-timer-maybe):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
* lisp/tar-mode.el (tar-octal-time):
* lisp/time.el (emacs-uptime):
* lisp/url/url-auth.el (url-digest-auth-make-cnonce):
* lisp/url/url-util.el (url-lazy-message):
* lisp/vc/vc-cvs.el (vc-cvs-parse-entry):
* lisp/vc/vc-hg.el (vc-hg-state-fast):
* lisp/xt-mouse.el (xterm-mouse-event):
* test/lisp/emacs-lisp/timer-tests.el:
(timer-next-integral-multiple-of-time-2):
Use time-convert, not encode-time.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Don’t use now-removed FORM argument for encode-time.
It wasn’t crucial anyway.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add time-convert.
* lisp/emacs-lisp/elint.el (elint-unknown-builtin-args):
Update encode-time signature to match current arg set.
* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
Use timer-convert with t rather than doing it by hand.
* src/timefns.c (time_hz_ticks, time_form_stamp, lisp_time_form_stamp):
Remove; no longer needed.
(decode_lisp_time): Rturn the form instead of having a *PFORM arg.
All uses changed.
(time_arith): Just return TICKS if HZ is 1.
(Fencode_time): Remove argument FORM. All callers changed.
Do not attempt to encode time values; just encode
decoded (calendrical) times.
Unless CURRENT_TIME_LIST, just return VALUE since HZ is 1.
(Ftime_convert): New function, which does the time value
conversion that bleeding-edge encode-time formerly did.
Return TIME if it is easy to see that it is already
of the correct form.
(Fcurrent_time): Mention in doc that the form is planned to change.
* test/src/timefns-tests.el (decode-then-encode-time):
Don’t use (encode-time nil).
* doc/emacs/maintaining.texi (VC Directory Commands): Adjust
command name.
* lisp/vc/vc-dir.el (vc-dir-clean-files): Rename from
vc-dir-delete-files-no-vc, and work on unregistered files only
(bug#31732).
(vc-dir-menu-map): Adjust command name.
* doc/emacs/maintaining.texi (VC Directory Commands): Document it.
* lisp/vc/vc-dir.el (vc-dir-delete-files-no-vc): New command and
keystroke (bug#31732).
* lisp/vc/vc-bzr.el (vc-bzr-annotate-command)
(vc-bzr-annotate-time)
(vc-bzr-annotate-extract-revision-at-line): Include a date in the
bzr annotation buffer (bug#5428).
* lisp/vc/diff.el (diff-check-labels): Separated out into its own
function (bug#18850)...
(diff-no-select): ... from here.
* lisp/vc/smerge-mode.el (smerge-diff): Use diff-check-labels.
* lisp/vc/vc-git.el (vc-git-grep-template): Include <C> in
template to be more consistent with lgrep/rgrep (bug#35326). This
will introduce the --color and -i flags to the "git grep" command.
Copyright-paperwork-exempt: yes
See bug#11649 for an example problem, and emacs-devel discussion
«Prickliness of the "invalid byte code" stuff».
* lisp/wid-edit.el, lisp/wdired.el, lisp/vc/pcvs-util.el:
* lisp/progmodes/executable.el, lisp/mail/sendmail.el:
* lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
* lisp/emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-extra.el:
* lisp/dired-x.el, lisp/dired-aux.el, lisp/calendar/calendar.el:
Don't use byte-compile-dynamic any more.
Re-enable lexical-binding in ediff. For that, change ediff-find-file
so as not to rely on dynamic scoping in its calling convention.
* lisp/vc/ediff-diff.el: Move `provide` to the end.
Remove redundant :group.
(ediff-exec-process): Disregard current directory.
(ediff-forward-word-function): Use defvar-local.
* lisp/vc/ediff-help.el (ediff-set-help-message): Use functionp.
* lisp/vc/ediff-hook.el (menu-bar-ediff-misc-menu): Make a toggle, as
in the XEmacs menu.
* lisp/vc/ediff-init.el (ediff-defvar-local): Add `doc-string` prop.
(ediff-check-version): Delete function, unused.
* lisp/vc/ediff-mult.el: Move `provide` to the end.
Remove redundant :groups.
(ediff-dir-diffs-buffer-map):
Move initialization into declaration.
(ediff-meta-mode): Use define-derived-mode.
(ediff-intersect-directories): Remove `comparison-func`, unused.
(ediff-prepare-meta-buffer): Fix use of `startup-hooks`.
* lisp/vc/ediff-ptch.el: Move `provide` to the end.
* lisp/vc/ediff-util.el (ediff-add-to-history): Use add-to-history instead.
* lisp/vc/ediff-vers.el (ediff-vc-internal, ediff-vc-merge-internal):
Use push and closures.
* lisp/vc/ediff-wind.el: Remove redundant :groups.
* lisp/vc/ediff.el: Move `provide` to the end.
Remove redundant :groups.
(ediff--magic-file-name, ediff--startup-hook): New vars.
(ediff-find-file): Change calling convention so as not to use
symbols as value cells.
(ediff--buffer-file-name): New function.
(ediff-files-internal): Adjust to new calling convention of ediff-find-file.
(ediff-directories-internal, ediff-directory-revisions-internal)
(ediff-regions-internal): Use push and closures.
Since it breaks the thing (bug#36157, bug#36281).
* lisp/vc/ediff-diff.el, lisp/vc/ediff-help.el, lisp/vc/ediff-hook.el:
* lisp/vc/ediff-init.el, lisp/vc/ediff-merg.el, lisp/vc/ediff-mult.el:
* lisp/vc/ediff-ptch.el, lisp/vc/ediff-vers.el, lisp/vc/ediff-wind.el:
* lisp/vc/ediff.el: Set lexical-binding to nil.
The convention is that a file with Author: but not Maintainer:
means the author is a maintainer, which makes it confusing
when a file lists the same person as author and maintainer.
Avoid the confusion by removing the duplicate Maintainer: line.
Restore lines saying "Maintainer: emacs-devel@gnu.org" when there is
no special maintainer for a file. Although this wasn't documented
it was common practice and removing the lines didn't have consensus.
* lisp/vc/log-view.el (log-view-diff, log-view-diff-changeset):
* doc/emacs/maintaining.texi (VC Change Log): Document behavior of
log-view-diff at the beginning and the end of the log buffer
when the region is active. (Bug#35624)
* lisp/vc/vc-git.el (vc-git-print-log): Insert newline at the
beginning to enable the feature of diffing with the working revision.
In a terminal supporting 256 colors, both diff-added and diff-removed
was mapped to the same greyish color.
* lisp/vc/diff-mode.el: Modify the colors of diff-removed,
diff-added, diff-refine-removed, and diff-refine-added when
used in a 256 color environment.
Strip possible source/destination prefixes such as a/ and b/
from directory names. (Bug#35420)
(ediff-fixup-patch-map, ediff-dispatch-file-patching-job)
(ediff-patch-file-internal): Replace string-match with string-match-p.
* lisp/vc/log-edit.el (log-edit--toggle-amend): Extract from
vc-git-log-edit-toggle-amend (bug#34944).
* lisp/vc/vc-hg.el (vc-hg-log-edit-toggle-amend): New function.
Use the aforementioned.
(vc-hg-log-edit-mode-map): New variable.
(vc-hg-log-edit-mode): New major mode.
(diff--syntax-file-attributes): New var.
(diff-syntax-fontify-hunk): Detect when we're reusing the same buffer as
last time, to avoid re-initializing it. Skip the
diff-syntax-fontify-revisions hash-table, since buffer-alist plays the
same role.
(diff-syntax-fontify-revisions): Delete var.
* lisp/vc/diff-mode.el (diff-font-lock-syntax): Rework docstring.
(diff-syntax-fontify-hunk): Never use the hunk method when
diff-font-lock-syntax is just t.
(diff-default-directory): Use defvar-local.
(diff-syntax-fontify-hunk): Use 'setq' less. Fit within 80 columns.
Simplify some looking-at tests.
(diff-syntax-fontify-props): Don't check the buffer-local part of
find-file-hook.
Problems reported by Mattias Engdegård in:
https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00178.html
* lisp/progmodes/sh-script.el (sh-get-indent-info):
Reorder skip-chars-forward arg so that it does not look like a regexp.
* lisp/progmodes/verilog-mode.el (verilog-sk-define-signal):
Fix typo: the string is not a regexp.
* lisp/vc/log-edit.el (log-edit-goto-eoh): Fix typo: stray ‘:’.
* lisp/xml.el (xml-parse-dtd): Avoid ‘-’ right after char class.
* doc/lispref/searching.texi (Regexp Special):
Mention char classes earlier, in a more-logical place.
Advise sticking to ASCII letters and digits in ranges.
Reword negative advice to make it clearer that it’s negative.
* lisp/files.el (make-auto-save-file-name):
* lisp/gnus/message.el (message-mailer-swallows-blank-line):
* lisp/gnus/nndoc.el (nndoc-lanl-gov-announce-type-p)
(nndoc-generate-lanl-gov-head):
* lisp/org/org-eshell.el (org-eshell-open):
* lisp/org/org.el (org-deadline-time-hour-regexp)
(org-scheduled-time-hour-regexp):
* lisp/progmodes/bat-mode.el (bat-font-lock-keywords):
* lisp/progmodes/bug-reference.el (bug-reference-bug-regexp):
* lisp/textmodes/less-css-mode.el (less-css-font-lock-keywords):
* lisp/vc/vc-cvs.el (vc-cvs-valid-symbolic-tag-name-p):
* lisp/vc/vc-svn.el (vc-svn-valid-symbolic-tag-name-p):
Avoid attempts to chain ranges, as this can be confusing.
For example, instead of [0-9-_.], use [0-9_.-].
Problems reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-03/msg01028.html
* lisp/align.el (align-rules-list):
* lisp/speedbar.el (speedbar-check-read-only, speedbar-check-vc):
* lisp/vc/diff-mode.el (diff-add-change-log-entries-other-window):
* lisp/woman.el (woman-parse-numeric-arg):
Put "-" at end of character alternatives, since a range was not intended.
* lisp/erc/erc.el (font-lock):
* lisp/mail/footnote.el (cl-seq):
Avoid duplicate character alternatives by using cl-seq API.
* lisp/mail/footnote.el (footnote--current-regexp):
* lisp/textmodes/css-mode.el (css--font-lock-keywords):
Avoid repetition of repetition.
* lisp/net/webjump.el (webjump-url-encode):
Add ~ to character alternatives, and rewrite confusing range.
* lisp/progmodes/verilog-mode.el (verilog-compiler-directives)
(verilog-assignment-operator-re):
Remove duplicate.
* lisp/progmodes/verilog-mode.el (verilog-preprocessor-re):
* lisp/textmodes/css-mode.el (css--font-lock-keywords):
Don’t escape a char that doesn’t need it.
* lisp/textmodes/picture.el (picture-tab-chars): In docstring,
do not say regexp characters will be quoted; merely say in
another way that the syntax is that of character alternatives.
(picture-set-tab-stops, picture-tab-search): Don’t attempt
to regexp-quote picture-tab-chars.
(picture-tab-search): Quote \ in picture-tab-chars for
skip-chars-backwards, which treats \ differently than
regexp character alternatives do.
* lisp/vc/vc-git.el (vc-git-mergebase): New function.
(vc-git-print-log): Interpret string value of arg LIMIT as an end-revision.
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind 'vc-log-mergebase' to
'C-x v M L', and 'vc-diff-mergebase' to 'C-x v M D'. (Bug#33950)
Deal with lone backslashes that have no effect in string literals,
but indicate that something is amiss.
* lisp/auth-source-pass.el (auth-source-pass-entries):
* lisp/textmodes/artist.el (artist-figlet-get-font-list-windows):
* lisp/org/ob-abc.el (org-babel-expand-body:abc, org-babel-execute:abc):
* lisp/org/ob-forth.el (org-babel-forth-session-execute):
* lisp/vc/vc-git.el (vc-git--program-version):
Add backslash in regexp for correctness.
* lisp/gnus/nnmail.el (nnmail-split-abbrev-alist):
Replace `\||' with `\\|' to follow the obvious regexp intent.
* lisp/org/org-list.el (org-plain-list-ordered-item-terminator):
Add backslash in doc comment so that it appears as intended.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1, c-end-of-decl-1):
* lisp/progmodes/f90.el (f90-font-lock-keywords-2):
* lisp/progmodes/etags.el (etags-tags-completion-table):
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
* test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1):
Remove superfluous backslashes from regexp.
* test/lisp/emacs-lisp/rx-tests.el (rx-char-any):
Remove superfluous backslash from doc comment.
This change was discussed in Bug#32991.
* admin/gitmerge.el (gitmerge-resolve): Bind 'diff-refine'
instead of 'diff-auto-refine-mode' to nil.
* doc/emacs/files.texi (Diff Mode): Explain 'diff-refine'
instead of 'diff-auto-refine-mode' in the documentation of
'diff-hunk-next' and 'diff-hunk-prev'. Mention in the
documentation of 'diff-refine-hunk' that refining is already
done by default.
* etc/NEWS (Diff mode): Explain renamed 'diff-refine' variable
and mention deprecation and disabling of
'diff-auto-refine-mode'.
* lisp/vc/diff-mode.el (diff-font-lock-refine): Rename to
'diff-refine' and allow choices nil, 'font-lock' and 'navigation'.
(diff-auto-refine-mode): Disable it by default, make it
obsolete and make it set 'diff-refine' appropriately to keep
backward compatibility.
(diff-hunk-next, diff-hunk-prev): Adapt to rename of
diff-auto-refine-mode and ensure that refining only happens
when calling these commands interactively.
(diff--font-lock-refined): Adapt to rename of
diff-font-lock-refine.
* lisp/vc/smerge-mode.el (smerge-next, smerge-prev): Check
that 'diff-refine' is set instead of checking
'diff-auto-refine-mode' when deciding whether to refine a
conflict.