; Fix typos

This commit is contained in:
Stefan Kangas 2024-07-07 17:40:31 +02:00
parent 41dc28244f
commit a6cab228d4
74 changed files with 250 additions and 256 deletions

View file

@ -997,7 +997,7 @@
2022-07-11 Stefan Kangas <stefan@marxist.se> 2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/find-dired.el (find-dired): Doc fix; add crossreference. * lisp/find-dired.el (find-dired): Doc fix; add cross-reference.
2022-07-08 Stefan Kangas <stefan@marxist.se> 2022-07-08 Stefan Kangas <stefan@marxist.se>
@ -141854,7 +141854,7 @@
client key/cert specification. client key/cert specification.
* doc/misc/emacs-gnutls.texi (Help For Developers): Describe usage of * doc/misc/emacs-gnutls.texi (Help For Developers): Describe usage of
optional plist argument. Add crossreference to description of optional plist argument. Add cross-reference to description of
.authinfo format for client key/cert specification. .authinfo format for client key/cert specification.
* etc/NEWS: Describe new client certificate functionality for * etc/NEWS: Describe new client certificate functionality for

View file

@ -49037,7 +49037,7 @@
2022-07-11 Stefan Kangas <stefan@marxist.se> 2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/find-dired.el (find-dired): Doc fix; add crossreference. * lisp/find-dired.el (find-dired): Doc fix; add cross-reference.
2022-07-11 Stefan Kangas <stefan@marxist.se> 2022-07-11 Stefan Kangas <stefan@marxist.se>
@ -78967,7 +78967,7 @@
This abstracts out the somewhat-unusual "insert&delete" logic in This abstracts out the somewhat-unusual "insert&delete" logic in
'eshell-parse-command' so that it can be used elsewhere, and also 'eshell-parse-command' so that it can be used elsewhere, and also
ensures that the deletion occurs even if an an error occurs. ensures that the deletion occurs even if an error occurs.
* lisp/eshell/esh-cmd.el (eshell-with-temp-command): New macro. * lisp/eshell/esh-cmd.el (eshell-with-temp-command): New macro.
(eshell-parse-command): Use it. (eshell-parse-command): Use it.
@ -82043,7 +82043,7 @@
(BClipboard_set_system_data) (BClipboard_set_system_data)
(BClipboard_set_primary_selection_data) (BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): Store count before (BClipboard_set_secondary_selection_data): Store count before
saving to the the clipboard. saving to the clipboard.
(BClipboard_owns_clipboard, BClipboard_owns_primary) (BClipboard_owns_clipboard, BClipboard_owns_primary)
(BClipboard_owns_secondary): Adjust tests accordingly. (BClipboard_owns_secondary): Adjust tests accordingly.

View file

@ -1684,3 +1684,4 @@ argument \\='general-category, is Decimal_Numbers (Nd). It returns
((or (string-equal tag "anc") (string-equal tag "ancestor")) ((or (string-equal tag "anc") (string-equal tag "ancestor"))
("ro" :default "Continuare de pe pagina precedentă") ("ro" :default "Continuare de pe pagina precedentă")
("ro" :default "Continuare pe pagina următoare") ("ro" :default "Continuare pe pagina următoare")
;; avk@rtsg.mot.com (Andrew V. Klein) for a Dired tip.

View file

@ -9,18 +9,14 @@ blocs
callint callint
checkin checkin
clen clen
crossreference
crossreferences
debbugs debbugs
dedented dedented
dependant dependant
doas
ede ede
grey grey
gud gud
ifset ifset
inout inout
keypair
keyserver keyserver
keyservers keyservers
lightening lightening
@ -28,7 +24,6 @@ mapp
master master
mimicks mimicks
mitre mitre
msdos
ot ot
parm parm
parms parms
@ -37,8 +32,6 @@ reenable
reenabled reenabled
requestor requestor
sie sie
spawnve
statics statics
stdio
texline texline
typdef typdef

View file

@ -54,7 +54,7 @@ the ones that are not reproducible on the current release.
If you can reproduce, then reply on the thread (either on the If you can reproduce, then reply on the thread (either on the
original message, or anywhere you find appropriate) that you original message, or anywhere you find appropriate) that you
can reproduce this on the current release. If your can reproduce this on the current release. If your
reproduction gives additional info (such as a backtrace), reproduction gives additional info (such as a backtrace),
then add that as well, since it will help whoever attempts to then add that as well, since it will help whoever attempts to
fix it. fix it.
@ -79,7 +79,7 @@ the ones that are not reproducible on the current release.
3. Your changes will take some time to take effect. After a period of minutes 3. Your changes will take some time to take effect. After a period of minutes
to hours, you will get a mail telling you the control message has been to hours, you will get a mail telling you the control message has been
processed. At this point, if there were no errors detected, you and processed. At this point, if there were no errors detected, you and
everyone else can see your changes. If there are errors, read the error everyone else can see your changes. If there are errors, read the error
text - if you need help, consulting the bugtracker documentation in this text - if you need help, consulting the bugtracker documentation in this
same directory. same directory.

View file

@ -39,7 +39,7 @@ tags 123 moreinfo|unreproducible|wontfix|patch|notabug
For a list of all bugs, see https://debbugs.gnu.org/db/pa/lemacs.html For a list of all bugs, see https://debbugs.gnu.org/db/pa/lemacs.html
This is a static page, updated once a day. There is also a dynamic This is a static page, updated once a day. There is also a dynamic
list, generated on request. This accepts various options, e.g., to see list, generated on request. This accepts various options, e.g., to see
the most recent bugs: the most recent bugs:
https://debbugs.gnu.org/cgi/pkgreport.cgi?newest=100 https://debbugs.gnu.org/cgi/pkgreport.cgi?newest=100
@ -183,7 +183,7 @@ emacs-bug-tracker mailing list, just pick one or the other.
** How to avoid multiple copies of mails. ** How to avoid multiple copies of mails.
If you reply to reports in the normal way, this should work fine. If you reply to reports in the normal way, this should work fine.
Basically, reply only to the numbered bug address (and any individual Basically, reply only to the numbered bug address (and any individual
people's addresses). Do not send mail direct to bug-gnu-emacs or people's addresses). Do not send mail direct to bug-gnu-emacs or
emacs-pretest-bug unless you are reporting a new bug. emacs-pretest-bug unless you are reporting a new bug.
** To close bug#123 (for example), send mail ** To close bug#123 (for example), send mail
@ -212,7 +212,7 @@ that the bug has been closed. This mail has a header:
X-GNU-PR-Message: closed 123 X-GNU-PR-Message: closed 123
4) Send a copy of your mail to the bug-gnu-emacs list in exactly the 4) Send a copy of your mail to the bug-gnu-emacs list in exactly the
same way as if you had sent mail to "123" (sans -done). This mail has same way as if you had sent mail to "123" (sans -done). This mail has
headers: headers:
X-GNU-PR-Message: cc-closed 123 X-GNU-PR-Message: cc-closed 123

View file

@ -16,10 +16,10 @@ longer, eg the text "GNU Emacs is free software...".
Summary for the impatient: Summary for the impatient:
1. Don't add code to Emacs written by someone other than yourself 1. Don't add code to Emacs written by someone other than yourself
without thinking about the legal aspect. Even if the changes are without thinking about the legal aspect. Even if the changes are
trivial, consider if they combine with previous changes by the same trivial, consider if they combine with previous changes by the same
author to make a non-trivial total. If so, make sure they have an author to make a non-trivial total. If so, make sure they have an
assignment. If adding a whole file adjust the copyright statements in assignment. If adding a whole file adjust the copyright statements in
the file. the file.
2. When installing code written by someone else, the commit 2. When installing code written by someone else, the commit
@ -38,23 +38,23 @@ right thing to do.
Every non-trivial file distributed through the Emacs repository should be Every non-trivial file distributed through the Emacs repository should be
self-explanatory in terms of copyright and license. This includes self-explanatory in terms of copyright and license. This includes
files that are not distributed in Emacs releases (for example, the files that are not distributed in Emacs releases (for example, the
admin/ directory), because the whole Emacs repository is publicly admin/ directory), because the whole Emacs repository is publicly
available. available.
The definition of triviality is a little vague, but a rule of thumb is The definition of triviality is a little vague, but a rule of thumb is
that any file with less than 15 lines of actual content is trivial. If that any file with less than 15 lines of actual content is trivial. If
a file is auto-generated (eg ldefs-boot.el) from another one in the a file is auto-generated (eg ldefs-boot.el) from another one in the
repository, then it does not really matter about adding a copyright repository, then it does not really matter about adding a copyright
statement to the generated file. statement to the generated file.
Legal advice says that we could, if we wished, put a license notice Legal advice says that we could, if we wished, put a license notice
even in trivial files, because copyright law in general looks at the even in trivial files, because copyright law in general looks at the
overall work as a whole. It is not _necessary_ to do so, and rms overall work as a whole. It is not _necessary_ to do so, and rms
prefers that we do not. This means one needs to take care that trivial prefers that we do not. This means one needs to take care that trivial
files do not grow and become non-trivial without having a license files do not grow and become non-trivial without having a license
added. NB consequently, if you add a lot of text to a small file, added. NB consequently, if you add a lot of text to a small file,
consider whether your changes have made the file worthy of a copyright consider whether your changes have made the file worthy of a copyright
notice, and if so, please add one. notice, and if so, please add one.
@ -62,10 +62,10 @@ It can be helpful to put a reminder comment at the start of a trivial
file, eg: "add a license notice if this grows to > 10 lines of code". file, eg: "add a license notice if this grows to > 10 lines of code".
The years in the copyright notice should be updated every year (see The years in the copyright notice should be updated every year (see
file "years" in this directory). The PDF versions of refcards etc file "years" in this directory). The PDF versions of refcards etc
should display copyright notices (an exception to the rule about should display copyright notices (an exception to the rule about
"generated" files), but these can just display the latest year. The "generated" files), but these can just display the latest year. The
full list of years should be kept in comments in the source file. If full list of years should be kept in comments in the source file. If
these are distributed in the repository, check in a regenerated these are distributed in the repository, check in a regenerated
version when the tex files are updated. version when the tex files are updated.
@ -75,28 +75,28 @@ Copyright changes should be propagated to any associated repositories
All README (and other such text files) that are non-trivial should All README (and other such text files) that are non-trivial should
contain copyright statements and GPL license notices, exactly as .el contain copyright statements and GPL license notices, exactly as .el
files do (see e.g. README in the top-level directory). Before 2007, files do (see e.g. README in the top-level directory). Before 2007,
we used a simple, short statement permitting copying and modification we used a simple, short statement permitting copying and modification
provided legal notices were retained. In Feb 2007 we switched to the provided legal notices were retained. In Feb 2007 we switched to the
standard GPL text, on legal advice. Some older text files in etc/ standard GPL text, on legal advice. Some older text files in etc/
should, however, keep their current licenses (see below for list). should, however, keep their current licenses (see below for list).
For image files, the copyright and license details should be recorded For image files, the copyright and license details should be recorded
in a README file in each directory with images. (Legal advice says in a README file in each directory with images. (Legal advice says
that we need not add notices to each image file individually, if they that we need not add notices to each image file individually, if they
allow for that.). It is recommended to use the word "convert" to allow for that.). It is recommended to use the word "convert" to
describe the automatic process of changing an image from one format to describe the automatic process of changing an image from one format to
another (https://lists.gnu.org/r/emacs-devel/2007-02/msg00618.html). another (https://lists.gnu.org/r/emacs-devel/2007-02/msg00618.html).
When installing a file with an "unusual" license (after checking first When installing a file with an "unusual" license (after checking first
it is ok), put a copy of the copyright and license in the file (if it is ok), put a copy of the copyright and license in the file (if
possible. It's ok if this makes the file incompatible with its possible. It's ok if this makes the file incompatible with its
original format, if it can still be used by Emacs), or in a README original format, if it can still be used by Emacs), or in a README
file in the relevant directory. file in the relevant directory.
The vast majority of files are copyright FSF and distributed under the The vast majority of files are copyright FSF and distributed under the
GPL. A few files (mainly related to language and charset support) are GPL. A few files (mainly related to language and charset support) are
copyright AIST alone, or both AIST and FSF. (Contact Kenichi Handa copyright AIST alone, or both AIST and FSF. (Contact Kenichi Handa
with questions about legal issues in such files.) In all these cases, with questions about legal issues in such files.) In all these cases,
the copyright years in each file should be updated each year. the copyright years in each file should be updated each year.
@ -106,16 +106,16 @@ these are listed below for reference, together with any files where
the copyright needs to be updated in "unusual" ways. the copyright needs to be updated in "unusual" ways.
If you find any other such cases, please consult to check they are ok, If you find any other such cases, please consult to check they are ok,
and note them in this file. This includes missing copyright notices, and note them in this file. This includes missing copyright notices,
and "odd" copyright holders. In most cases, individual authors should and "odd" copyright holders. In most cases, individual authors should
not appear in copyright statements. Either the copyright has been not appear in copyright statements. Either the copyright has been
assigned (check copyright.list) to the FSF (in which case the original assigned (check copyright.list) to the FSF (in which case the original
author should be removed and the year(s) transferred to the FSF); or author should be removed and the year(s) transferred to the FSF); or
else it is possible the file should not be in Emacs at all (please else it is possible the file should not be in Emacs at all (please
report!). report!).
Note that it seems painfully clear that one cannot rely on commit logs, Note that it seems painfully clear that one cannot rely on commit logs,
or even change log entries, for older changes. People often installed or even change log entries, for older changes. People often installed
changes from others, without recording the true authorship. changes from others, without recording the true authorship.
[For reference, most of these points were established via email with [For reference, most of these points were established via email with
@ -146,7 +146,7 @@ lib/Makefile.in
- copyright FSF, with MIT-like license - copyright FSF, with MIT-like license
build-aux/install-sh build-aux/install-sh
- this file is copyright MIT, which is OK. Leave the copyright alone. - this file is copyright MIT, which is OK. Leave the copyright alone.
etc/refcards/*.tex etc/refcards/*.tex
also update the \def\year macro for the latest year. also update the \def\year macro for the latest year.
@ -162,7 +162,7 @@ etc/letter.pbm,letter.xpm
<https://lists.gnu.org/r/emacs-devel/2007-02/msg00324.html> <https://lists.gnu.org/r/emacs-devel/2007-02/msg00324.html>
etc/HELLO etc/HELLO
standard notices. Just a note that although the file itself is not standard notices. Just a note that although the file itself is not
really copyrightable, in the wider context of it being part of really copyrightable, in the wider context of it being part of
Emacs (and written by those with assignments), a standard notice is Emacs (and written by those with assignments), a standard notice is
fine. fine.
@ -183,20 +183,20 @@ leim/quail/PY.el, ZIRANMA.el) are under GPLv1 or later.
leim/SKK-DIC/SKK-JISYO.L leim/SKK-DIC/SKK-JISYO.L
ja-dic/ja-dic.el ja-dic/ja-dic.el
(the latter is auto-generated from the former). Leave the copyright alone. (the latter is auto-generated from the former). Leave the copyright alone.
lib-src/etags.c lib-src/etags.c
Copyright information is duplicated in etc/ETAGS.README. Update that Copyright information is duplicated in etc/ETAGS.README. Update that
file too. file too.
Until 2007 etags.c was described as being copyright FSF and Ken Arnold. Until 2007 etags.c was described as being copyright FSF and Ken Arnold.
After some investigation in Feb 2007, then to the best of our After some investigation in Feb 2007, then to the best of our
knowledge we believe that the original 1984 Emacs version was based knowledge we believe that the original 1984 Emacs version was based
on the version in BSD4.2. See for example this 1985 post from Ken Arnold: on the version in BSD4.2. See for example this 1985 post from Ken Arnold:
<https://groups.google.com/group/mod.sources/browse_thread/thread/ffe5c55845a640a9> <https://groups.google.com/group/mod.sources/browse_thread/thread/ffe5c55845a640a9>
I have received enough requests for the current source to ctags I have received enough requests for the current source to ctags
to post it. Here is the latest version (what will go out with to post it. Here is the latest version (what will go out with
4.3, modulo any bugs fixed during the beta period). It is the 4.3, modulo any bugs fixed during the beta period). It is the
4.2 ctags with recognition of yacc and lex tags added. 4.2 ctags with recognition of yacc and lex tags added.
See also a 1984 version of ctags (no copyright) posted to net.sources: See also a 1984 version of ctags (no copyright) posted to net.sources:
@ -204,9 +204,9 @@ lib-src/etags.c
Version of etags.c in emacs-16.56 duplicates comment typos. Version of etags.c in emacs-16.56 duplicates comment typos.
Accordingly, in Feb 2007 we added a 1984 copyright for the Accordingly, in Feb 2007 we added a 1984 copyright for the
University of California and a revised BSD license. The terms of University of California and a revised BSD license. The terms of
this require that the full license details be available in binary this require that the full license details be available in binary
distributions - hence the file etc/ETAGS.README. The fact that the distributions - hence the file etc/ETAGS.README. The fact that the
--version output just says "Copyright <year> FSF" is apparently OK --version output just says "Copyright <year> FSF" is apparently OK
from a legal point of view. from a legal point of view.
@ -216,7 +216,7 @@ lisp/cedet/semantic/imenu.el
from authors other than himself were negligible. from authors other than himself were negligible.
lisp/play/tetris.el lisp/play/tetris.el
- no special rules about the copyright. We note here that we believe - no special rules about the copyright. We note here that we believe
(2007/1) there is no problem with our use of the name "tetris" or (2007/1) there is no problem with our use of the name "tetris" or
the concept. the concept.
rms: "My understanding is that game rules as such are not copyrightable." rms: "My understanding is that game rules as such are not copyrightable."
@ -225,7 +225,7 @@ lisp/play/tetris.el
lisp/net/tramp.el lisp/net/tramp.el
- there are also copyrights in the body of the file. Update these too. - there are also copyrights in the body of the file. Update these too.
lwlib/ lwlib/
@ -237,23 +237,23 @@ below).
FSF copyrights should only appear in files which have undergone FSF copyrights should only appear in files which have undergone
non-trivial cumulative changes from the original versions in the Lucid non-trivial cumulative changes from the original versions in the Lucid
Widget Library. NB this means that if you make non-trivial changes to Widget Library. NB this means that if you make non-trivial changes to
a file with no FSF copyright, you should add one. Also, if changes are a file with no FSF copyright, you should add one. Also, if changes are
reverted to the extent that a file becomes basically the same as the reverted to the extent that a file becomes basically the same as the
original version, the FSF copyright should be removed. original version, the FSF copyright should be removed.
In my (rgm) opinion, as of Feb 2007, all the non-trivial files differ In my (rgm) opinion, as of Feb 2007, all the non-trivial files differ
significantly from the original versions, with the exception of significantly from the original versions, with the exception of
lwlib-Xm.h. Most of the changes that were made to this file have lwlib-Xm.h. Most of the changes that were made to this file have
subsequently been reverted. Therefore I removed the FSF copyright from subsequently been reverted. Therefore I removed the FSF copyright from
this file (which is arguably too trivial to merit a notice anyway). I this file (which is arguably too trivial to merit a notice anyway). I
added FSF copyright to the following files which did not have them added FSF copyright to the following files which did not have them
already: Makefile.in, lwlib-Xaw.c, lwlib-int.h (borderline), already: Makefile.in, lwlib-Xaw.c, lwlib-int.h (borderline),
lwlib-utils.c (borderline), lwlib.c, lwlib.h. lwlib-utils.c (borderline), lwlib.c, lwlib.h.
Copyright years before the advent of public CVS in 2001 were those Copyright years before the advent of public CVS in 2001 were those
when I judged (from the CVS logs) that non-trivial amounts of change when I judged (from the CVS logs) that non-trivial amounts of change
had taken place. I also adjusted the existing FSF years in xlwmenu.c, had taken place. I also adjusted the existing FSF years in xlwmenu.c,
xlwmenu.h, and xlwmenuP.h on the same basis. xlwmenu.h, and xlwmenuP.h on the same basis.
Note that until Feb 2007, the following files in lwlib were lacking Note that until Feb 2007, the following files in lwlib were lacking
@ -264,17 +264,17 @@ xlwmenuP.h.
To the best of our knowledge, all the code files in lwlib were To the best of our knowledge, all the code files in lwlib were
originally part of the Lucid Widget Library, even if they did not say originally part of the Lucid Widget Library, even if they did not say
so explicitly. For example, they were all present in Lucid Emacs 19.1 so explicitly. For example, they were all present in Lucid Emacs 19.1
in 1992. The exceptions are the two Xaw files, which did not appear in 1992. The exceptions are the two Xaw files, which did not appear
till Lucid Emacs 19.9 in 1994. The file lwlib-Xaw.h is too trivial to till Lucid Emacs 19.9 in 1994. The file lwlib-Xaw.h is too trivial to
merit a copyright notice, but would presumably have the same one as merit a copyright notice, but would presumably have the same one as
lwlib-Xaw.c. We have been unable to find a true standalone version of lwlib-Xaw.c. We have been unable to find a true standalone version of
LWL, if there was such a thing, to check definitively. LWL, if there was such a thing, to check definitively.
To clarify the situation, in Feb 2007 we added Lucid copyrights and To clarify the situation, in Feb 2007 we added Lucid copyrights and
GPL notices to those files lacking either that were non-trivial, GPL notices to those files lacking either that were non-trivial,
namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents
our best understanding of the legal status of these files. We also our best understanding of the legal status of these files. We also
clarified the notices in Makefile.in, which was originally the clarified the notices in Makefile.in, which was originally the
Makefile auto-generated from Lucid's Imakefile. Makefile auto-generated from Lucid's Imakefile.
@ -284,16 +284,16 @@ notices: lwlib-Xaw.h, lwlib-Xlw.h, lwlib-utils.h.
The version of lwlib/ first installed in Emacs seems to be the same as The version of lwlib/ first installed in Emacs seems to be the same as
that used in Lucid Emacs 19.8 (released 6-sep-93); except the two Xaw that used in Lucid Emacs 19.8 (released 6-sep-93); except the two Xaw
files, which did not appear till Athena support was added in Lucid files, which did not appear till Athena support was added in Lucid
Emacs 19.9. In Lucid Emacs 19.1, all files were under GPLv1 or later, Emacs 19.9. In Lucid Emacs 19.1, all files were under GPLv1 or later,
but by Lucid Emacs 19.8, lwlib.c and xlwmenu.c had been switched to v2 but by Lucid Emacs 19.8, lwlib.c and xlwmenu.c had been switched to v2
or later. These are the versions that were first installed in Emacs. or later. These are the versions that were first installed in Emacs.
So in GNU Emacs, these two files have been under v2 or later since So in GNU Emacs, these two files have been under v2 or later since
1994. 1994.
It seems that it was the intention of Lucid to use v1 or later It seems that it was the intention of Lucid to use v1 or later
(excepting the two files mentioned previously); so this is the license (excepting the two files mentioned previously); so this is the license
we have used when adding notices to code that did not have notices we have used when adding notices to code that did not have notices
originally. Although we have the legal right to switch to v2 or later, originally. Although we have the legal right to switch to v2 or later,
rms prefers that we do not do so. rms prefers that we do not do so.
@ -302,7 +302,7 @@ doc/*/doclicense.texi
doc/*/*.texi - All manuals should be under GFDL (but see below), and doc/*/*.texi - All manuals should be under GFDL (but see below), and
should include a copy of it, so that they can be distributed should include a copy of it, so that they can be distributed
separately. faq.texi has a different license, for some reason no-one separately. efaq.texi has a different license, for some reason no-one
can remember. can remember.
https://lists.gnu.org/r/emacs-devel/2007-04/msg00583.html https://lists.gnu.org/r/emacs-devel/2007-04/msg00583.html
https://lists.gnu.org/r/emacs-devel/2007-04/msg00618.html https://lists.gnu.org/r/emacs-devel/2007-04/msg00618.html
@ -319,23 +319,23 @@ an MIT-like license.
oldXMenu/ oldXMenu/
Keep the "copyright.h" method used by X11, rather than moving the Keep the "copyright.h" method used by X11, rather than moving the
licenses into the files. Note that the original X10.h did not use licenses into the files. Note that the original X10.h did not use
copyright.h, but had an explicit notice, which we retain. copyright.h, but had an explicit notice, which we retain.
If you make non-trivial changes to a file which does not have an FSF If you make non-trivial changes to a file which does not have an FSF
notice, add one and a GPL notice (as per Activate.c). If changes to a notice, add one and a GPL notice (as per Activate.c). If changes to a
file are reverted such that it becomes essentially the same as the file are reverted such that it becomes essentially the same as the
original X11 version, remove the FSF notice and GPL. original X11 version, remove the FSF notice and GPL.
Only the files which differ significantly from the original X11 Only the files which differ significantly from the original X11
versions should have FSF copyright and GPL notices. At time of writing versions should have FSF copyright and GPL notices. At time of writing
(Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm) (Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm)
established this by diff'ing the current files against those in X11R1, established this by diff'ing the current files against those in X11R1,
and when I found significant differences looking in the ChangeLog for and when I found significant differences looking in the ChangeLog for
the years they originated (the CVS logs are truncated before 1999). I the years they originated (the CVS logs are truncated before 1999). I
therefore removed the FSF notices (added in 200x) from the other therefore removed the FSF notices (added in 200x) from the other
files. There are some borderline cases IMO: AddSel.c, InsSel.c, files. There are some borderline cases IMO: AddSel.c, InsSel.c,
XMakeAssoc.c, XMenu.h. For these I erred on the side of NOT adding FSF XMakeAssoc.c, XMenu.h. For these I erred on the side of NOT adding FSF
notices. notices.
With regards to whether the files we have changed should have GPL With regards to whether the files we have changed should have GPL
@ -347,41 +347,41 @@ added or not, rms says (2007-02-25, "oldXmenu issues"):
So, to make things simple, please put our changes under the GPL. So, to make things simple, please put our changes under the GPL.
insque.c had no copyright notice until 2005. The version of insque.c insque.c had no copyright notice until 2005. The version of insque.c
added to Emacs 1992-01-27 is essentially the same as insremque.c added added to Emacs 1992-01-27 is essentially the same as insremque.c added
to glic three days later by Roland McGrath, with an FSF copyright and to glic three days later by Roland McGrath, with an FSF copyright and
GPL, but no ChangeLog entry. GPL, but no ChangeLog entry.
To the best of his recollection, McGrath (who has a copyright To the best of his recollection, McGrath (who has a copyright
assignment) was the author of this file (email from roland at frob.com assignment) was the author of this file (email from roland at frob.com
to rms, 2007-02-23, "Where did insque.c come from?"). The FSF to rms, 2007-02-23, "Where did insque.c come from?"). The FSF
copyright and GPL in this file are therefore correct as far as we copyright and GPL in this file are therefore correct as far as we
understand it. understand it.
Imakefile had no legal info in Feb 2007, but was obviously based on Imakefile had no legal info in Feb 2007, but was obviously based on
the X11 version (which also had no explicit legal info). As it was the X11 version (which also had no explicit legal info). As it was
unused, I removed it. It would have the same MIT copyright as unused, I removed it. It would have the same MIT copyright as
Makefile.in does now. Makefile.in does now.
src/gmalloc.c src/gmalloc.c
- contains numerous copyrights from the GNU C library. Leave them alone. - contains numerous copyrights from the GNU C library. Leave them alone.
nt/inc/dirent.h nt/inc/dirent.h
- see comments below. This file is OK to be released with Emacs - see comments below. This file is OK to be released with Emacs
22, but we may want to revisit it afterwards. 22, but we may want to revisit it afterwards.
** Some notes on resolved issues, for historical information only ** Some notes on resolved issues, for historical information only
etc/TERMS etc/TERMS
rms: "surely written either by me or by ESR. (If you can figure out rms: "surely written either by me or by ESR. (If you can figure out
which year, I can probably tell you which.) Either way, we have papers which year, I can probably tell you which.) Either way, we have papers
for it." It was present in Emacs-16.56 (15-jul-85). rms: "Then I for it." It was present in Emacs-16.56 (15-jul-85). rms: "Then I
conclude it was written by me." conclude it was written by me."
lisp/term/README lisp/term/README
- had no copyright notice till Feb 2007. ChangeLog.3 suggests it was - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
written by Eric S. Raymond. When asked by rms on 14 Feb 2007 he said: written by Eric S. Raymond. When asked by rms on 14 Feb 2007 he said:
I don't remember writing it, but it reads like my prose and I believe I don't remember writing it, but it reads like my prose and I believe
I wrote the feature(s) it's describing. So I would have been the I wrote the feature(s) it's describing. So I would have been the
@ -393,10 +393,10 @@ lisp/term/README
src/unexhp9k800.c src/unexhp9k800.c
https://lists.gnu.org/r/emacs-devel/2007-02/msg00138.html https://lists.gnu.org/r/emacs-devel/2007-02/msg00138.html
- briefly removed due to legal uncertainly Jan-Mar 2007. The - briefly removed due to legal uncertainly Jan-Mar 2007. The
relevant assignment is under "hp9k800" in copyright.list. File was relevant assignment is under "hp9k800" in copyright.list. File was
written by John V. Morris at HP, and disclaimed by the author and written by John V. Morris at HP, and disclaimed by the author and
HP. So this file is public domain. HP. So this file is public domain.
lisp/progmodes/python.el lisp/progmodes/python.el
@ -424,20 +424,20 @@ nt/inc/dirent.h
algorithm in this format. algorithm in this format.
With the addition of this notice, these files are OK for the With the addition of this notice, these files are OK for the
upcoming Emacs-22 release. Post-release, we can revisit this issue upcoming Emacs-22 release. Post-release, we can revisit this issue
and possibly add a list of all authors who have changed these files. and possibly add a list of all authors who have changed these files.
(details in email from Matt Norwood to rms, 2007/02/03). (details in email from Matt Norwood to rms, 2007/02/03).
src/s/aix3-2.h, hpux8.h, hpux9.h, irix5-0.h, netbsd.h, usg5-4-2.h src/s/aix3-2.h, hpux8.h, hpux9.h, irix5-0.h, netbsd.h, usg5-4-2.h
[note some of these have since been merged into other files] [note some of these have since been merged into other files]
- all these (not obviously trivial) files were missing copyrights - all these (not obviously trivial) files were missing copyrights
till Feb 2007, when FSF copyright was added. Matt Norwood advised: till Feb 2007, when FSF copyright was added. Matt Norwood advised:
For now, I think the best policy is to assume that we do have For now, I think the best policy is to assume that we do have
assignments from the authors (I recall many of these header files assignments from the authors (I recall many of these header files
as having been originally written by rms), and to attach an FSF as having been originally written by rms), and to attach an FSF
copyright with GPL notice. We can amend this if and when we copyright with GPL notice. We can amend this if and when we
complete the code audit. Any additions to these files by complete the code audit. Any additions to these files by
non-assigned authors are arguably "de minimis" contributions to non-assigned authors are arguably "de minimis" contributions to
Emacs: small changes or suggestions to a work that are subsumed in Emacs: small changes or suggestions to a work that are subsumed in
the main authors' copyright in the entire work. the main authors' copyright in the entire work.
@ -446,18 +446,18 @@ Here is my (rgm) take on the details of the above files:
? irix5-0.h ? irix5-0.h
I would say started non-trivial (1993, jimb, heavily based I would say started non-trivial (1993, jimb, heavily based
on irix4-0.h). A few borderline non-tiny changes since. on irix4-0.h). A few borderline non-tiny changes since.
usg5-4-2.h usg5-4-2.h
started non-trivial, but was heavily based on usg5-4.h, which was and is started non-trivial, but was heavily based on usg5-4.h, which was and is
copyright FSF. only tiny changes since installed. copyright FSF. only tiny changes since installed.
aix3-2.h, hpux8.h, hpux9.h, netbsd.h aix3-2.h, hpux8.h, hpux9.h, netbsd.h
started trivial, grown in tiny changes. started trivial, grown in tiny changes.
netbsd.h: netbsd.h:
Roland McGrath said to rms (2007/02/17): "I don't really remember Roland McGrath said to rms (2007/02/17): "I don't really remember
anything about it. If I put it in without other comment, then probably anything about it. If I put it in without other comment, then probably
I wrote it myself." I wrote it myself."
@ -491,13 +491,13 @@ noted in this file.
REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico
- Restore if find legal info. emacs21.ico is not due to Davenport. - Restore if find legal info. emacs21.ico is not due to Davenport.
Geoff Voelker checked but could not find a record of where it came Geoff Voelker checked but could not find a record of where it came
from. from.
etc/images etc/images
Image files from GTK, Gnome are under GPLv2 (no "or later"?). RMS will Image files from GTK, Gnome are under GPLv2 (no "or later"?). RMS will
contact image authors in regards to future switch to v3. contact image authors in regards to future switch to v3.
@ -525,9 +525,9 @@ Some notes:
(see https://lists.gnu.org/r/emacs-devel/2007-07/msg01431.html) (see https://lists.gnu.org/r/emacs-devel/2007-07/msg01431.html)
1. There are some files in the Emacs tree which are not part of Emacs (eg 1. There are some files in the Emacs tree which are not part of Emacs (eg
those included from Gnulib). These are all copyright FSF and (at time those included from Gnulib). These are all copyright FSF and (at time
of writing) GPL >= 2. rms says may as well leave the licenses of these of writing) GPL >= 2. rms says may as well leave the licenses of these
alone (may import them from Gnulib again). These are: alone (may import them from Gnulib again). These are:
Gnulib: Gnulib:
build-aux/config.guess build-aux/config.guess
@ -555,7 +555,7 @@ ChangeLog, etc), ie remain under GPL v1 or later, or v2 or later.
(rms: "We may as well leave this alone, since we are never going to (rms: "We may as well leave this alone, since we are never going to
change it much.") change it much.")
4. There are some files where the FSF holds no copyright. These were 4. There are some files where the FSF holds no copyright. These were
left alone: left alone:
leim/MISC-DIC/CTLau-b5.html >= v2 leim/MISC-DIC/CTLau-b5.html >= v2
@ -568,7 +568,7 @@ left alone:
leim/ja-dic/ja-dic.el >= v2 leim/ja-dic/ja-dic.el >= v2
5. At time of writing, some non-Emacs icons included from Gnome remain 5. At time of writing, some non-Emacs icons included from Gnome remain
under GPLv2 (no "or later"). See: under GPLv2 (no "or later"). See:
etc/images/gnus/README etc/images/gnus/README
etc/images/mail/README etc/images/mail/README

View file

@ -54,9 +54,9 @@ combine them into a single entry, e.g.:
https://lists.gnu.org/r/emacs-devel/2008-10/msg00414.html https://lists.gnu.org/r/emacs-devel/2008-10/msg00414.html
In Emacs tradition, we treat "point" as a proper name when it refers In Emacs tradition, we treat "point" as a proper name when it refers
to the current editing location. It should not have an article. to the current editing location. It should not have an article.
Thus, it is incorrect to write, "The point does not move". It should Thus, it is incorrect to write, "The point does not move". It should
be, "Point does not move". be, "Point does not move".
If you see "the point" anywhere in Emacs documentation or comments, If you see "the point" anywhere in Emacs documentation or comments,

View file

@ -117,7 +117,7 @@ with
(Make sure both emacs and emacsclient are multi-tty versions.) (Make sure both emacs and emacsclient are multi-tty versions.)
You'll hopefully have two fully working, independent frames on You'll hopefully have two fully working, independent frames on
separate terminals. The new frame is closed automatically when you separate terminals. The new frame is closed automatically when you
finish editing the specified files (C-x #), but delete-frame (C-x 5 0) finish editing the specified files (C-x #), but delete-frame (C-x 5 0)
also works. Of course, you can create frames on more than two tty also works. Of course, you can create frames on more than two tty
devices. devices.
@ -325,7 +325,7 @@ THINGS TO DO
example, custom's buttons are broken on non-initial device types. example, custom's buttons are broken on non-initial device types.
** Possibly turn off the double C-g feature when there is an X frame. ** Possibly turn off the double C-g feature when there is an X frame.
C.f. (emacs)Emergency Escape. Cf. (emacs)Emergency Escape.
** frames-on-display-list should also accept frames. ** frames-on-display-list should also accept frames.
@ -773,7 +773,7 @@ DIARY OF CHANGES
with it. with it.
(Done, there was a stupid mistake in (Done, there was a stupid mistake in
Ftty_supports_face_attributes_p. Colors are broken, though.) Ftty_supports_face_attributes_p. Colors are broken, though.)
-- C-x 5 2, C-x 5 o, C-x 5 0 on an emacsclient frame unexpectedly -- C-x 5 2, C-x 5 o, C-x 5 0 on an emacsclient frame unexpectedly
exits emacsclient. This is a result of trying to be clever with exits emacsclient. This is a result of trying to be clever with
@ -1080,7 +1080,7 @@ DIARY OF CHANGES
fine. Sometimes faces on these screens become garbled. fine. Sometimes faces on these screens become garbled.
This only seems to affect displays that are of the same terminfo This only seems to affect displays that are of the same terminfo
type as the selected one. Interestingly, in screen Emacs normally type as the selected one. Interestingly, in screen Emacs normally
reports the up arrow key as 'M-o A', but after the above SNAFU, it reports the up arrow key as 'M-o A', but after the above SNAFU, it
complains about 'M-[ a'. UNIX ttys are a complete mystery to me, complains about 'M-[ a'. UNIX ttys are a complete mystery to me,
but it seems the reset-reinitialize cycle somehow leaves the but it seems the reset-reinitialize cycle somehow leaves the
@ -1232,7 +1232,7 @@ DIARY OF CHANGES
-- Understand Emacs's low-level input system (it's black magic) :-) -- Understand Emacs's low-level input system (it's black magic) :-)
What exactly does interrupt_input do? I tried to disable it for What exactly does interrupt_input do? I tried to disable it for
raw secondary tty support, but it does not seem to do anything raw secondary tty support, but it does not seem to do anything
useful. (Update: Look again. X unconditionally enables this, maybe useful. (Update: Look again. X unconditionally enables this, maybe
that's why raw terminal support is broken again. I really do need that's why raw terminal support is broken again. I really do need
to understand input.) to understand input.)
(Update: I am starting to understand the read_key_sequence->read-char (Update: I am starting to understand the read_key_sequence->read-char

View file

@ -113,8 +113,8 @@ pre-commit state.
If you have pushed commit, resetting will be ineffective because it If you have pushed commit, resetting will be ineffective because it
will only vanish the commit in your local copy. Instead, use 'git will only vanish the commit in your local copy. Instead, use 'git
revert', giving it the commit ID as argument. This will create a revert', giving it the commit ID as argument. This will create a
new commit that backs out the change. Then push that. new commit that backs out the change. Then push that.
Note that git will generate a log message for the revert that includes Note that git will generate a log message for the revert that includes
a git hash. Please edit this to refer to the commit by the first line a git hash. Please edit this to refer to the commit by the first line

View file

@ -3,14 +3,14 @@ TREE-SITTER PERFORMANCE NOTES -*- org -*-
* Facts * Facts
Incremental parsing of a few characters worth of edit usually takes Incremental parsing of a few characters worth of edit usually takes
less than 0.1ms. If it takes longer than that, something is wrong. less than 0.1ms. If it takes longer than that, something is wrong.
Theres one time where I found tree-sitter-c takes ~30ms to Theres one time where I found tree-sitter-c takes ~30ms to
incremental parse. Updating to the latest version of tree-sitter-c incremental parse. Updating to the latest version of tree-sitter-c
solves it, so I didnt investigate further. solves it, so I didnt investigate further.
The ranges set for a parser doesnt grow when you insert text into a The ranges set for a parser doesnt grow when you insert text into a
range, so you have to update the ranges every time before range, so you have to update the ranges every time before
parsing. Fortunately, changing ranges doesnt invalidate incremental parsing. Fortunately, changing ranges doesnt invalidate incremental
parsing, so there isnt any performance lost in update ranges parsing, so there isnt any performance lost in update ranges
frequently. frequently.

View file

@ -35,8 +35,8 @@ merged) and rebuild Emacs.
* Install language definitions * Install language definitions
Tree-sitter by itself doesnt know how to parse any particular Tree-sitter by itself doesnt know how to parse any particular
language. We need to install language definitions (or “grammars”) for language. We need to install language definitions (or “grammars”) for
a language to be able to parse it. There are a couple of ways to get a language to be able to parse it. There are a couple of ways to get
them. them.
You can use this script that I put together here: You can use this script that I put together here:
@ -45,7 +45,7 @@ You can use this script that I put together here:
This script automatically pulls and builds language definitions for C, This script automatically pulls and builds language definitions for C,
C++, Rust, JSON, Go, HTML, JavaScript, CSS, Python, Typescript, C++, Rust, JSON, Go, HTML, JavaScript, CSS, Python, Typescript,
C#, etc. Better yet, I pre-built these language definitions for C#, etc. Better yet, I pre-built these language definitions for
GNU/Linux and macOS, they can be downloaded here: GNU/Linux and macOS, they can be downloaded here:
https://github.com/casouri/tree-sitter-module/releases/tag/v2.1 https://github.com/casouri/tree-sitter-module/releases/tag/v2.1
@ -56,19 +56,19 @@ To build them yourself, run
cd tree-sitter-module cd tree-sitter-module
./batch.sh ./batch.sh
and language definitions will be in the /dist directory. You can and language definitions will be in the /dist directory. You can
either copy them to standard dynamic library locations of your system, either copy them to standard dynamic library locations of your system,
eg, /usr/local/lib, or leave them in /dist and later tell Emacs where e.g., /usr/local/lib, or leave them in /dist and later tell Emacs where
to find language definitions by setting treesit-extra-load-path. to find language definitions by setting treesit-extra-load-path.
Language definition sources can be found on GitHub under Language definition sources can be found on GitHub under
tree-sitter/xxx, like tree-sitter/tree-sitter-python. The tree-sitter tree-sitter/xxx, like tree-sitter/tree-sitter-python. The tree-sitter
organization has all the "official" language definitions: organization has all the "official" language definitions:
https://github.com/tree-sitter https://github.com/tree-sitter
Alternatively, you can use treesit-install-language-grammar command Alternatively, you can use treesit-install-language-grammar command
and follow its instructions. If everything goes right, it should and follow its instructions. If everything goes right, it should
automatically download and compile the language grammar for you. automatically download and compile the language grammar for you.
* Setting up for adding major mode features * Setting up for adding major mode features
@ -91,7 +91,7 @@ Tree-sitter modes should be separate major modes, so other modes
inheriting from the original mode don't break if tree-sitter is inheriting from the original mode don't break if tree-sitter is
enabled. For example js2-mode inherits js-mode, we can't enable enabled. For example js2-mode inherits js-mode, we can't enable
tree-sitter in js-mode, lest js-mode would not setup things that tree-sitter in js-mode, lest js-mode would not setup things that
js2-mode expects to inherit from. So it's best to use separate major js2-mode expects to inherit from. So it's best to use separate major
modes. modes.
If the tree-sitter variant and the "native" variant could share some If the tree-sitter variant and the "native" variant could share some
@ -115,12 +115,12 @@ symbol (variable, function).
Tree-sitter works like this: You provide a query made of patterns and Tree-sitter works like this: You provide a query made of patterns and
capture names, tree-sitter finds the nodes that match these patterns, capture names, tree-sitter finds the nodes that match these patterns,
tag the corresponding capture names onto the nodes and return them to tag the corresponding capture names onto the nodes and return them to
you. The query function returns a list of (capture-name . node). For you. The query function returns a list of (capture-name . node). For
font-lock, we use face names as capture names. And the captured node font-lock, we use face names as capture names. And the captured node
will be fontified in their capture name. will be fontified in their capture name.
The capture name could also be a function, in which case (NODE The capture name could also be a function, in which case (NODE
OVERRIDE START END) is passed to the function for fontification. START OVERRIDE START END) is passed to the function for fontification. START
and END are the start and end of the region to be fontified. The and END are the start and end of the region to be fontified. The
function should only fontify within that region. The function should function should only fontify within that region. The function should
also allow more optional arguments with (&rest _), for future also allow more optional arguments with (&rest _), for future
@ -131,11 +131,11 @@ treesit-font-lock-rules.
There are two types of nodes, named, like (identifier), There are two types of nodes, named, like (identifier),
(function_definition), and anonymous, like "return", "def", "(", (function_definition), and anonymous, like "return", "def", "(",
"}". Parent-child relationship is expressed as "}". Parent-child relationship is expressed as
(parent (child) (child) (child (grand_child))) (parent (child) (child) (child (grand_child)))
Eg, an argument list (1, "3", 1) could be: For example, an argument list (1, "3", 1) could be:
(argument_list "(" (number) (string) (number) ")") (argument_list "(" (number) (string) (number) ")")
@ -167,7 +167,7 @@ But how do one come up with the queries? Take python for an example,
open any python source file, type M-x treesit-explore-mode RET. Now open any python source file, type M-x treesit-explore-mode RET. Now
you should see the parse-tree in a separate window, automatically you should see the parse-tree in a separate window, automatically
updated as you select text or edit the buffer. Besides this, you can updated as you select text or edit the buffer. Besides this, you can
consult the grammar of the language definition. For example, Pythons consult the grammar of the language definition. For example, Pythons
grammar file is at grammar file is at
https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js
@ -182,24 +182,24 @@ The manual explains how to read grammar files in the bottom of section
** Debugging queries ** Debugging queries
If your query has problems, use treesit-query-validate to debug the If your query has problems, use treesit-query-validate to debug the
query. It will pop a buffer containing the query (in text format) and query. It will pop a buffer containing the query (in text format) and
mark the offending part in red. mark the offending part in red.
** Code ** Code
To enable tree-sitter font-lock, set treesit-font-lock-settings and To enable tree-sitter font-lock, set treesit-font-lock-settings and
treesit-font-lock-feature-list buffer-locally and call treesit-font-lock-feature-list buffer-locally and call
treesit-major-mode-setup. For example, see treesit-major-mode-setup. For example, see
python--treesit-settings in python.el. Below is a snippet of it. python--treesit-settings in python.el. Below is a snippet of it.
Just like the current font-lock, if the to-be-fontified region already Just like the current font-lock, if the to-be-fontified region already
has a face (ie, an earlier match fontified part/all of the region), has a face (ie, an earlier match fontified part/all of the region),
the new face is discarded rather than applied. If you want later the new face is discarded rather than applied. If you want later
matches always override earlier matches, use the :override keyword. matches always override earlier matches, use the :override keyword.
Each rule should have a :feature, like function-name, Each rule should have a :feature, like function-name,
string-interpolation, builtin, etc. Users can then enable/disable each string-interpolation, builtin, etc. Users can then enable/disable each
feature individually. See Appendix 1 at the bottom for a set of common feature individually. See Appendix 1 at the bottom for a set of common
features names. features names.
#+begin_src elisp #+begin_src elisp
@ -267,17 +267,17 @@ Indent works like this: We have a bunch of rules that look like
(MATCHER ANCHOR OFFSET) (MATCHER ANCHOR OFFSET)
When the indentation process starts, point is at the BOL of a line, we When the indentation process starts, point is at the BOL of a line, we
want to know which column to indent this line to. Let NODE be the node want to know which column to indent this line to. Let NODE be the node
at point, we pass this node to the MATCHER of each rule, one of them at point, we pass this node to the MATCHER of each rule, one of them
will match the node (eg, "this node is a closing bracket!"). Then we will match the node (e.g., "this node is a closing bracket!"). Then we
pass the node to the ANCHOR, which returns a point, eg, the BOL of the pass the node to the ANCHOR, which returns a point, e.g., the BOL of the
previous line. We find the column number of that point (eg, 4), add previous line. We find the column number of that point (e.g., 4), add
OFFSET to it (eg, 0), and that is the column we want to indent the OFFSET to it (e.g., 0), and that is the column we want to indent the
current line to (4 + 0 = 4). current line to (4 + 0 = 4).
Matchers and anchors are functions that takes (NODE PARENT BOL &rest Matchers and anchors are functions that takes (NODE PARENT BOL &rest
_). Matches return nil/non-nil for no match/match, and anchors return _). Matches return nil/non-nil for no match/match, and anchors return
the anchor point. Below are some convenient builtin matchers and anchors. the anchor point. Below are some convenient builtin matchers and anchors.
For MATCHER we have For MATCHER we have
@ -289,8 +289,8 @@ For MATCHER we have
(match NODE-TYPE PARENT-TYPE NODE-FIELD (match NODE-TYPE PARENT-TYPE NODE-FIELD
NODE-INDEX-MIN NODE-INDEX-MAX) NODE-INDEX-MIN NODE-INDEX-MAX)
=> checks everything. If an argument is nil, dont match that. Eg, => checks everything. If an argument is nil, dont match that.
(match nil TYPE) is the same as (parent-is TYPE) E.g., (match nil TYPE) is the same as (parent-is TYPE)
For ANCHOR we have For ANCHOR we have
@ -305,8 +305,8 @@ For ANCHOR we have
There is also a manual section for indent: "Parser-based Indentation". There is also a manual section for indent: "Parser-based Indentation".
When writing indent rules, you can use treesit-check-indent to When writing indent rules, you can use treesit-check-indent to
check if your indentation is correct. To debug what went wrong, set check if your indentation is correct. To debug what went wrong, set
treesit--indent-verbose to non-nil. Then when you indent, Emacs treesit--indent-verbose to non-nil. Then when you indent, Emacs
tells you which rule is applied in the echo area. tells you which rule is applied in the echo area.
#+begin_src elisp #+begin_src elisp
@ -355,7 +355,7 @@ Set treesit-simple-imenu-settings and call
* Navigation * Navigation
Set treesit-defun-type-regexp and call Set treesit-defun-type-regexp and call
treesit-major-mode-setup. You can additionally set treesit-major-mode-setup. You can additionally set
treesit-defun-name-function. treesit-defun-name-function.
* Which-func * Which-func
@ -370,7 +370,7 @@ find the current function by treesit-defun-at-point.
Obviously this list is just a starting point, if there are features in Obviously this list is just a starting point, if there are features in
the major mode that would benefit from a parse tree, adding tree-sitter the major mode that would benefit from a parse tree, adding tree-sitter
support for that would be great. But in the minimal case, just adding support for that would be great. But in the minimal case, just adding
font-lock is awesome. font-lock is awesome.
* Common tasks * Common tasks
@ -403,12 +403,12 @@ BTW treesit-node-string does different things.
* Manual * Manual
I suggest you read the manual section for tree-sitter in Info. The I suggest you read the manual section for tree-sitter in Info. The
section is Parsing Program Source. Typing section is Parsing Program Source. Typing
C-h i d m elisp RET g Parsing Program Source RET C-h i d m elisp RET g Parsing Program Source RET
will bring you to that section. You dont need to read through every will bring you to that section. You dont need to read through every
sentence, just read the text paragraphs and glance over function sentence, just read the text paragraphs and glance over function
names. names.
@ -439,13 +439,13 @@ error highlight parse error
Abstract features: Abstract features:
assignment: the LHS of an assignment (thing being assigned to), eg: assignment: the LHS of an assignment (thing being assigned to), e.g.:
a = b <--- highlight a a = b <--- highlight a
a.b = c <--- highlight b a.b = c <--- highlight b
a[1] = d <--- highlight a a[1] = d <--- highlight a
definition: the thing being defined, eg: definition: the thing being defined, e.g.:
int a(int b) { <--- highlight a int a(int b) { <--- highlight a
return 0 return 0

View file

@ -47,7 +47,7 @@ EXCEPTIONS
There are a couple of functions that replaces characters in-place There are a couple of functions that replaces characters in-place
rather than insert/delete. They are in casefiddle.c and editfns.c. rather than insert/delete. They are in casefiddle.c and editfns.c.
In casefiddle.c, do_casify_unibyte_region and In casefiddle.c, do_casify_unibyte_region and
do_casify_multibyte_region modifies buffer, but they are static do_casify_multibyte_region modifies buffer, but they are static
@ -177,7 +177,7 @@ all safe.
json.c:790: signal_after_change (PT, 0, inserted); json.c:790: signal_after_change (PT, 0, inserted);
Called in json-insert, calls either decode_coding_gap or Called in json-insert, calls either decode_coding_gap or
insert_from_gap_1, both are safe. Calls memmove but its for insert_from_gap_1, both are safe. Calls memmove but its for
decode_coding_gap. decode_coding_gap.
keymap.c:2873: /* Insert calls signal_after_change which may GC. */ keymap.c:2873: /* Insert calls signal_after_change which may GC. */

View file

@ -6,8 +6,8 @@ The scripts are used to build the binary distribution zip files for windows.
Environment Environment
----------- -----------
A full installation of msys2 is required along for the build. The A full installation of msys2 is required along for the build. The
various dependencies of Emacs need to be installed also. These change various dependencies of Emacs need to be installed also. These change
over time, but are listed in build-deps-zips.py. over time, but are listed in build-deps-zips.py.
@ -16,7 +16,7 @@ File System Organization
------------------------ ------------------------
They are relatively strict about the file system organization. In They are relatively strict about the file system organization. In
general, they should work across several more than just the version of general, they should work across several more than just the version of
Emacs they come with, as the dependencies of Emacs change relatively slowly. Emacs they come with, as the dependencies of Emacs change relatively slowly.
@ -34,35 +34,36 @@ A checkout out of the master branch of the Emacs git repository.
~/emacs-build/git/emacs-$major-version ~/emacs-build/git/emacs-$major-version
A worktree of the git repository containing the current release A worktree of the git repository containing the current release
branch. This has to be created by hand. branch. This has to be created by hand.
~/emacs-build/git/emacs-$release-version ~/emacs-build/git/emacs-$release-version
A branch of the git repository containing the last release. The A branch of the git repository containing the last release. The
build-zips.sh file will create this for you. build-zips.sh file will create this for you.
~/emacs-build/deps ~/emacs-build/deps
A location for the dependencies. This needs to contain two zip files A location for the dependencies. This needs to contain two zip files
with the dependencies. build-dep-zips.py will create these files for you. with the dependencies. build-dep-zips.py will create these files for
you.
~/emacs-build/deps/libXpm ~/emacs-build/deps/libXpm
Contain libXpm-noX4.dll. This file is used to load images for the Contain libXpm-noX4.dll. This file is used to load images for the
splash screen, menu items and so on. Emacs runs without it, but looks splash screen, menu items and so on. Emacs runs without it, but looks
horrible. The files came original from msys2, and contains no horrible. The files came original from msys2, and contains no
dependencies. It has to be placed manually (but probably never dependencies. It has to be placed manually (but probably never
need updating). need updating).
~/emacs-build/build/$version ~/emacs-build/build/$version
We build Emacs out-of-source here. This directory is created by We build Emacs out-of-source here. This directory is created by
build-zips.sh. This directory can be freely deleted after zips have build-zips.sh. This directory can be freely deleted after zips have
been created been created
~/emacs-build/install/$version ~/emacs-build/install/$version
We install Emacs here. This directory is created by build-zips.sh. We install Emacs here. This directory is created by build-zips.sh.
This directory can and *should* be deleted after zips have been This directory can and *should* be deleted after zips have been
created. created.
@ -79,7 +80,7 @@ Build Process
### For each major version ### For each major version
The dependencies files need to be created. This can be around the time The dependencies files need to be created. This can be around the time
of the pre-tests, then used for all releases of that version, to of the pre-tests, then used for all releases of that version, to
ensure the maximum stability. ensure the maximum stability.
@ -87,16 +88,16 @@ To do this:
Update msys to the latest version with `pacman -Syu`. Update msys to the latest version with `pacman -Syu`.
Then run build-dep-zips.py, in the ~/emacs-build/deps directory. Two Then run build-dep-zips.py, in the ~/emacs-build/deps directory. Two
zips will be created, containing the dependencies, as well as the zips will be created, containing the dependencies, as well as the
source for these. source for these.
For emacs release or pre-test version: For emacs release or pre-test version:
Run `build-zips.sh -g` in the release branch. This will create a worktree Run `build-zips.sh -g` in the release branch. This will create a worktree
with the tag of the last version. with the tag of the last version.
Then run `build-zips.sh` in this worktree. Eventually, four new zip Then run `build-zips.sh` in this worktree. Eventually, four new zip
files will be created in ~/emacs-upload from where they can be signed files will be created in ~/emacs-upload from where they can be signed
and uploaded with `gnupload`. and uploaded with `gnupload`.
@ -104,7 +105,7 @@ and uploaded with `gnupload`.
### For snapshots from Master ### For snapshots from Master
Snapshots are generally created from master when there is a release Snapshots are generally created from master when there is a release
branch on which a release has already been created. At this point, branch on which a release has already been created. At this point,
only pre-tests or full releases need to happen from the release only pre-tests or full releases need to happen from the release
branch. branch.
@ -112,11 +113,11 @@ To do this:
Update msys to the latest version with `pacman -Syu`. Update msys to the latest version with `pacman -Syu`.
Then run build-dep-zips.py, in ~/emacs-build/deps directory. Two zips Then run build-dep-zips.py, in ~/emacs-build/deps directory. Two zips
will be created, containing the dependencies, as well as the source will be created, containing the dependencies, as well as the source
for these. These deps files contain the date of creation in their for these. These deps files contain the date of creation in their
name. The deps file can be reused as desired, or a new version name. The deps file can be reused as desired, or a new version
created. Where multiple deps files exist, the most recent will be created. Where multiple deps files exist, the most recent will be
used. used.
Now, run `build-zips.sh -s` to build a snapshot release. Now, run `build-zips.sh -s` to build a snapshot release.
@ -137,8 +138,8 @@ version (e.g emacs-27.0.50.zip).
### For snapshots from another branch ### For snapshots from another branch
Snapshots can be build from any other branch. There is rarely a need Snapshots can be built from any other branch. There is rarely a need
to do this, except where some significant, wide-ranging feature is to do this, except where some significant, wide-ranging feature is
being added on a feature branch. In this case, the branch can be being added on a feature branch. In this case, the branch can be
given using `build-zips.sh -b pdumper -s` for example. Any "/" given using `build-zips.sh -b pdumper -s` for example. Any "/"
characters in the branch title are replaced. characters in the branch title are replaced.

View file

@ -40,7 +40,7 @@ installer but as a zip file which some users may prefer.
emacs-$VERSION-no-deps.zip emacs-$VERSION-no-deps.zip
Contains Emacs without any dependencies. This may be useful if you Contains Emacs without any dependencies. This may be useful if you
wish to install where the dependencies are already available, or if wish to install where the dependencies are already available, or if
you want the small possible Emacs. you want the small possible Emacs.
@ -49,7 +49,7 @@ for most end-users.
emacs-$VERSION-deps.zip emacs-$VERSION-deps.zip
The dependencies. Unzipping this file on top of The dependencies. Unzipping this file on top of
emacs-$VERSION-no-deps.zip should result in the same install as emacs-$VERSION-no-deps.zip should result in the same install as
emacs-$VERSION.zip. emacs-$VERSION.zip.

View file

@ -42,6 +42,7 @@ emacs_run_codespell ()
git ls-files |\ git ls-files |\
grep -v -E -e '^(lib|m4)/.*' |\ grep -v -E -e '^(lib|m4)/.*' |\
grep -v -E -e '^admin/(charsets|codespell|unidata)/.*' |\ grep -v -E -e '^admin/(charsets|codespell|unidata)/.*' |\
grep -v -E -e '^doc/lispref/spellfile$' |\
grep -v -E -e '^doc/misc/texinfo.tex$' |\ grep -v -E -e '^doc/misc/texinfo.tex$' |\
grep -v -E -e '^doc/translations/.*' |\ grep -v -E -e '^doc/translations/.*' |\
grep -v -E -e '^etc/(AUTHORS|HELLO|publicsuffix.txt)$' |\ grep -v -E -e '^etc/(AUTHORS|HELLO|publicsuffix.txt)$' |\

View file

@ -247,7 +247,7 @@ generating JSON files.
@item @item
Andrea Corallo was the Emacs (co-)maintainer from 29.3 onwards. Andrea Corallo was the Emacs (co-)maintainer from 29.3 onwards.
He wrote the native compilation support in @file{comp.c} and He wrote the native compilation support in @file{comp.c} and
and @file{comp.el}, for compiling Emacs Lisp to native code using @file{comp.el}, for compiling Emacs Lisp to native code using
@samp{libgccjit}. @samp{libgccjit}.
@item @item

View file

@ -267,7 +267,7 @@ system.
@cindex temp~unlinked.NNNN files, Android @cindex temp~unlinked.NNNN files, Android
On Android devices running very old (2.6.29) versions of the Linux On Android devices running very old (2.6.29) versions of the Linux
kernel, Emacs needs to create files named starting with kernel, Emacs needs to create files named starting with
@file{temp~unlinked} in the the temporary file directory in order to @file{temp~unlinked} in the temporary file directory in order to
read from asset files. Do not create files with such names yourself, read from asset files. Do not create files with such names yourself,
or they may be overwritten or removed. or they may be overwritten or removed.

View file

@ -1351,7 +1351,7 @@ when and how to report Emacs bugs (@pxref{Bugs}).
To find the documentation of a particular command, look in the index. To find the documentation of a particular command, look in the index.
Keys (character commands) and command names have separate indexes. Keys (character commands) and command names have separate indexes.
There is also a glossary, with a cross reference for each term. There is also a glossary, with a cross-reference for each term.
This manual is available as a printed book and also as an Info file. This manual is available as a printed book and also as an Info file.
The Info file is for reading from Emacs itself, or with the Info program. The Info file is for reading from Emacs itself, or with the Info program.

View file

@ -519,7 +519,7 @@ backward. It also provides a few special commands:
@table @kbd @table @kbd
@item @key{RET} @item @key{RET}
Follow a cross reference at point (@code{help-follow}). Follow a cross-reference at point (@code{help-follow}).
@item @key{TAB} @item @key{TAB}
Move point forward to the next hyperlink (@code{forward-button}). Move point forward to the next hyperlink (@code{forward-button}).
@item S-@key{TAB} @item S-@key{TAB}

View file

@ -1944,7 +1944,7 @@ files needed by @TeX{} for cross-references; these commands are generally
not suitable for running the final copy in which all of the cross-references not suitable for running the final copy in which all of the cross-references
need to be correct. need to be correct.
When you want the auxiliary files for cross references, use @kbd{C-c When you want the auxiliary files for cross-references, use @kbd{C-c
C-f} (@code{tex-file}) which runs @TeX{} on the current buffer's file, C-f} (@code{tex-file}) which runs @TeX{} on the current buffer's file,
in that file's directory. Before running @TeX{}, it offers to save any in that file's directory. Before running @TeX{}, it offers to save any
modified buffers. Generally, you need to use (@code{tex-file}) twice to modified buffers. Generally, you need to use (@code{tex-file}) twice to

View file

@ -4678,7 +4678,7 @@ A unibyte string containing data in a certain MIME type.
@end table @end table
@end defvar @end defvar
A call to @code{gui-get-selection} generally returns the the data A call to @code{gui-get-selection} generally returns the data
named @var{data-type} within the selection message, albeit with named @var{data-type} within the selection message, albeit with
@var{data-type} replaced by an alternative name should it be one of @var{data-type} replaced by an alternative name should it be one of
the following X selection targets: the following X selection targets:

View file

@ -250,7 +250,7 @@ is the brief description.
Each element in this list should have the form @code{(@var{dep-name} Each element in this list should have the form @code{(@var{dep-name}
@var{dep-version})}, where @var{dep-name} is a symbol whose name is the @var{dep-version})}, where @var{dep-name} is a symbol whose name is the
dependency's package name, and @var{dep-version} is the dependency's dependency's package name, and @var{dep-version} is the dependency's
version (a string). The spacial value @samp{emacs} means that the version (a string). The special value @samp{emacs} means that the
package depends on the given version of Emacs. package depends on the given version of Emacs.
@end defun @end defun

View file

@ -6009,7 +6009,7 @@ This API has mandatory and optional parts.
To allow its users to initiate JSONRPC contacts (notifications or To allow its users to initiate JSONRPC contacts (notifications or
requests) or reply to endpoint requests, the new transport requests) or reply to endpoint requests, the new transport
implementation must equip the @code{jsonrpc-connection-send} generic implementation must equip the @code{jsonrpc-connection-send} generic
function with a specialization for the the new subclass function with a specialization for the new subclass
(@pxref{Generic Functions}). This generic function is called (@pxref{Generic Functions}). This generic function is called
automatically by primitives such as @code{jsonrpc-request} and automatically by primitives such as @code{jsonrpc-request} and
@code{jsonrpc-notify}. The specialization should ensure that the @code{jsonrpc-notify}. The specialization should ensure that the

View file

@ -343,9 +343,8 @@
2014-06-22 Mario Lang <mlang@delysid.org> 2014-06-22 Mario Lang <mlang@delysid.org>
* srecode.texi (Base Arguments): The the -> to the. * srecode.texi (Base Arguments):
* org.texi (Images in ODT export): Fix typos.
* org.texi (Images in ODT export): The the -> the.
2014-06-21 Eli Zaretskii <eliz@gnu.org> 2014-06-21 Eli Zaretskii <eliz@gnu.org>

View file

@ -2815,12 +2815,12 @@ An implementation of @command{expr} using the Calc package.
@cmindex ff @cmindex ff
@item ff @var{directory} @var{pattern} @item ff @var{directory} @var{pattern}
Shorthand for the the function @code{find-name-dired} (@pxref{Dired Shorthand for the function @code{find-name-dired} (@pxref{Dired
and Find, , , emacs, The Emacs Editor}). and Find, , , emacs, The Emacs Editor}).
@cmindex gf @cmindex gf
@item gf @var{directory} @var{regexp} @item gf @var{directory} @var{regexp}
Shorthand for the the function @code{find-grep-dired} (@pxref{Dired Shorthand for the function @code{find-grep-dired} (@pxref{Dired
and Find, , , emacs, The Emacs Editor}). and Find, , , emacs, The Emacs Editor}).
@cmindex intersection @cmindex intersection

View file

@ -11513,7 +11513,7 @@ even with @sc{xover} by registering the @code{Xref} lines of all
articles you actually read, but if you kill the articles, or just mark articles you actually read, but if you kill the articles, or just mark
them as read without reading them, Gnus will not get a chance to snoop them as read without reading them, Gnus will not get a chance to snoop
the @code{Xref} lines out of these articles, and will be unable to use the @code{Xref} lines out of these articles, and will be unable to use
the cross reference mechanism. the cross-reference mechanism.
@cindex LIST overview.fmt @cindex LIST overview.fmt
@cindex overview.fmt @cindex overview.fmt

View file

@ -751,7 +751,7 @@ should do this.
(hfy-face-to-css @var{fn}) (hfy-face-to-css @var{fn})
@end lisp @end lisp
Take @var{fn}, a font or @code{defface} specification (c.f. Take @var{fn}, a font or @code{defface} specification (cf.
@code{face-attr-construct}) and return a CSS style specification. @code{face-attr-construct}) and return a CSS style specification.
See also: @ref{hfy-face-to-style} See also: @ref{hfy-face-to-style}

View file

@ -3638,7 +3638,7 @@ Add this to the `modus-themes-post-load-hook'."
The above will work only for themes that belong to the Modus family. The above will work only for themes that belong to the Modus family.
For users of Emacs version 29 or higher, there exists a theme-agnostic For users of Emacs version 29 or higher, there exists a theme-agnostic
hook that takes a function with one argument---that of the theme---and hook that takes a function with one argument---that of the theme---and
calls in the the "post enable" phase of theme loading. Here is the calls in the "post enable" phase of theme loading. Here is the
above snippet, with the necessary tweaks: above snippet, with the necessary tweaks:
#+begin_src emacs-lisp #+begin_src emacs-lisp

View file

@ -11766,7 +11766,7 @@ example
: ./img/cat.jpg : ./img/cat.jpg
If you wish to define a caption for the image (see [[*Captions]]) and If you wish to define a caption for the image (see [[*Captions]]) and
maybe a label for internal cross references (see [[*Internal Links]]), maybe a label for internal cross-references (see [[*Internal Links]]),
make sure that the link is on a line by itself and precede it with make sure that the link is on a line by itself and precede it with
=CAPTION= and =NAME= keywords as follows: =CAPTION= and =NAME= keywords as follows:

View file

@ -4823,7 +4823,7 @@ Macros which can be used for the display of cross references.
This is used when @code{reftex-view-crossref} is called with point in an This is used when @code{reftex-view-crossref} is called with point in an
argument of a macro. Note that crossref viewing for citations, argument of a macro. Note that crossref viewing for citations,
references (both ways) and index entries is hard-coded. This variable references (both ways) and index entries is hard-coded. This variable
is only to configure additional structures for which crossreference is only to configure additional structures for which cross-reference
viewing can be useful. Each entry has the structure viewing can be useful. Each entry has the structure
@example @example
(@var{macro-re} @var{search-re} @var{highlight}). (@var{macro-re} @var{search-re} @var{highlight}).

View file

@ -372,7 +372,7 @@ Infrastructure for searching groups @semantic{} databases, and dealing
with the search results format. with the search results format.
@item semantic/db-ref.el @item semantic/db-ref.el
Tracks crossreferences. Cross references are needed when buffer is Tracks cross-references. Cross-references are needed when buffer is
reparsed, and must alert other tables that any dependent caches may reparsed, and must alert other tables that any dependent caches may
need to be flushed. References are in the form of include files. need to be flushed. References are in the form of include files.

View file

@ -1579,7 +1579,7 @@
2011-05-10 Jim Meyering <meyering@redhat.com> 2011-05-10 Jim Meyering <meyering@redhat.com>
* MH-E-NEWS, PROBLEMS: Fix typo "the the -> the". * MH-E-NEWS, PROBLEMS: Fix typo.
2011-05-03 Leo Liu <sdl.web@gmail.com> 2011-05-03 Leo Liu <sdl.web@gmail.com>

View file

@ -436,7 +436,7 @@ the signature) the automatically inferred function type as well.
*** 'describe-function' now shows the type of the function object. *** 'describe-function' now shows the type of the function object.
The text used to say things like "car is a built-in function" whereas it The text used to say things like "car is a built-in function" whereas it
now says "car is a primitive-function" where "primitive-function" is the now says "car is a primitive-function" where "primitive-function" is the
the name of the symbol returned by 'cl-type-of'. You can click on those name of the symbol returned by 'cl-type-of'. You can click on those
words to get information about that type. words to get information about that type.
--- ---

View file

@ -1355,7 +1355,7 @@ This is because -batch (see above) is now used in building Emacs.
There are probably some Mocklisp constructs that are not handled. There are probably some Mocklisp constructs that are not handled.
If you encounter one, feel free to report the failure as a bug. If you encounter one, feel free to report the failure as a bug.
The construct will be handled in a future Emacs release, if that is not The construct will be handled in a future Emacs release, if that is not
not too hard to do. too hard to do.
Note that lisp code converted from Mocklisp code will not necessarily Note that lisp code converted from Mocklisp code will not necessarily
run as fast as code specifically written for GNU Emacs, nor will it use run as fast as code specifically written for GNU Emacs, nor will it use

View file

@ -2112,7 +2112,7 @@ deletion) now accept a prefix argument which serves as a repeat count.
*** Reference keys can now be entered with TAB completion. All *** Reference keys can now be entered with TAB completion. All
reference keys defined in that buffer and all labels that appear in reference keys defined in that buffer and all labels that appear in
crossreference entries are object to completion. cross-reference entries are object to completion.
*** Braces are supported as field delimiters in addition to quotes. *** Braces are supported as field delimiters in addition to quotes.
BibTeX entries may have brace-delimited and quote-delimited fields BibTeX entries may have brace-delimited and quote-delimited fields

View file

@ -623,7 +623,7 @@ This new hook runs when a note has been stored.
Sorting of agenda items, tables, menus, headlines, etc can now be Sorting of agenda items, tables, menus, headlines, etc can now be
controlled using a new custom option ~org-sort-function~. controlled using a new custom option ~org-sort-function~.
By default, Org mode sorts things according to the operation system By default, Org mode sorts things according to the operating system
language. However, language sorting rules may or may not produce good language. However, language sorting rules may or may not produce good
results depending on the use case. For example, multi-language results depending on the use case. For example, multi-language
documents may be sorted weirdly when sorting rules for system language documents may be sorted weirdly when sorting rules for system language

View file

@ -757,7 +757,7 @@ window sizes" (Lisp value 'ignore').
This can happen if your Emacs is configured to convert PDF to SVG for This can happen if your Emacs is configured to convert PDF to SVG for
display, and the version of the MuPDF package you have installed has a display, and the version of the MuPDF package you have installed has a
a known bug, whereby it sometimes produces invalid SVG images. known bug, whereby it sometimes produces invalid SVG images.
Version 1.21 of MuPDF is known to be affected. Version 1.21 of MuPDF is known to be affected.
The solution is either to upgrade or downgrade to a version of MuPDF The solution is either to upgrade or downgrade to a version of MuPDF

View file

@ -72,10 +72,10 @@ Convert those to use it.
** Remove unnecessary autoload cookies from defcustoms ** Remove unnecessary autoload cookies from defcustoms
This needs a bit of care, since often people have become used to This needs a bit of care, since often people have become used to
expecting such variables to always be defined, eg when they modify expecting such variables to always be defined, for example when they
things in their .emacs. modify things in their .emacs.
** See if other files can use generated-autoload-file (see eg ps-print) ** See if other files can use generated-autoload-file (see e.g. ps-print)
** Do interactive mode tagging for commands ** Do interactive mode tagging for commands
Change "(interactive)" to "(interactive nil foo-mode)" for command Change "(interactive)" to "(interactive nil foo-mode)" for command
@ -482,7 +482,7 @@ LSP), see the thread starting at
https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00609.html https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00609.html
** FFI (foreign function interface) ** FFI (foreign function interface)
See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html See e.g. https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html
One way of doing this is to start with fx's dynamic loading, and use it One way of doing this is to start with fx's dynamic loading, and use it
to implement things like auto-loaded buffer parsers and database to implement things like auto-loaded buffer parsers and database
@ -612,7 +612,7 @@ Ideally from someone familiar with GNUstep and Objective C.
** A more modern printing interface ** A more modern printing interface
A UI that pops up a dialog that lets you choose printer, page style, A UI that pops up a dialog that lets you choose printer, page style,
etc. Integration with the Gtk print dialog is apparently difficult. etc. Integration with the Gtk print dialog is apparently difficult.
See eg: https://lists.gnu.org/r/emacs-devel/2009-03/msg00501.html See e.g.: https://lists.gnu.org/r/emacs-devel/2009-03/msg00501.html
https://lists.gnu.org/r/emacs-devel/2009-04/msg00034.html https://lists.gnu.org/r/emacs-devel/2009-04/msg00034.html
** Allow frames(terminals) created by emacsclient to inherit their environment ** Allow frames(terminals) created by emacsclient to inherit their environment
@ -752,8 +752,8 @@ them.
Zlib is required for PNG, so may be linked anyhow. Zlib is required for PNG, so may be linked anyhow.
** Improve the GC ** Improve the GC
Introduce generational or incremental GC. We may be able to use the Introduce generational or incremental GC. (We may be able to use the
Boehm collector.) See the Boehm-GC branch in CVS for work on this. Boehm collector.) See the Boehm-GC branch in Git for work on this.
** Check what hooks would help Emacspeak ** Check what hooks would help Emacspeak
See the defadvising in W3. See the defadvising in W3.
@ -1061,7 +1061,7 @@ Anders Lindgren <andlind@gmail.com> has implemented some (very basic)
tests for full screen, toolbar, and auto-hiding the menu bar. tests for full screen, toolbar, and auto-hiding the menu bar.
**** Make sure all build variants work **** Make sure all build variants work
Emacs can be build in a number of different ways. For each feature, Emacs can be built in a number of different ways. For each feature,
consider if is really is "NS" specific, or if it should be applied to consider if is really is "NS" specific, or if it should be applied to
all build versions. all build versions.

View file

@ -354,7 +354,7 @@ public class EmacsSdk7FontDriver extends EmacsFontDriver
rightwards from the origin to the left most pixel in the glyph rightwards from the origin to the left most pixel in the glyph
raster. rbearing is the distance between the origin and the raster. rbearing is the distance between the origin and the
rightmost pixel in the glyph raster. ascent is the distance rightmost pixel in the glyph raster. ascent is the distance
counting upwards between the the topmost pixel in the glyph counting upwards between the topmost pixel in the glyph
raster. descent is the distance (once again counting raster. descent is the distance (once again counting
downwards) between the origin and the bottommost pixel in the downwards) between the origin and the bottommost pixel in the
glyph raster. glyph raster.

View file

@ -15827,7 +15827,7 @@
* progmodes/cc-cmds.el (c-hungry-delete): New function to fix * progmodes/cc-cmds.el (c-hungry-delete): New function to fix
<delete> key behavior in XEmacs according to `delete-forward-p'. <delete> key behavior in XEmacs according to `delete-forward-p'.
C.f. `c-electric-delete'. Cf. `c-electric-delete'.
2005-12-08 Alan Mackenzie <acm@muc.de> 2005-12-08 Alan Mackenzie <acm@muc.de>

View file

@ -8915,7 +8915,7 @@
Return the previous char. Return the previous char.
(perl-calculate-indent): Use syntax-ppss instead of parse-start (perl-calculate-indent): Use syntax-ppss instead of parse-start
and update callers accordingly. For continuation lines, check the and update callers accordingly. For continuation lines, check the
the case of array hashes. case of array hashes.
(perl-backward-to-noncomment): Make it non-interactive. (perl-backward-to-noncomment): Make it non-interactive.
(perl-backward-to-start-of-continued-exp): Rewrite. (perl-backward-to-start-of-continued-exp): Rewrite.

View file

@ -4622,7 +4622,7 @@
(assoc-string-equalp): Renamed to assoc-ignore-case. (assoc-string-equalp): Renamed to assoc-ignore-case.
(bibtex-entry): Reference key can be entered with completion. All (bibtex-entry): Reference key can be entered with completion. All
reference keys that are defined in buffer and all labels that reference keys that are defined in buffer and all labels that
appear in crossreference entries are object to completion. appear in cross-reference entries are object to completion.
(Entry types): Changed order of entries in menu "entry types". (Entry types): Changed order of entries in menu "entry types".
(bibtex-entry-field-alist): Changed order of entries slightly to (bibtex-entry-field-alist): Changed order of entries slightly to
be more conform with standard BibTeX style layouts. be more conform with standard BibTeX style layouts.
@ -4667,7 +4667,7 @@
t) are necessary again. bibtex-clean-entry complains if they are t) are necessary again. bibtex-clean-entry complains if they are
empty but not if they are missing, so you can intentionally omit empty but not if they are missing, so you can intentionally omit
them, e. g. for a pseudo @Journal entry (needed for them, e. g. for a pseudo @Journal entry (needed for
crossreferences) made out of an @article with missing non-optional cross-references) made out of an @article with missing non-optional
fields. fields.
Menu bar entries aren't centered anymore. Menu bar entries aren't centered anymore.

View file

@ -1572,7 +1572,7 @@
newlines. newlines.
(gomoku-init-display): Once again fairly fast due to minimization of (gomoku-init-display): Once again fairly fast due to minimization of
characters in buffer and text-property operations. Cursor cannot be characters in buffer and text-property operations. Cursor cannot be
be off a square. off a square.
(gomoku-display-statistics): Simplified equivalently. (gomoku-display-statistics): Simplified equivalently.
(gomoku-winning-qtuple-beg, gomoku-winning-qtuple-end) (gomoku-winning-qtuple-beg, gomoku-winning-qtuple-end)
(gomoku-winning-qtuple-dx, gomoku-winning-qtuple-dy): Pseudo variables (gomoku-winning-qtuple-dx, gomoku-winning-qtuple-dy): Pseudo variables

View file

@ -897,7 +897,7 @@
;;; Bn = n! bn ;;; Bn = n! bn
;;; bn = - sum_k=0^n-1 bk / (n-k+1)! ;;; bn = - sum_k=0^n-1 bk / (n-k+1)!
;;; A faster method would be to use "tangent numbers", c.f., Concrete ;;; A faster method would be to use "tangent numbers", cf., Concrete
;;; Mathematics pg. 273. ;;; Mathematics pg. 273.

View file

@ -70,7 +70,7 @@ Once an insertion set is done, these fields will be activated.")
(defclass srecode-overlaid () (defclass srecode-overlaid ()
((overlay :documentation ((overlay :documentation
"Overlay representing this field. "Overlay representing this field.
The overlay will crossreference this object.") The overlay will cross-reference this object.")
) )
"An object that gets automatically bound to an overlay. "An object that gets automatically bound to an overlay.
Has virtual :start and :end initializers.") Has virtual :start and :end initializers.")

View file

@ -65,7 +65,7 @@
;;--------------------- ;;---------------------
;; ;;
;; A "word" is any string containing characters with either word or symbol ;; A "word" is any string containing characters with either word or symbol
;; syntax. [E.G. Any alphanumeric string with hyphens, underscores, etc.] ;; syntax. [E.g., any alphanumeric string with hyphens, underscores, etc.]
;; Unless you change the constants, you must type at least three characters ;; Unless you change the constants, you must type at least three characters
;; for the word to be recognized. Only words longer than 6 characters are ;; for the word to be recognized. Only words longer than 6 characters are
;; saved. ;; saved.

View file

@ -334,7 +334,7 @@ This is used by `declare'.")
(f (apply (car f) name arglist (cdr x))) (f (apply (car f) name arglist (cdr x)))
;; Yuck!! ;; Yuck!!
((and (featurep 'cl) ((and (featurep 'cl)
(memq (car x) ;C.f. cl--do-proclaim. (memq (car x) ;Cf. cl--do-proclaim.
'(special inline notinline optimize warn))) '(special inline notinline optimize warn)))
(push (list 'declare x) cl-decls) (push (list 'declare x) cl-decls)
nil) nil)

View file

@ -133,7 +133,7 @@
;; Emacs's normal rectangle support is based on interpreting the region ;; Emacs's normal rectangle support is based on interpreting the region
;; between the mark and point as a "virtual rectangle", and using a ;; between the mark and point as a "virtual rectangle", and using a
;; completely separate set of "rectangle commands" [C-x r ...] on the ;; completely separate set of "rectangle commands" [C-x r ...] on the
;; region to copy, kill, fill a.s.o. the virtual rectangle. ;; region to copy, kill, fill, and so on the virtual rectangle.
;; ;;
;; cua-mode's superior rectangle support uses a true visual ;; cua-mode's superior rectangle support uses a true visual
;; representation of the selected rectangle, i.e. it highlights the ;; representation of the selected rectangle, i.e. it highlights the

View file

@ -44,7 +44,7 @@
;; ;;
;; When zooming in on a heading you might only want to see the child ;; When zooming in on a heading you might only want to see the child
;; subheadings. You do this by specifying a numeric argument: C-u C-c C-z. ;; subheadings. You do this by specifying a numeric argument: C-u C-c C-z.
;; You can specify the number of levels of children too (c.f. show-children): ;; You can specify the number of levels of children too (cf. `show-children'):
;; e.g. M-2 C-c C-z exposes two levels of child subheadings. Alternatively, ;; e.g. M-2 C-c C-z exposes two levels of child subheadings. Alternatively,
;; you might only be interested in the body. You do this by specifying a ;; you might only be interested in the body. You do this by specifying a
;; negative argument: M-- C-c C-z. You can also cause the whole subtree to be ;; negative argument: M-- C-c C-z. You can also cause the whole subtree to be
@ -239,7 +239,7 @@ An end marker of nil means the fold ends after (point-max).")
Normally the body and the immediate subheadings are exposed, but Normally the body and the immediate subheadings are exposed, but
optional arg EXPOSURE \(interactively with prefix arg) changes this:- optional arg EXPOSURE \(interactively with prefix arg) changes this:-
EXPOSURE > 0 exposes n levels of subheadings (c.f. `show-children') EXPOSURE > 0 exposes n levels of subheadings (cf. `show-children')
EXPOSURE < 0 exposes only the body EXPOSURE < 0 exposes only the body
EXPOSURE = 0 exposes the entire subtree" EXPOSURE = 0 exposes the entire subtree"
(interactive "P") (interactive "P")

View file

@ -709,7 +709,7 @@
;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua> ;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
(define-charset-alias 'cp866u 'cp1125) (define-charset-alias 'cp866u 'cp1125)
;; Fixme: C.f. iconv, https://czyborra.com/charsets/codepages.html ;; FIXME: Cf. iconv, https://czyborra.com/charsets/codepages.html
;; shows this as not ASCII compatible, with various graphics in ;; shows this as not ASCII compatible, with various graphics in
;; 0x01-0x1F. ;; 0x01-0x1F.
(define-charset 'cp437 (define-charset 'cp437

View file

@ -36,8 +36,8 @@
;; <URL:https://czyborra.com/charsets/cyrillic.html>. ;; <URL:https://czyborra.com/charsets/cyrillic.html>.
;; Note that 8859-5 maps directly onto the Unicode Cyrillic block, ;; Note that 8859-5 maps directly onto the Unicode Cyrillic block,
;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen, ;; apart from codepoints 160 (NBSP, cf. U+0400), 173 (soft hyphen,
;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and ;; cf. U+04OD) and 253 (section sign, cf. U+045D). The KOI-8 and
;; Alternativnyj coding systems encode both 8859-5 and Unicode. ;; Alternativnyj coding systems encode both 8859-5 and Unicode.
;;; Code: ;;; Code:

View file

@ -654,9 +654,8 @@
2014-06-22 Mario Lang <mlang@delysid.org> 2014-06-22 Mario Lang <mlang@delysid.org>
* org-list.el (org-list-insert-item): The the -> the. * org-list.el (org-list-insert-item):
* org-bibtex.el (org-bibtex-fields): Fix typos.
* org-bibtex.el (org-bibtex-fields): The the -> the.
2013-06-22 Dmitry Antipov <dmantipov@yandex.ru> 2013-06-22 Dmitry Antipov <dmantipov@yandex.ru>

View file

@ -2230,7 +2230,7 @@ This is an internal flag indicating either temporary or extended
agenda restriction. Specifically, it is set to t if the agenda agenda restriction. Specifically, it is set to t if the agenda
is restricted to an entire file, and is set to the corresponding is restricted to an entire file, and is set to the corresponding
buffer if the agenda is restricted to a part of a file, e.g. a buffer if the agenda is restricted to a part of a file, e.g. a
region or a substree. In the latter case, region or a subtree. In the latter case,
`org-agenda-restrict-begin' and `org-agenda-restrict-end' are set `org-agenda-restrict-begin' and `org-agenda-restrict-end' are set
to the beginning and the end of the part. to the beginning and the end of the part.

View file

@ -7981,7 +7981,7 @@ the cache."
(unless (memq granularity '( headline headline+inlinetask (unless (memq granularity '( headline headline+inlinetask
greater-element element)) greater-element element))
(error "Unsupported granularity: %S" granularity)) (error "Unsupported granularity: %S" granularity))
;; Make TO-POS marker. Otherwise, buffer edits may garble the the ;; Make TO-POS marker. Otherwise, buffer edits may garble the
;; process. ;; process.
(unless (markerp to-pos) (unless (markerp to-pos)
(let ((mk (make-marker))) (let ((mk (make-marker)))

View file

@ -172,7 +172,7 @@
;; The isearch behavior is controlled on per-folding-spec basis by ;; The isearch behavior is controlled on per-folding-spec basis by
;; setting `isearch-open' and `isearch-ignore' folding spec ;; setting `isearch-open' and `isearch-ignore' folding spec
;; properties. The the docstring of `org-fold-core--specs' for more details. ;; properties. See the docstring of `org-fold-core--specs' for more details.
;;; Handling edits inside folded text ;;; Handling edits inside folded text

View file

@ -3796,7 +3796,7 @@ You need to reload Org or to restart Emacs after setting this.")
"Alist of characters and faces to emphasize text. "Alist of characters and faces to emphasize text.
Text starting and ending with a special character will be emphasized, Text starting and ending with a special character will be emphasized,
for example *bold*, _underlined_ and /italic/. This variable sets the for example *bold*, _underlined_ and /italic/. This variable sets the
the face to be used by font-lock for highlighting in Org buffers. face to be used by font-lock for highlighting in Org buffers.
Marker characters must be one of */_=~+. Marker characters must be one of */_=~+.
You need to reload Org or to restart Emacs after customizing this." You need to reload Org or to restart Emacs after customizing this."

View file

@ -7114,7 +7114,7 @@ comment at the start of cc-engine.el for more info."
"\\(?:\\\\\\(?:.\\|\n\\)\\|[^\"\n\\]\\)*[\"\n]" nil 'stay))) "\\(?:\\\\\\(?:.\\|\n\\)\\|[^\"\n\\]\\)*[\"\n]" nil 'stay)))
((memq lit-type '(c c++)) ((memq lit-type '(c c++))
;; To work around a bug in parse-partial-sexp, where effect is given ;; To work around a bug in parse-partial-sexp, where effect is given
;; to the syntax of a backslash, even the the scan starts with point ;; to the syntax of a backslash, even the scan starts with point
;; just after it. ;; just after it.
(if (and (eq (char-before pt-search) ?\\) (if (and (eq (char-before pt-search) ?\\)
(eq (char-after pt-search) ?\n)) (eq (char-after pt-search) ?\n))

View file

@ -545,7 +545,7 @@ that variable's value is a string."
'("(\\(element\\)\\>[ \t]*(\\(\\S)+\\))" '("(\\(element\\)\\>[ \t]*(\\(\\S)+\\))"
(1 font-lock-keyword-face) (1 font-lock-keyword-face)
(2 font-lock-type-face)) (2 font-lock-type-face))
'("\\<\\sw+:\\>" . font-lock-constant-face) ; trailing `:' c.f. scheme '("\\<\\sw+:\\>" . font-lock-constant-face) ; trailing `:' cf. scheme
;; SGML markup (from sgml-mode) : ;; SGML markup (from sgml-mode) :
'("<\\([!?][-a-z0-9]+\\)" 1 font-lock-keyword-face) '("<\\([!?][-a-z0-9]+\\)" 1 font-lock-keyword-face)
'("<\\(/?[-a-z0-9]+\\)" 1 font-lock-function-name-face))) '("<\\(/?[-a-z0-9]+\\)" 1 font-lock-function-name-face)))

View file

@ -110,7 +110,7 @@ to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'."
(if (and (eq arg 2) (windowp dw)) (select-window dw))))) (if (and (eq arg 2) (windowp dw)) (select-window dw)))))
(defun reftex-view-cr-cite (arg key how) (defun reftex-view-cr-cite (arg key how)
;; View crossreference of a ref cite. HOW can have the values ;; View cross-reference of a ref cite. HOW can have the values
;; nil: Show in another window. ;; nil: Show in another window.
;; echo: Show one-line info in echo area. ;; echo: Show one-line info in echo area.
;; tmp-window: Show in small window and arrange for window to disappear. ;; tmp-window: Show in small window and arrange for window to disappear.
@ -175,7 +175,7 @@ to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'."
(select-window pop-win))))) (select-window pop-win)))))
(defun reftex-view-cr-ref (arg label how) (defun reftex-view-cr-ref (arg label how)
;; View crossreference of a ref macro. HOW can have the values ;; View cross-reference of a ref macro. HOW can have the values
;; nil: Show in another window. ;; nil: Show in another window.
;; echo: Show one-line info in echo area. ;; echo: Show one-line info in echo area.
;; tmp-window: Show in small window and arrange for window to disappear. ;; tmp-window: Show in small window and arrange for window to disappear.

View file

@ -261,7 +261,7 @@ You may want to include buffer names such as *Help*, *Apropos*,
;; Make sure point does not end up in the minibuffer and delete ;; Make sure point does not end up in the minibuffer and delete
;; windows displaying dead or boring buffers ;; windows displaying dead or boring buffers
;; (c.f. `winner-boring-buffers') and `winner-boring-buffers-regexp'. ;; (cf. `winner-boring-buffers') and `winner-boring-buffers-regexp'.
;; Return nil if all the windows should be deleted. Preserve correct ;; Return nil if all the windows should be deleted. Preserve correct
;; points and marks. ;; points and marks.
(defun winner-set (conf) (defun winner-set (conf)

View file

@ -809,7 +809,7 @@ _XMRecomputeSelection(register Display *display, register XMenu *menu, register
/* /*
* _XMTransToOrigin - Internal subroutine to translate the point at * _XMTransToOrigin - Internal subroutine to translate the point at
* the center of the current pane and selection to the * the center of the current pane and selection to the
* the menu origin. * menu origin.
* *
* WARNING! ****** Be certain that all menu dependencies have been * WARNING! ****** Be certain that all menu dependencies have been
* recomputed before calling this routine or * recomputed before calling this routine or

View file

@ -19776,7 +19776,7 @@
2011-05-10 Jim Meyering <meyering@redhat.com> 2011-05-10 Jim Meyering <meyering@redhat.com>
* xdisp.c (x_intersect_rectangles): Fix typo "the the -> the". * xdisp.c (x_intersect_rectangles): Fix typo.
2011-05-10 Juanma Barranquero <lekktu@gmail.com> 2011-05-10 Juanma Barranquero <lekktu@gmail.com>

View file

@ -6250,7 +6250,7 @@
2014-06-22 Mario Lang <mlang@delysid.org> 2014-06-22 Mario Lang <mlang@delysid.org>
* w32fns.c (Fw32_shell_execute): The the -> the. * w32fns.c (Fw32_shell_execute): Fix typo.
2014-06-22 Dmitry Antipov <dmantipov@yandex.ru> 2014-06-22 Dmitry Antipov <dmantipov@yandex.ru>

View file

@ -8798,7 +8798,7 @@
* dispextern.h (struct glyph_pos): New member dpvec_index. * dispextern.h (struct glyph_pos): New member dpvec_index.
(MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test if row ends in the
the middle of a character. middle of a character.
(MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Test if row starts in
the middle of a character. the middle of a character.

View file

@ -5341,7 +5341,7 @@ android_wc_lookup_string (android_key_pressed_event *event,
characters = (*env)->GetStringChars (env, string, NULL); characters = (*env)->GetStringChars (env, string, NULL);
android_exception_check_nonnull ((void *) characters, string); android_exception_check_nonnull ((void *) characters, string);
/* Establish the size of the the string. */ /* Establish the size of the string. */
size = (*env)->GetStringLength (env, string); size = (*env)->GetStringLength (env, string);
/* Copy over the string data. */ /* Copy over the string data. */

View file

@ -4356,7 +4356,7 @@ android_saf_stat (const char *uri_name, const char *id_name,
return 0; return 0;
} }
/* Detect if Emacs has access to the document designated by the the /* Detect if Emacs has access to the document designated by the
document ID ID_NAME within the tree URI_NAME. If ID_NAME is NULL, document ID ID_NAME within the tree URI_NAME. If ID_NAME is NULL,
use the document ID in URI_NAME itself. use the document ID in URI_NAME itself.

View file

@ -2821,12 +2821,12 @@ emit_static_object (const char *name, Lisp_Object obj)
<https://gcc.gnu.org/ml/jit/2019-q3/msg00013.html>. <https://gcc.gnu.org/ml/jit/2019-q3/msg00013.html>.
Adjust if possible to reduce the number of function calls. */ Adjust if possible to reduce the number of function calls. */
size_t chunck_size = NILP (Fcomp_libgccjit_version ()) ? 200 : 1024; size_t chunk_size = NILP (Fcomp_libgccjit_version ()) ? 200 : 1024;
char *buff = xmalloc (chunck_size); char *buff = xmalloc (chunk_size);
for (ptrdiff_t i = 0; i < len;) for (ptrdiff_t i = 0; i < len;)
{ {
strncpy (buff, p, chunck_size); strncpy (buff, p, chunk_size);
buff[chunck_size - 1] = 0; buff[chunk_size - 1] = 0;
uintptr_t l = strlen (buff); uintptr_t l = strlen (buff);
if (l != 0) if (l != 0)

View file

@ -1853,7 +1853,7 @@ parse_resource_key (const char *res_key, char *setting_key)
*dp++ = c; *dp++ = c;
sp++; sp++;
} }
*dp++ = '/'; /* must ends with '/' */ *dp++ = '/'; /* must end with '/' */
*dp = '\0'; *dp = '\0';
} }

View file

@ -9166,7 +9166,7 @@ sfnt_interpret_alignrp (struct sfnt_interpreter *interpreter)
ZP1. ZP1.
Move both points along the freedom vector by half the magnitude of Move both points along the freedom vector by half the magnitude of
the the projection of a vector formed by P1.x - P2.x, P1.y - P2.y, the projection of a vector formed by P1.x - P2.x, P1.y - P2.y,
upon the projection vector. */ upon the projection vector. */
static void static void

View file

@ -1630,7 +1630,7 @@ sfntfont_registries_compatible_p (Lisp_Object a, Lisp_Object b)
Value is 0 if there is no match, -1 if there is a match against Value is 0 if there is no match, -1 if there is a match against
DESC itself, and the number of matching instances if the style DESC itself, and the number of matching instances if the style
matches one or more instances defined in in DESC. Return the index matches one or more instances defined in DESC. Return the index
of each matching instance in INSTANCES; it should be SIZE big. */ of each matching instance in INSTANCES; it should be SIZE big. */
static int static int

View file

@ -100,7 +100,7 @@ struct textconv_callback_struct
the end of the conversion. */ the end of the conversion. */
enum textconv_caret_direction direction; enum textconv_caret_direction direction;
/* The the number of times for which to repeat the scanning in order /* The number of times for which to repeat the scanning in order
to determine the starting position of the text to return. */ to determine the starting position of the text to return. */
unsigned short factor; unsigned short factor;

View file

@ -11614,7 +11614,7 @@ void
load_unicows_dll_for_w32fns (HMODULE unicows) load_unicows_dll_for_w32fns (HMODULE unicows)
{ {
if (!unicows) if (!unicows)
/* The functions following are defined by SHELL32.DLL onw Windows /* The functions following are defined by SHELL32.DLL on Windows
NT. */ NT. */
unicows = GetModuleHandle ("shell32"); unicows = GetModuleHandle ("shell32");

View file

@ -1448,7 +1448,7 @@ as a regex."
;; Example 3 and 4 can't be directly tested because jit-lock and ;; Example 3 and 4 can't be directly tested because jit-lock and
;; batch tests don't play together well. But we can approximate ;; batch tests don't play together well. But we can approximate
;; the behavior by calling the the fontification for the same ;; the behavior by calling the fontification for the same
;; region which would be used by jit-lock. ;; region which would be used by jit-lock.
;; Example 3 ;; Example 3
(search-forward "sub do_stuff") (search-forward "sub do_stuff")