Merge remote-tracking branch 'savannah/master' into HEAD

This commit is contained in:
Andrea Corallo 2020-03-23 20:38:07 +00:00
commit 8cc8adb04d
56 changed files with 306 additions and 109 deletions

View file

@ -31,6 +31,7 @@
# This list derives from the features we want Emacs to compile with.
PKG_REQ='''mingw-w64-x86_64-giflib
mingw-w64-x86_64-gnutls
mingw-w64-x86_64-harfbuzz
mingw-w64-x86_64-lcms2
mingw-w64-x86_64-libjpeg-turbo
mingw-w64-x86_64-libpng

View file

@ -785,6 +785,7 @@ GDB Graphical Interface
Maintaining Large Programs
* Version Control:: Using version control systems.
* Projects:: Commands for handling source files in a project.
* Change Log:: Maintaining a change history for your program.
* Xref:: Find definitions and references of any function,
method, struct, macro, @dots{} in your program.

View file

@ -13,6 +13,9 @@ large-size programs and packages. These features include:
Unified interface to Support for Version Control Systems
(@acronym{VCS}) that record the history of changes to source files.
@item
Commands for handling programming projects.
@item
A specialized mode for maintaining @file{ChangeLog} files that provide
a chronological log of program changes.
@ -38,6 +41,7 @@ Lisp Regression Testing}).
@menu
* Version Control:: Using version control systems.
* Projects:: Commands for handling source files in a project.
* Change Log:: Maintaining a change history for your program.
* Xref:: Find definitions and references of any function,
method, struct, macro, @dots{} in your program.
@ -1630,6 +1634,77 @@ different revision with @kbd{C-u C-x v v}.
@include vc1-xtra.texi
@end ifnottex
@node Projects
@section Working with Projects
@cindex projects
@cindex project root
A @dfn{project} is a collection of files used for producing one or
more programs. Files that belong to a project are typically stored in
a hierarchy of directories; the top-level directory of the hierarchy
is known as the @dfn{project root}.
@cindex project back-end
Whether a given directory is a root of some project is determined by
the project-specific infrastructure, known as @dfn{project back-end}.
Emacs currently supports two such back-ends: VC (@pxref{Version
Control}), whereby a VCS repository is considered a project; and EDE
(@pxref{EDE}). This is expected to be extended in the future to
support additional types of projects.
Which files do or don't belong to a project is also determined by
the project back-end. For example, the VC back-end doesn't consider
``ignored'' files (@pxref{VC Ignore}) to be part of the project.
Emacs provides commands for handling project files conveniently.
This section describes these commands.
@cindex current project
All of the commands described here share the notion of the
@dfn{current project}. The current project is determined by the
@code{default-directory} (@pxref{File Names}) of the buffer that is
the current buffer when the command is invoked. If that directory
doesn't seem to belong to a recognizable project, these commands
prompt you for the project directory.
@findex project-find-file
The command @code{project-find-file} is a convenient way of visiting
files (@pxref{Visiting}) that belong to the current project. Unlike
@kbd{C-x C-f}, this command doesn't require to type the full file name
of the file to visit, you can type only the file's base name (i.e.,
omit the leading directories). In addition, the completion candidates
considered by the command include only the files belonging to the
current project, and nothing else. If there's a file name at point,
this command offers that file as the default to visit.
@findex project-find-regexp
The command @code{project-find-regexp} is similar to @code{rgrep}
(@pxref{Grep Searching}), but it searches only the files that belong
to the current project. The command prompts for the regular
expression to search, and pops up an Xref mode buffer with the search
results, where you can select a match using the Xref mode commands
(@pxref{Xref Commands}). When invoked with a prefix argument, this
command additionally prompts for the base directory from which to
start the search; this allows, for example, to limit the search only
to project files under a certain subdirectory of the project root.
@findex project-search
@kbd{M-x project-search} is an interactive variant of
@code{project-find-regexp}. It prompts for a regular expression to
search in the current project's files, but instead of finding all the
matches and displaying them, it stops when it finds a match and visits
the matched file at the locus of the match, allowing you to edit the
matched file. To find the rest of the matches, type @w{@kbd{M-x
fileloop-continue @key{RET}}}.
@findex project-query-replace-regexp
@kbd{M-x project-query-replace-regexp} is similar to
@code{project-search}, but it prompts you for whether to replace each
match it finds, like @code{query-replace} does (@pxref{Query
Replace}), and continues to the next match after you respond. If your
response causes Emacs to exit the query-replace loop, you can later
continue with @w{@kbd{M-x fileloop-continue @key{RET}}}.
@node Change Log
@section Change Logs

View file

@ -101,6 +101,12 @@ shows equivalent key bindings for all commands that have them.
** Dired
*** New option 'dired-mark-region' affects all Dired commands that mark files.
When non-nil and the region is active in Transient Mark mode,
then Dired commands operate only on files in the active region.
The values 'exclusive' and 'inclusive' of this option define
the details of marking the last file at the end of the region.
*** State changing VC operations are supported in dired-mode on files
(but still not on directories).

View file

@ -978,7 +978,10 @@ The mode is automatically enabled in files that start with the
** project.el
+++
*** New commands 'project-search' and 'project-query-replace-regexp'.
---
*** New user option 'project-read-file-name-function'.
** Etags

View file

@ -205,7 +205,10 @@ Examples of PREDICATE:
(not (and (= (file-attribute-user-id fa1) - mark files with different UID
(file-attribute-user-id fa2))
(= (file-attribute-group-id fa1) - and GID.
(file-attribute-group-id fa2))))"
(file-attribute-group-id fa2))))
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil."
(interactive
(list
(let* ((target-dir (dired-dwim-target-directory))

View file

@ -623,7 +623,9 @@ interactively, prompt for REGEXP.
With prefix argument, unflag all those files.
Optional fourth argument LOCALP is as in `dired-get-filename'.
Optional fifth argument CASE-FOLD-P specifies the value of
`case-fold-search' used for matching REGEXP."
`case-fold-search' used for matching REGEXP.
If the region is active in Transient Mark mode, operate only on
files in the active region if `dired-mark-region' is non-nil."
(interactive
(list (read-regexp
"Mark unmarked files matching regexp (default all): "
@ -1386,7 +1388,9 @@ present for some values of `ls-lisp-emulation'.
This function operates only on the buffer content and does not
refer at all to the underlying file system. Contrast this with
`find-dired', which might be preferable for the task at hand."
`find-dired', which might be preferable for the task at hand.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil."
;; Using sym="" instead of nil avoids the trap of
;; (string-match "foo" sym) into which a user would soon fall.
;; Give `equal' instead of `=' in the example, as this works on

View file

@ -296,6 +296,34 @@ new Dired buffers."
:version "26.1"
:group 'dired)
(defcustom dired-mark-region 'exclusive
"Defines what commands that mark files do with the active region.
When nil, marking commands don't operate on all files in the
active region. They process their prefix arguments as usual.
When the value of this option is non-nil, then all Dired commands
that mark or unmark files will operate on all files in the region
if the region is active in Transient Mark mode.
When `exclusive', don't mark the file if the end of the region is
before the file name displayed on the Dired line, so the file name
is visually outside the region. This behavior is consistent with
marking files without the region using the key `m' that advances
point to the next line after marking the file. Thus the number
of keys used to mark files is the same as the number of keys
used to select the region, e.g. `M-2 m' marks 2 files, and
`C-SPC M-2 n m' marks 2 files, and `M-2 S-down m' marks 2 files.
When `inclusive', include the file into marking if the end of the region
is anywhere on its Dired line, except the beginning of the line."
:type '(choice
(const :tag "Don't mark files in active region" nil)
(const :tag "Exclude file name outside of region" exclusive)
(const :tag "Include the file at region end line" inclusive))
:group 'dired
:version "28.1")
;; Internal variables
(defvar dired-marker-char ?* ; the answer is 42
@ -612,12 +640,31 @@ Subexpression 2 must end right before the \\n.")
PREDICATE is evaluated on each line, with point at beginning of line.
MSG is a noun phrase for the type of files being marked.
It should end with a noun that can be pluralized by adding `s'.
In Transient Mark mode, if the mark is active, operate on the contents
of the region if `dired-mark-region' is non-nil. Otherwise, operate
on the whole buffer.
Return value is the number of files marked, or nil if none were marked."
`(let ((inhibit-read-only t) count)
`(let ((inhibit-read-only t) count
(beg (if (and dired-mark-region (use-region-p))
(save-excursion
(goto-char (region-beginning))
(line-beginning-position))
(point-min)))
(end (if (and dired-mark-region (use-region-p))
(save-excursion
(goto-char (region-end))
(if (if (eq dired-mark-region 'inclusive)
(not (bolp))
(get-text-property (1- (point)) 'dired-filename))
(line-end-position)
(line-beginning-position)))
(point-max))))
(save-excursion
(setq count 0)
(when ,msg
(message "%s %ss%s..."
(message "%s %ss%s%s..."
(cond ((eq dired-marker-char ?\s) "Unmarking")
((eq dired-del-marker dired-marker-char)
"Flagging")
@ -625,22 +672,28 @@ Return value is the number of files marked, or nil if none were marked."
,msg
(if (eq dired-del-marker dired-marker-char)
" for deletion"
"")))
(goto-char (point-min))
(while (not (eobp))
"")
(if (and dired-mark-region (use-region-p))
" in region"
"")))
(goto-char beg)
(while (< (point) end)
(when ,predicate
(unless (= (following-char) dired-marker-char)
(delete-char 1)
(insert dired-marker-char)
(setq count (1+ count))))
(forward-line 1))
(when ,msg (message "%s %s%s %s%s"
(when ,msg (message "%s %s%s %s%s%s"
count
,msg
(dired-plural-s count)
(if (eq dired-marker-char ?\s) "un" "")
(if (eq dired-marker-char dired-del-marker)
"flagged" "marked"))))
"flagged" "marked")
(if (and dired-mark-region (use-region-p))
" in region"
""))))
(and (> count 0) count)))
(defmacro dired-map-over-marks (body arg &optional show-progress
@ -3580,7 +3633,8 @@ no ARGth marked file is found before this line."
(defun dired-mark (arg &optional interactive)
"Mark the file at point in the Dired buffer.
If the region is active, mark all files in the region.
If the region is active in Transient Mark mode, mark all files
in the region if `dired-mark-region' is non-nil.
Otherwise, with a prefix arg, mark files on the next ARG lines.
If on a subdir headerline, mark all its files except `.' and `..'.
@ -3591,13 +3645,18 @@ this subdir."
(interactive (list current-prefix-arg t))
(cond
;; Mark files in the active region.
((and interactive (use-region-p))
((and dired-mark-region interactive (use-region-p))
(save-excursion
(let ((beg (region-beginning))
(end (region-end)))
(dired-mark-files-in-region
(progn (goto-char beg) (line-beginning-position))
(progn (goto-char end) (line-beginning-position))))))
(progn (goto-char end)
(if (if (eq dired-mark-region 'inclusive)
(not (bolp))
(get-text-property (1- (point)) 'dired-filename))
(line-end-position)
(line-beginning-position)))))))
;; Mark subdir files from the subdir headerline.
((dired-get-subdir)
(save-excursion (dired-mark-subdir-files)))
@ -3678,6 +3737,9 @@ As always, hidden subdirs are not affected."
A prefix argument means to unmark them instead.
`.' and `..' are never marked.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil.
REGEXP is an Emacs regexp, not a shell wildcard. Thus, use `\\.o$' for
object files--just `.o' will mark more than you might think."
(interactive
@ -3729,6 +3791,9 @@ object files--just `.o' will mark more than you might think."
A prefix argument means to unmark them instead.
`.' and `..' are never marked.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil.
Note that if a file is visited in an Emacs buffer, and
`dired-always-read-filesystem' is nil, this command will
look in the buffer without revisiting the file, so the results might
@ -3773,14 +3838,18 @@ The match is against the non-directory part of the filename. Use `^'
(defun dired-mark-symlinks (unflag-p)
"Mark all symbolic links.
With prefix argument, unmark or unflag all those files."
With prefix argument, unmark or unflag all those files.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
(dired-mark-if (looking-at-p dired-re-sym) "symbolic link")))
(defun dired-mark-directories (unflag-p)
"Mark all directory file lines except `.' and `..'.
With prefix argument, unmark or unflag all those files."
With prefix argument, unmark or unflag all those files.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
(dired-mark-if (and (looking-at-p dired-re-dir)
@ -3789,7 +3858,9 @@ With prefix argument, unmark or unflag all those files."
(defun dired-mark-executables (unflag-p)
"Mark all executable files.
With prefix argument, unmark or unflag all those files."
With prefix argument, unmark or unflag all those files.
If the region is active in Transient Mark mode, mark files
only in the active region if `dired-mark-region' is non-nil."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
(dired-mark-if (looking-at-p dired-re-exe) "executable file")))
@ -3799,7 +3870,9 @@ With prefix argument, unmark or unflag all those files."
(defun dired-flag-auto-save-files (&optional unflag-p)
"Flag for deletion files whose names suggest they are auto save files.
A prefix argument says to unmark or unflag those files instead."
A prefix argument says to unmark or unflag those files instead.
If the region is active in Transient Mark mode, flag files
only in the active region if `dired-mark-region' is non-nil."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
(dired-mark-if
@ -3839,7 +3912,9 @@ A prefix argument says to unmark or unflag those files instead."
(defun dired-flag-backup-files (&optional unflag-p)
"Flag all backup files (names ending with `~') for deletion.
With prefix argument, unmark or unflag these files."
With prefix argument, unmark or unflag these files.
If the region is active in Transient Mark mode, flag files
only in the active region if `dired-mark-region' is non-nil."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
(dired-mark-if

View file

@ -555,7 +555,7 @@ too large if positive or too small if negative)."
(defun cl-concatenate (type &rest sequences)
"Concatenate, into a sequence of type TYPE, the argument SEQUENCEs.
\n(fn TYPE SEQUENCE...)"
(seq-concatenate type sequences))
(apply #'seq-concatenate type sequences))
;;; List functions.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcAutoAway
;; This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
;; Filename: erc-backend.el
;; Author: Lawrence Mitchell <wence@gmx.li>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Created: 2004-05-7
;; Keywords: IRC chat client internet

View file

@ -3,7 +3,7 @@
;; Copyright (C) 1996-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: irc, button, url, regexp
;; URL: https://www.emacswiki.org/emacs/ErcButton

View file

@ -2,7 +2,7 @@
;; Copyright (C) 2006-2020 Free Software Foundation, Inc.
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2003, 2005-2020 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ERC
;; This file is part of GNU Emacs.

View file

@ -6,7 +6,7 @@
;; Author: Ben A. Mesander <ben@gnu.ai.mit.edu>
;; Noah Friedman <friedman@prep.ai.mit.edu>
;; Per Persson <pp@sno.pp.se>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, processes
;; Created: 1994-01-23

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2012-2020 Free Software Foundation, Inc.
;; Author: Julien Danjou <julien@danjou.info>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
;; Author: Andreas Fuchs <asf@void.at>
;; Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcFilling
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2001-2020 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Most code is taken verbatim from erc.el, see there for the original
;; authors.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2003, 2006-2020 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
;; Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcImenu

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: irc
;; URL: https://www.emacswiki.org/emacs/ErcAutoJoin

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Old-Version: 1.0.0
;; URL: https://www.emacswiki.org/emacs/ErcLang
;; Keywords: comm languages processes

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2008-2020 Free Software Foundation, Inc.
;; Author: Tom Tromey <tromey@redhat.com>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Old-Version: 0.1
;; URL: https://www.emacswiki.org/emacs/ErcList
;; Keywords: comm

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2003-2020 Free Software Foundation, Inc.
;; Author: Lawrence Mitchell <wence@gmx.li>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcLogging
;; Keywords: IRC, chat, client, Internet, logging

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2020 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, faces
;; URL: https://www.emacswiki.org/emacs/ErcMatch

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2001-2002, 2004-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, processes, menu
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002, 2004-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@lexx.delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@lexx.delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcNotify
;; Keywords: comm

View file

@ -2,7 +2,7 @@
;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Sacha Chua <sacha@free.net.ph>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, convenience
;; URL: https://www.emacswiki.org/emacs/ErcCompletion

View file

@ -4,7 +4,7 @@
;; Inc.
;; Author: Andreas Fuchs <asf@void.at>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcReplace
;; Keywords: IRC, client, Internet

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2001-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm
;; URL: https://www.emacswiki.org/emacs/ErcHistory

View file

@ -2,7 +2,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcNickserv
;; This file is part of GNU Emacs.

View file

@ -2,7 +2,7 @@
;; Copyright (C) 2002-2003, 2006-2020 Free Software Foundation, Inc.
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcSound
;; This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
;; Author: Mario Lang <mlang@delysid.org>
;; Contributor: Eric M. Ludlam <zappo@gnu.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcSpeedbar
;; This file is part of GNU Emacs.

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2005-2020 Free Software Foundation, Inc.
;; Author: Jorgen Schaefer <forcer@forcix.cx>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: irc
;; URL: https://www.emacswiki.org/emacs/ErcSpelling

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, processes, timestamp
;; URL: https://www.emacswiki.org/emacs/ErcStamp

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2002-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, faces
;; URL: https://www.emacswiki.org/emacs/ErcChannelTracking

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2003-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Andreas Fuchs <asf@void.at>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; URL: https://www.emacswiki.org/emacs/ErcTruncation
;; Keywords: IRC, chat, client, Internet, logging

View file

@ -3,7 +3,7 @@
;; Copyright (C) 2003-2004, 2006-2020 Free Software Foundation, Inc.
;; Author: Mario Lang <mlang@delysid.org>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.

View file

@ -10,7 +10,7 @@
;; Gergely Nagy (algernon@midgard.debian.net)
;; David Edmondson (dme@dme.org)
;; Kelvin White (kwhite@gnu.org)
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Maintainer: Amin Bandali <bandali@gnu.org>
;; Keywords: IRC, chat, client, Internet
;; Version: 5.3

View file

@ -437,6 +437,7 @@ triggers completion when entering a pattern, including it
requires quoting, e.g. `\\[quoted-insert]<space>'."
(interactive (list (project--read-regexp)))
(require 'xref)
(require 'grep)
(let* ((pr (project-current t))
(files
(if (not current-prefix-arg)
@ -606,7 +607,8 @@ PREDICATE, HIST, and DEFAULT have the same meaning as in
(defun project-search (regexp)
"Search for REGEXP in all the files of the project.
Stops when a match is found.
To continue searching for next match, use command \\[fileloop-continue]."
To continue searching for the next match, use the
command \\[fileloop-continue]."
(interactive "sSearch (regexp): ")
(fileloop-initialize-search
regexp (project-files (project-current t)) 'default)
@ -614,9 +616,10 @@ To continue searching for next match, use command \\[fileloop-continue]."
;;;###autoload
(defun project-query-replace-regexp (from to)
"Search for REGEXP in all the files of the project.
Stops when a match is found.
To continue searching for next match, use command \\[fileloop-continue]."
"Query-replace REGEXP in all the files of the project.
Stops when a match is found and prompts for whether to replace it.
If you exit the query-replace, you can later continue the query-replace
loop using the command \\[fileloop-continue]."
(interactive
(pcase-let ((`(,from ,to)
(query-replace-read-args "Query replace (regexp)" t t)))

View file

@ -70,7 +70,8 @@ any further elements added."
(height . ,height)
(version . "1.1")
(xmlns . "http://www.w3.org/2000/svg")
,@(svg--arguments nil args))))
(xmlns:xlink . "http://www.w3.org/1999/xlink")
,@(svg--arguments nil args))))
(defun svg-gradient (svg id type stops)
"Add a gradient with ID to SVG.

View file

@ -142,11 +142,19 @@
(defcustom tab-line-new-tab-choice t
"Defines what to show in a new tab.
If t, display a selection menu with all available buffers.
If the value is a function, call it with no arguments.
If nil, don't show the new tab button."
If the value is a function, call it with no arguments."
:type '(choice (const :tag "Buffer menu" t)
(function :tag "Function")
(const :tag "No button" nil))
(function :tag "Function"))
:group 'tab-line
:version "27.1")
(defcustom tab-line-new-button-show t
"If non-nil, show the \"New tab\" button in the tab line."
:type 'boolean
:initialize 'custom-initialize-default
:set (lambda (sym val)
(set-default sym val)
(force-mode-line-update))
:group 'tab-line
:version "27.1")
@ -211,7 +219,8 @@ If nil, don't show it at all."
'help-echo "Click to scroll right")
"Button for scrolling horizontally to the right.")
(defvar tab-line-separator nil)
(defvar tab-line-separator nil
"String that delimits tabs.")
(defcustom tab-line-tab-name-function #'tab-line-tab-name-buffer
@ -455,7 +464,8 @@ variable `tab-line-tabs-function'."
(if hscroll (nthcdr (truncate hscroll) strings) strings)
(list separator)
(when (and (eq tab-line-tabs-function #'tab-line-tabs-window-buffers)
tab-line-new-tab-choice)
tab-line-new-button-show
tab-line-new-button)
(list tab-line-new-button)))))
(defvar tab-line-auto-hscroll)

View file

@ -2247,29 +2247,32 @@ The elements of the alist are of the form (FILE . (DEFUN...)),
where DEFUN... is a list of function names found in FILE."
(save-excursion
(goto-char (point-min))
(let ((defuns nil)
(hunk-end nil)
(hunk-mismatch-files nil)
(make-defun-context-follower
(lambda (goline)
(let ((eodefun nil)
(defname nil))
(list
(lambda () ;; Check for end of current defun.
(when (and eodefun
(funcall goline)
(>= (point) eodefun))
(setq defname nil)
(setq eodefun nil)))
(lambda (&optional get-current) ;; Check for new defun.
(if get-current
defname
(when-let* ((def (and (not eodefun)
(funcall goline)
(add-log-current-defun)))
(eof (save-excursion (end-of-defun) (point))))
(setq eodefun eof)
(setq defname def)))))))))
(let* ((defuns nil)
(hunk-end nil)
(hunk-mismatch-files nil)
(make-defun-context-follower
(lambda (goline)
(let ((eodefun nil)
(defname nil))
(list
(lambda () ;; Check for end of current defun.
(when (and eodefun
(funcall goline)
(>= (point) eodefun))
(setq defname nil)
(setq eodefun nil)))
(lambda (&optional get-current) ;; Check for new defun.
(if get-current
defname
(when-let* ((def (and (not eodefun)
(funcall goline)
(add-log-current-defun)))
(eof (save-excursion
(condition-case ()
(progn (end-of-defun) (point))
(scan-error hunk-end)))))
(setq eodefun eof)
(setq defname def)))))))))
(while
;; Might need to skip over file headers between diff
;; hunks (e.g., "diff --git ..." etc).

View file

@ -788,18 +788,20 @@ This command will generate a ChangeLog entries listing the
functions. You can then add a description where needed, and use
\\[fill-paragraph] to join consecutive function names."
(interactive)
(let* ((diff-buf nil)
;; Unfortunately, `log-edit-show-diff' doesn't have a NO-SHOW
;; option, so we try to work around it via display-buffer
;; machinery.
(display-buffer-overriding-action
`(,(lambda (buf alist)
(setq diff-buf buf)
(display-buffer-no-window buf alist))
. ((allow-no-window . t)))))
(change-log-insert-entries
(with-current-buffer (progn (log-edit-show-diff) diff-buf)
(diff-add-log-current-defuns)))))
(change-log-insert-entries
(with-current-buffer
(let* ((diff-buf nil)
;; Unfortunately, `log-edit-show-diff' doesn't have a
;; NO-SHOW option, so we try to work around it via
;; display-buffer machinery.
(display-buffer-overriding-action
`(,(lambda (buf alist)
(setq diff-buf buf)
(display-buffer-no-window buf alist))
. ((allow-no-window . t)))))
(log-edit-show-diff)
diff-buf)
(diff-add-log-current-defuns))))
(defun log-edit-insert-changelog (&optional use-first)
"Insert a log message by looking at the ChangeLog.

View file

@ -63,6 +63,7 @@ OMIT_GNULIB_MODULE_sys_time = true
OMIT_GNULIB_MODULE_sys_types = true
OMIT_GNULIB_MODULE_unistd = true
OMIT_GNULIB_MODULE_canonicalize-lgpl = true
OMIT_GNULIB_MODULE_utimens = true
OMIT_GNULIB_MODULE_fchmodat = true
OMIT_GNULIB_MODULE_lchmod = true
OMIT_GNULIB_MODULE_futimens = true

View file

@ -1602,7 +1602,7 @@ notify_variable_watchers (Lisp_Object symbol,
/* Return the default value of SYMBOL, but don't check for voidness.
Return Qunbound if it is void. */
static Lisp_Object
Lisp_Object
default_value (Lisp_Object symbol)
{
struct Lisp_Symbol *sym;

View file

@ -3825,7 +3825,7 @@ backtrace_eval_unrewind (int distance)
{
Lisp_Object sym = specpdl_symbol (tmp);
Lisp_Object old_value = specpdl_old_value (tmp);
set_specpdl_old_value (tmp, Fdefault_value (sym));
set_specpdl_old_value (tmp, default_value (sym));
Fset_default (sym, old_value);
}
break;
@ -3841,7 +3841,7 @@ backtrace_eval_unrewind (int distance)
if (!NILP (Flocal_variable_p (symbol, where)))
{
set_specpdl_old_value
(tmp, Fbuffer_local_value (symbol, where));
(tmp, buffer_local_value (symbol, where));
set_internal (symbol, old_value, where, SET_INTERNAL_UNBIND);
}
}

View file

@ -680,6 +680,9 @@ lock_file (Lisp_Object fn)
dostounix_filename (SSDATA (fn));
#endif
encoded_fn = ENCODE_FILE (fn);
if (create_lockfiles)
/* Create the name of the lock-file for file fn */
MAKE_LOCK_NAME (lfname, encoded_fn);
/* See if this file is visited and has changed on disk since it was
visited. */
@ -690,7 +693,8 @@ lock_file (Lisp_Object fn)
if (!NILP (subject_buf)
&& NILP (Fverify_visited_file_modtime (subject_buf))
&& !NILP (Ffile_exists_p (fn)))
&& !NILP (Ffile_exists_p (fn))
&& (!create_lockfiles || current_lock_owner (NULL, lfname) != -2))
call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
}
@ -698,10 +702,6 @@ lock_file (Lisp_Object fn)
/* Don't do locking if the user has opted out. */
if (create_lockfiles)
{
/* Create the name of the lock-file for file fn */
MAKE_LOCK_NAME (lfname, encoded_fn);
/* Try to lock the lock. FIXME: This ignores errors when
lock_if_free returns a positive errno value. */
if (lock_if_free (&lock_info, lfname) < 0)

View file

@ -119,7 +119,7 @@ static struct
{ "jisx0213.2004-1", { 0x20B9F }},
{ "viscii1.1-1", { 0x1EA0, 0x1EAE, 0x1ED2 }, "vi"},
{ "tis620.2529-1", { 0x0E01 }, "th"},
{ "windows-1251", { 0x0401, 0x0490 }, "ru"},
{ "microsoft-cp1251", { 0x0401, 0x0490 }, "ru"},
{ "koi8-r", { 0x0401, 0x2219 }, "ru"},
{ "mulelao-1", { 0x0E81 }, "lo"},
{ "unicode-sip", { 0x20000 }},

View file

@ -595,6 +595,7 @@ extern void char_table_set (Lisp_Object, int, Lisp_Object);
/* Defined in data.c. */
extern AVOID wrong_type_argument (Lisp_Object, Lisp_Object);
extern Lisp_Object default_value (Lisp_Object symbol);
/* Defined in emacs.c. */

View file

@ -99,4 +99,12 @@
;; Test for Bug#33731.
(should-not (eq s (cl-make-random-state s)))))
(ert-deftest cl-concatenate ()
(should (equal (cl-concatenate 'list '(1 2 3) '(4 5 6))
'(1 2 3 4 5 6)))
(should (equal (cl-concatenate 'vector [1 2 3] [4 5 6])
[1 2 3 4 5 6]))
(should (equal (cl-concatenate 'string "123" "456")
"123456")))
;;; cl-extra-tests.el ends here