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>
client key/cert specification.
* 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.
* etc/NEWS: Describe new client certificate functionality for
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>
This abstracts out the somewhat-unusual "insert&delete" logic in
'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.
(eshell-parse-command): Use it.
(BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(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_secondary): Adjust tests accordingly.
((or (string-equal tag "anc") (string-equal tag "ancestor"))
("ro" :default "Continuare de pe pagina precedentă")
("ro" :default "Continuare pe pagina următoare")
+;; avk@rtsg.mot.com (Andrew V. Klein) for a Dired tip.
callint
checkin
clen
-crossreference
-crossreferences
debbugs
dedented
dependant
-doas
ede
grey
gud
ifset
inout
-keypair
keyserver
keyservers
lightening
master
mimicks
mitre
-msdos
ot
parm
parms
reenabled
requestor
sie
-spawnve
statics
-stdio
texline
typdef
If you can reproduce, then reply on the thread (either on the
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),
then add that as well, since it will help whoever attempts to
fix it.
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
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
same directory.
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
-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:
https://debbugs.gnu.org/cgi/pkgreport.cgi?newest=100
** How to avoid multiple copies of mails.
If you reply to reports in the normal way, this should work fine.
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.
** To close bug#123 (for example), send mail
X-GNU-PR-Message: closed 123
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:
X-GNU-PR-Message: cc-closed 123
Summary for the impatient:
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
-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
+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
the file.
2. When installing code written by someone else, the commit
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
admin/ directory), because the whole Emacs repository is publicly
available.
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
repository, then it does not really matter about adding a copyright
statement to the generated file.
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
-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
+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
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
notice, and if so, please add one.
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
-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
-"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
+"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
these are distributed in the repository, check in a regenerated
version when the tex files are updated.
All README (and other such text files) that are non-trivial should
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
-provided legal notices were retained. In Feb 2007 we switched to the
-standard GPL text, on legal advice. Some older text files in etc/
+provided legal notices were retained. In Feb 2007 we switched to the
+standard GPL text, on legal advice. Some older text files in etc/
should, however, keep their current licenses (see below for list).
For image files, the copyright and license details should be recorded
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
-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
another (https://lists.gnu.org/r/emacs-devel/2007-02/msg00618.html).
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
-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
file in the relevant directory.
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
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 needs to be updated in "unusual" ways.
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 "odd" copyright holders. In most cases, individual authors should
-not appear in copyright statements. Either the copyright has been
+and note them in this file. This includes missing copyright notices,
+and "odd" copyright holders. In most cases, individual authors should
+not appear in copyright statements. Either the copyright has been
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
else it is possible the file should not be in Emacs at all (please
report!).
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.
[For reference, most of these points were established via email with
- copyright FSF, with MIT-like license
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
also update the \def\year macro for the latest year.
<https://lists.gnu.org/r/emacs-devel/2007-02/msg00324.html>
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
Emacs (and written by those with assignments), a standard notice is
fine.
leim/SKK-DIC/SKK-JISYO.L
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
- Copyright information is duplicated in etc/ETAGS.README. Update that
+ Copyright information is duplicated in etc/ETAGS.README. Update that
file too.
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
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>
I have received enough requests for the current source to ctags
- 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
+ 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.2 ctags with recognition of yacc and lex tags added.
See also a 1984 version of ctags (no copyright) posted to net.sources:
Version of etags.c in emacs-16.56 duplicates comment typos.
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
- 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
from a legal point of view.
from authors other than himself were negligible.
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
the concept.
rms: "My understanding is that game rules as such are not copyrightable."
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/
FSF copyrights should only appear in files which have undergone
non-trivial cumulative changes from the original versions in the Lucid
-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
+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
reverted to the extent that a file becomes basically the same as the
original version, the FSF copyright should be removed.
In my (rgm) opinion, as of Feb 2007, all the non-trivial files differ
significantly from the original versions, with the exception of
-lwlib-Xm.h. Most of the changes that were made to this file have
-subsequently been reverted. Therefore I removed the FSF copyright from
-this file (which is arguably too trivial to merit a notice anyway). I
+lwlib-Xm.h. Most of the changes that were made to this file have
+subsequently been reverted. Therefore I removed the FSF copyright from
+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
already: Makefile.in, lwlib-Xaw.c, lwlib-int.h (borderline),
lwlib-utils.c (borderline), lwlib.c, lwlib.h.
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
-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.
Note that until Feb 2007, the following files in lwlib were lacking
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
-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
-till Lucid Emacs 19.9 in 1994. The file lwlib-Xaw.h is too trivial to
+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
+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
-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.
To clarify the situation, in Feb 2007 we added Lucid copyrights and
GPL notices to those files lacking either that were non-trivial,
-namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents
-our best understanding of the legal status of these files. We also
+namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents
+our best understanding of the legal status of these files. We also
clarified the notices in Makefile.in, which was originally the
Makefile auto-generated from Lucid's Imakefile.
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
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
-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
1994.
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
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.
doc/*/*.texi - All manuals should be under GFDL (but see below), and
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.
https://lists.gnu.org/r/emacs-devel/2007-04/msg00583.html
https://lists.gnu.org/r/emacs-devel/2007-04/msg00618.html
oldXMenu/
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.
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
original X11 version, remove the FSF notice and GPL.
Only the files which differ significantly from the original X11
-versions should have FSF copyright and GPL notices. At time of writing
-(Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm)
+versions should have FSF copyright and GPL notices. At time of writing
+(Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm)
established this by diff'ing the current files against those in X11R1,
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
-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
+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
notices.
With regards to whether the files we have changed should have 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
to glic three days later by Roland McGrath, with an FSF copyright and
GPL, but no ChangeLog entry.
To the best of his recollection, McGrath (who has a copyright
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
understand it.
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
-unused, I removed it. It would have the same MIT copyright as
+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
Makefile.in does now.
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
- - 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.
** Some notes on resolved issues, for historical information only
etc/TERMS
-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
-for it." It was present in Emacs-16.56 (15-jul-85). rms: "Then I
+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
+for it." It was present in Emacs-16.56 (15-jul-85). rms: "Then I
conclude it was written by me."
lisp/term/README
- - 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:
+ - 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:
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
src/unexhp9k800.c
https://lists.gnu.org/r/emacs-devel/2007-02/msg00138.html
- - briefly removed due to legal uncertainly Jan-Mar 2007. The
- relevant assignment is under "hp9k800" in copyright.list. File was
+ - briefly removed due to legal uncertainly Jan-Mar 2007. The
+ relevant assignment is under "hp9k800" in copyright.list. File was
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
algorithm in this format.
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.
(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
[note some of these have since been merged into other files]
- 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
assignments from the authors (I recall many of these header files
as having been originally written by rms), and to attach an FSF
- copyright with GPL notice. We can amend this if and when we
- complete the code audit. Any additions to these files by
+ copyright with GPL notice. We can amend this if and when we
+ complete the code audit. Any additions to these files by
non-assigned authors are arguably "de minimis" contributions to
Emacs: small changes or suggestions to a work that are subsumed in
the main authors' copyright in the entire work.
? irix5-0.h
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
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
started trivial, grown in tiny changes.
netbsd.h:
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."
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
from.
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.
(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
-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
-alone (may import them from Gnulib again). These are:
+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
+alone (may import them from Gnulib again). These are:
Gnulib:
build-aux/config.guess
(rms: "We may as well leave this alone, since we are never going to
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:
leim/MISC-DIC/CTLau-b5.html >= v2
leim/ja-dic/ja-dic.el >= v2
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/mail/README
https://lists.gnu.org/r/emacs-devel/2008-10/msg00414.html
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".
If you see "the point" anywhere in Emacs documentation or comments,
(Make sure both emacs and emacsclient are multi-tty versions.)
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)
also works. Of course, you can create frames on more than two tty
devices.
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.
- C.f. (emacs)Emergency Escape.
+ Cf. (emacs)Emergency Escape.
** frames-on-display-list should also accept frames.
with it.
(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
exits emacsclient. This is a result of trying to be clever with
fine. Sometimes faces on these screens become garbled.
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
complains about 'M-[ a'. UNIX ttys are a complete mystery to me,
but it seems the reset-reinitialize cycle somehow leaves the
-- Understand Emacs's low-level input system (it's black magic) :-)
What exactly does interrupt_input do? I tried to disable it for
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
to understand input.)
(Update: I am starting to understand the read_key_sequence->read-char
If you have pushed commit, resetting will be ineffective because it
will only vanish the commit in your local copy. Instead, use 'git
-revert', giving it the commit ID as argument. This will create a
-new commit that backs out the change. Then push that.
+revert', giving it the commit ID as argument. This will create a
+new commit that backs out the change. Then push that.
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
* Facts
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.
There’s 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 didn’t investigate further.
The ranges set for a parser doesn’t grow when you insert text into a
range, so you have to update the ranges every time before
-parsing. Fortunately, changing ranges doesn’t invalidate incremental
+parsing. Fortunately, changing ranges doesn’t invalidate incremental
parsing, so there isn’t any performance lost in update ranges
frequently.
* Install language definitions
Tree-sitter by itself doesn’t know how to parse any particular
-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
+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
them.
You can use this script that I put together here:
This script automatically pulls and builds language definitions for C,
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:
https://github.com/casouri/tree-sitter-module/releases/tag/v2.1
cd tree-sitter-module
./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,
-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’.
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:
https://github.com/tree-sitter
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.
* Setting up for adding major mode features
inheriting from the original mode don't break if tree-sitter is
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
-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.
If the tree-sitter variant and the "native" variant could share some
Tree-sitter works like this: You provide a query made of patterns and
capture names, tree-sitter finds the nodes that match these patterns,
tag the corresponding capture names onto the nodes and return them to
-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
+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
will be fontified in their capture name.
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
function should only fontify within that region. The function should
also allow more optional arguments with (&rest _), for future
There are two types of nodes, named, like (identifier),
(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)))
-Eg, an argument list (1, "3", 1) could be:
+For example, an argument list (1, "3", 1) could be:
(argument_list "(" (number) (string) (number) ")")
open any python source file, type M-x treesit-explore-mode RET. Now
you should see the parse-tree in a separate window, automatically
updated as you select text or edit the buffer. Besides this, you can
-consult the grammar of the language definition. For example, Python’s
+consult the grammar of the language definition. For example, Python’s
grammar file is at
https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js
** Debugging queries
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.
** Code
To enable tree-sitter font-lock, set ‘treesit-font-lock-settings’ and
‘treesit-font-lock-feature-list’ buffer-locally and call
-‘treesit-major-mode-setup’. For example, see
-‘python--treesit-settings’ in python.el. Below is a snippet of it.
+‘treesit-major-mode-setup’. For example, see
+‘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
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.
Each rule should have a :feature, like function-name,
-string-interpolation, builtin, etc. Users can then enable/disable each
-feature individually. See Appendix 1 at the bottom for a set of common
+string-interpolation, builtin, etc. Users can then enable/disable each
+feature individually. See Appendix 1 at the bottom for a set of common
features names.
#+begin_src elisp
(MATCHER ANCHOR OFFSET)
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
-will match the node (eg, "this node is a closing bracket!"). Then we
-pass the node to the ANCHOR, which returns a point, eg, the BOL of the
-previous line. We find the column number of that point (eg, 4), add
-OFFSET to it (eg, 0), and that is the column we want to indent the
+will match the node (e.g., "this node is a closing bracket!"). Then we
+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 (e.g., 4), add
+OFFSET to it (e.g., 0), and that is the column we want to indent the
current line to (4 + 0 = 4).
Matchers and anchors are functions that takes (NODE PARENT BOL &rest
-_). Matches return nil/non-nil for no match/match, and anchors return
-the anchor point. Below are some convenient builtin matchers and anchors.
+_). Matches return nil/non-nil for no match/match, and anchors return
+the anchor point. Below are some convenient builtin matchers and anchors.
For MATCHER we have
(match NODE-TYPE PARENT-TYPE NODE-FIELD
NODE-INDEX-MIN NODE-INDEX-MAX)
- => checks everything. If an argument is nil, don’t match that. Eg,
- (match nil TYPE) is the same as (parent-is TYPE)
+ => checks everything. If an argument is nil, don’t match that.
+ E.g., (match nil TYPE) is the same as (parent-is TYPE)
For ANCHOR we have
There is also a manual section for indent: "Parser-based Indentation".
When writing indent rules, you can use ‘treesit-check-indent’ to
-check if your indentation is correct. To debug what went wrong, set
-‘treesit--indent-verbose’ to non-nil. Then when you indent, Emacs
+check if your indentation is correct. To debug what went wrong, set
+‘treesit--indent-verbose’ to non-nil. Then when you indent, Emacs
tells you which rule is applied in the echo area.
#+begin_src elisp
* Navigation
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’.
* Which-func
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
-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.
* Common tasks
* Manual
-I suggest you read the manual section for tree-sitter in Info. The
-section is Parsing Program Source. Typing
+I suggest you read the manual section for tree-sitter in Info. The
+section is Parsing Program Source. Typing
C-h i d m elisp RET g Parsing Program Source RET
-will bring you to that section. You don’t need to read through every
+will bring you to that section. You don’t need to read through every
sentence, just read the text paragraphs and glance over function
names.
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 = c <--- highlight b
a[1] = d <--- highlight a
-definition: the thing being defined, eg:
+definition: the thing being defined, e.g.:
int a(int b) { <--- highlight a
return 0
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
do_casify_multibyte_region modifies buffer, but they are static
json.c:790: signal_after_change (PT, 0, inserted);
Called in json-insert, calls either decode_coding_gap or
-insert_from_gap_1, both are safe. Calls memmove but it’s for
+insert_from_gap_1, both are safe. Calls memmove but it’s for
decode_coding_gap.
keymap.c:2873: /* Insert calls signal_after_change which may GC. */
Environment
-----------
-A full installation of msys2 is required along for the build. The
-various dependencies of Emacs need to be installed also. These change
+A full installation of msys2 is required along for the build. The
+various dependencies of Emacs need to be installed also. These change
over time, but are listed in build-deps-zips.py.
------------------------
-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
Emacs they come with, as the dependencies of Emacs change relatively slowly.
~/emacs-build/git/emacs-$major-version
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
-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.
~/emacs-build/deps
-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.
+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.
~/emacs-build/deps/libXpm
-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
-horrible. The files came original from msys2, and contains no
-dependencies. It has to be placed manually (but probably never
+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
+horrible. The files came original from msys2, and contains no
+dependencies. It has to be placed manually (but probably never
need updating).
~/emacs-build/build/$version
-We build Emacs out-of-source here. This directory is created by
-build-zips.sh. This directory can be freely deleted after zips have
+We build Emacs out-of-source here. This directory is created by
+build-zips.sh. This directory can be freely deleted after zips have
been created
~/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
created.
### 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
ensure the maximum stability.
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
source for these.
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.
-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
and uploaded with `gnupload`.
### For snapshots from Master
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
branch.
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
-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
-created. Where multiple deps files exist, the most recent will be
+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
+created. Where multiple deps files exist, the most recent will be
used.
Now, run `build-zips.sh -s` to build a snapshot release.
### 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
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.
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
you want the small possible Emacs.
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.zip.
git ls-files |\
grep -v -E -e '^(lib|m4)/.*' |\
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/translations/.*' |\
grep -v -E -e '^etc/(AUTHORS|HELLO|publicsuffix.txt)$' |\
@item
Andrea Corallo was the Emacs (co-)maintainer from 29.3 onwards.
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}.
@item
@cindex temp~unlinked.NNNN files, Android
On Android devices running very old (2.6.29) versions of the Linux
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,
or they may be overwritten or removed.
To find the documentation of a particular command, look in the index.
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.
The Info file is for reading from Emacs itself, or with the Info program.
@table @kbd
@item @key{RET}
-Follow a cross reference at point (@code{push-button}).
+Follow a cross-reference at point (@code{push-button}).
@item @key{TAB}
Move point forward to the next hyperlink (@code{forward-button}).
@item S-@key{TAB}
not suitable for running the final copy in which all of the cross-references
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,
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
@end table
@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
@var{data-type} replaced by an alternative name should it be one of
the following X selection targets:
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
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.
@end defun
To allow its users to initiate JSONRPC contacts (notifications or
requests) or reply to endpoint requests, the new transport
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
automatically by primitives such as @code{jsonrpc-request} and
@code{jsonrpc-notify}. The specialization should ensure that the
2014-06-22 Mario Lang <mlang@delysid.org>
- * srecode.texi (Base Arguments): The the -> to the.
-
- * org.texi (Images in ODT export): The the -> the.
+ * srecode.texi (Base Arguments):
+ * org.texi (Images in ODT export): Fix typos.
2014-06-21 Eli Zaretskii <eliz@gnu.org>
@cmindex ff
@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}).
@cmindex gf
@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}).
@cmindex intersection
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
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 overview.fmt
(hfy-face-to-css @var{fn})
@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.
See also: @ref{hfy-face-to-style}
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
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:
#+begin_src emacs-lisp
: ./img/cat.jpg
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
=CAPTION= and =NAME= keywords as follows:
This is used when @code{reftex-view-crossref} is called with point in an
argument of a macro. Note that crossref viewing for citations,
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
@example
(@var{macro-re} @var{search-re} @var{highlight}).
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>
There are probably some Mocklisp constructs that are not handled.
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
- not too hard to do.
+ too hard to do.
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
*** Reference keys can now be entered with TAB completion. All
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.
BibTeX entries may have brace-delimited and quote-delimited fields
Sorting of agenda items, tables, menus, headlines, etc can now be
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
results depending on the use case. For example, multi-language
documents may be sorted weirdly when sorting rules for system language
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
-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.
The solution is either to upgrade or downgrade to a version of MuPDF
** Remove unnecessary autoload cookies from defcustoms
This needs a bit of care, since often people have become used to
-expecting such variables to always be defined, eg when they modify
-things in their .emacs.
+expecting such variables to always be defined, for example when they
+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
Change "(interactive)" to "(interactive nil foo-mode)" for command
https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00609.html
** 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
to implement things like auto-loaded buffer parsers and database
** A more modern printing interface
A UI that pops up a dialog that lets you choose printer, page style,
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
** Allow frames(terminals) created by emacsclient to inherit their environment
Zlib is required for PNG, so may be linked anyhow.
** Improve the GC
-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.
+Introduce generational or incremental GC. (We may be able to use the
+Boehm collector.) See the Boehm-GC branch in Git for work on this.
** Check what hooks would help Emacspeak
See the defadvising in W3.
tests for full screen, toolbar, and auto-hiding the menu bar.
**** 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
all build versions.
rightwards from the origin to the left most pixel in the glyph
raster. rbearing is the distance between the origin and the
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
downwards) between the origin and the bottommost pixel in the
glyph raster.
* progmodes/cc-cmds.el (c-hungry-delete): New function to fix
<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>
Return the previous char.
(perl-calculate-indent): Use syntax-ppss instead of parse-start
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-start-of-continued-exp): Rewrite.
(assoc-string-equalp): Renamed to assoc-ignore-case.
(bibtex-entry): Reference key can be entered with completion. All
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".
(bibtex-entry-field-alist): Changed order of entries slightly to
be more conform with standard BibTeX style layouts.
t) are necessary again. bibtex-clean-entry complains if they are
empty but not if they are missing, so you can intentionally omit
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.
Menu bar entries aren't centered anymore.
newlines.
(gomoku-init-display): Once again fairly fast due to minimization of
characters in buffer and text-property operations. Cursor cannot be
- be off a square.
+ off a square.
(gomoku-display-statistics): Simplified equivalently.
(gomoku-winning-qtuple-beg, gomoku-winning-qtuple-end)
(gomoku-winning-qtuple-dx, gomoku-winning-qtuple-dy): Pseudo variables
;;; Bn = n! bn
;;; 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.
(f (apply (car f) name arglist (cdr x)))
;; Yuck!!
((and (featurep 'cl)
- (memq (car x) ;C.f. cl--do-proclaim.
+ (memq (car x) ;Cf. cl--do-proclaim.
'(special inline notinline optimize warn)))
(push (list 'declare x) cl-decls)
nil)
;; Emacs's normal rectangle support is based on interpreting the region
;; between the mark and point as a "virtual rectangle", and using a
;; 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
;; representation of the selected rectangle, i.e. it highlights the
;;
;; 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.
-;; 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,
;; 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
Normally the body and the immediate subheadings are exposed, but
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 the entire subtree"
(interactive "P")
;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
(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
;; 0x01-0x1F.
(define-charset 'cp437
;; <URL:https://czyborra.com/charsets/cyrillic.html>.
;; Note that 8859-5 maps directly onto the Unicode Cyrillic block,
-;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen,
-;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and
+;; apart from codepoints 160 (NBSP, cf. U+0400), 173 (soft hyphen,
+;; cf. U+04OD) and 253 (section sign, cf. U+045D). The KOI-8 and
;; Alternativnyj coding systems encode both 8859-5 and Unicode.
;;; Code:
2014-06-22 Mario Lang <mlang@delysid.org>
- * org-list.el (org-list-insert-item): The the -> the.
-
- * org-bibtex.el (org-bibtex-fields): The the -> the.
+ * org-list.el (org-list-insert-item):
+ * org-bibtex.el (org-bibtex-fields): Fix typos.
2013-06-22 Dmitry Antipov <dmantipov@yandex.ru>
agenda restriction. Specifically, it is set to t if the agenda
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
-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
to the beginning and the end of the part.
(unless (memq granularity '( headline headline+inlinetask
greater-element element))
(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.
(unless (markerp to-pos)
(let ((mk (make-marker)))
;; The isearch behavior is controlled on per-folding-spec basis by
;; 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
"Alist of characters and faces to emphasize text.
Text starting and ending with a special character will be emphasized,
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 */_=~+.
You need to reload Org or to restart Emacs after customizing this."
"\\(?:\\\\\\(?:.\\|\n\\)\\|[^\"\n\\]\\)*[\"\n]" nil 'stay)))
((memq lit-type '(c c++))
;; 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.
(if (and (eq (char-before pt-search) ?\\)
(eq (char-after pt-search) ?\n))
'("(\\(element\\)\\>[ \t]*(\\(\\S)+\\))"
(1 font-lock-keyword-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) :
'("<\\([!?][-a-z0-9]+\\)" 1 font-lock-keyword-face)
'("<\\(/?[-a-z0-9]+\\)" 1 font-lock-function-name-face)))
(if (and (eq arg 2) (windowp dw)) (select-window dw)))))
(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.
;; echo: Show one-line info in echo area.
;; tmp-window: Show in small window and arrange for window to disappear.
(select-window pop-win)))))
(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.
;; echo: Show one-line info in echo area.
;; tmp-window: Show in small window and arrange for window to disappear.
\f
;; Make sure point does not end up in the minibuffer and delete
;; 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
;; points and marks.
(defun winner-set (conf)
/*
* _XMTransToOrigin - Internal subroutine to translate the point at
* the center of the current pane and selection to the
- * the menu origin.
+ * menu origin.
*
* WARNING! ****** Be certain that all menu dependencies have been
* recomputed before calling this routine or
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>
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>
* dispextern.h (struct glyph_pos): New member dpvec_index.
(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
the middle of a character.
characters = (*env)->GetStringChars (env, string, NULL);
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);
/* Copy over the string data. */
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,
use the document ID in URI_NAME itself.
<https://gcc.gnu.org/ml/jit/2019-q3/msg00013.html>.
Adjust if possible to reduce the number of function calls. */
- size_t chunck_size = NILP (Fcomp_libgccjit_version ()) ? 200 : 1024;
- char *buff = xmalloc (chunck_size);
+ size_t chunk_size = NILP (Fcomp_libgccjit_version ()) ? 200 : 1024;
+ char *buff = xmalloc (chunk_size);
for (ptrdiff_t i = 0; i < len;)
{
- strncpy (buff, p, chunck_size);
- buff[chunck_size - 1] = 0;
+ strncpy (buff, p, chunk_size);
+ buff[chunk_size - 1] = 0;
uintptr_t l = strlen (buff);
if (l != 0)
*dp++ = c;
sp++;
}
- *dp++ = '/'; /* must ends with '/' */
+ *dp++ = '/'; /* must end with '/' */
*dp = '\0';
}
ZP1.
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. */
static void
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
- 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. */
static int
the end of the conversion. */
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. */
unsigned short factor;
load_unicows_dll_for_w32fns (HMODULE unicows)
{
if (!unicows)
- /* The functions following are defined by SHELL32.DLL onw Windows
+ /* The functions following are defined by SHELL32.DLL on Windows
NT. */
unicows = GetModuleHandle ("shell32");
;; Example 3 and 4 can't be directly tested because jit-lock and
;; 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.
;; Example 3
(search-forward "sub do_stuff")