Merge remote-tracking branch 'savannah/master' into HEAD
This commit is contained in:
commit
8cc8adb04d
56 changed files with 306 additions and 109 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
6
etc/NEWS
6
etc/NEWS
|
@ -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).
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
105
lisp/dired.el
105
lisp/dired.el
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 }},
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue