1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 07:01:11 -08:00
emacs/src
Paul Eggert 5d4cf1fef8 Add ‘nofollow’ flag to set-file-times
This is a companion to the recent set-file-modes patch.
It adds support for a ‘nofollow’ flag to set-file-times (Bug#39773).
Like the set-file-modes patch, it needs work in the w32 port.
* admin/merge-gnulib (GNULIB_MODULES): Add futimens, utimensat.
Remove utimens.
* doc/lispref/files.texi (Changing Files):
* etc/NEWS: Mention the change.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lisp/files.el (copy-directory):
* lisp/gnus/gnus-cloud.el (gnus-cloud-replace-file):
* lisp/net/tramp-adb.el (tramp-adb-handle-copy-file):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file):
* lisp/tar-mode.el (tar-copy):
* test/lisp/filenotify-tests.el (file-notify-test03-events):
* test/lisp/files-tests.el:
(files-tests-file-name-non-special-set-file-times):
* test/lisp/net/tramp-tests.el (tramp-test22-file-times):
When setting file times, avoid following symbolic links
when the file is not supposed to be a symbolic link.
* lib/futimens.c, lib/utimensat.c, m4/futimens.m4, m4/utimensat.m4:
New files, copied from Gnulib.
* lisp/gnus/gnus-cloud.el (gnus-cloud-replace-file):
When creating a file that is not supposed to exist already,
use the excl flag to check this.
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times):
Accept an optional FLAG arg that is currently ignored,
and add a FIXME comment for it.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times):
* src/fileio.c (Fset_file_times):
Support an optional FLAG arg.
* src/fileio.c (Fcopy_file): Use futimens instead of set_file_times,
as it’s simpler and is a POSIX API.
* src/sysdep.c (set_file_times): Move from here ...
* src/w32.c (set_file_times): ... to here, and make it static,
since it is now used only in w32.c.  Presumably w32.c should also
add support for futimens and utimensat (the POSIX APIs, which
Emacs now uses) and it can remove fdutimens (the Gnulib API,
which Emacs no longer uses).
2020-03-07 12:15:43 -08:00
..
bitmaps
.dbxinit
.gdbinit Update copyright year to 2020 2020-01-01 00:59:52 +00:00
alloc.c Fix crash when sending Gnus message (Bug#39207) 2020-01-22 23:44:34 -08:00
atimer.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
atimer.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
bidi.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
bignum.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
bignum.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
blockinput.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
buffer.c Support for (box . SIZE) 'cursor-type' 2020-02-07 12:00:14 +02:00
buffer.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
bytecode.c Mark 'catch' and 'condition-case' bytecodes as obsolete 2020-01-05 23:30:05 +01:00
callint.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
callproc.c Make after-change-functions called from call-process get the correct BEG 2020-02-13 19:00:36 +00:00
casefiddle.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
casetab.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
category.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
category.h
ccl.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ccl.h
ChangeLog.1 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.2 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.3 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.4 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.5 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.6 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.7 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.8 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.9 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.10 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.11 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.12 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ChangeLog.13 Update copyright year to 2020 2020-01-01 00:59:52 +00:00
character.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
character.h Stop signaling an error when reading "smart quotes" in symbols 2019-11-28 18:03:42 -05:00
charset.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
charset.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
chartab.c Do not alter match data in Fcapitalize etc. 2019-07-09 13:11:45 -07:00
cm.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
cm.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
cmds.c Correct "different than" to "different from" where appropriate 2020-02-09 14:33:14 +00:00
coding.c Use decode_string_utf_8 in emacs-module.c. 2020-01-13 00:08:32 +01:00
coding.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
commands.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
composite.c Merge from origin/emacs-27 2020-03-04 13:57:58 -08:00
composite.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
conf_post.h Pacify GCC 9.2.1 20190927 -O3 2020-03-04 13:48:58 -08:00
COPYING
cygw32.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
cygw32.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
data.c Restore runtime check for invalid tag 2020-02-22 08:05:59 -08:00
dbusbind.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
decompress.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
deps.mk Remove unused ftx font backend driver 2020-01-15 19:57:27 +01:00
dired.c Work better if stat etc. are interrupted 2020-01-20 01:21:52 -08:00
dispextern.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dispnew.c Fix a few typos 2020-01-22 19:17:32 +02:00
disptab.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dmpstruct.awk Update copyright year to 2020 2020-01-01 00:59:52 +00:00
doc.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
doprnt.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dosfns.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dosfns.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dynlib.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
dynlib.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
editfns.c Pacify GCC 9.2.1 20190927 -O3 2020-03-04 13:48:58 -08:00
emacs-icon.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
emacs-module.c Use decode_string_utf_8 in emacs-module.c. 2020-01-13 00:08:32 +01:00
emacs-module.h.in Improve 'noexcept' support in C++17. 2020-01-04 13:54:29 +01:00
emacs.c Remove ancient OS X process-connection-type handling 2020-03-05 17:11:51 -08:00
emacsgtkfixed.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
emacsgtkfixed.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
epaths.in Revert the --with-install-srcdir patch 2020-01-27 23:17:10 -08:00
eval.c Revert "Raise default max-specpdl-size value" 2020-01-01 17:38:41 +01:00
fileio.c Add ‘nofollow’ flag to set-file-times 2020-03-07 12:15:43 -08:00
filelock.c Work better if stat etc. are interrupted 2020-01-20 01:21:52 -08:00
firstfile.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
floatfns.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
fns.c Avoid unlikely load-average bug 2020-02-17 12:44:29 -08:00
font.c Merge from origin/emacs-27 2020-03-04 13:57:58 -08:00
font.h Merge from origin/emacs-27 2020-03-04 13:57:58 -08:00
fontset.c Avoid crashes when a fontset has strange entries 2020-03-05 17:57:21 +02:00
fontset.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
frame.c Fix NS frame parameters (bug#39000) 2020-01-07 18:33:14 +00:00
frame.h Merge from origin/emacs-27 2020-02-13 07:50:24 -08:00
fringe.c Range-check width passed to define-fringe-bitmap 2020-02-26 19:18:54 +01:00
ftcrfont.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ftfont.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ftfont.h extern function cleanup 2019-08-24 15:55:08 -07:00
getpagesize.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
gfilenotify.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
gmalloc.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
gnutls.c Define libgnutls-version properly 2020-02-25 20:12:57 -05:00
gnutls.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
gtkutil.c Fix implicit declaration of getenv and atol 2020-03-03 19:42:17 +01:00
gtkutil.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
hbfont.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
image.c Merge from origin/emacs-27 2020-01-15 07:50:22 -08:00
indent.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
indent.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
inotify.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
insdel.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
intervals.c Pacify GCC 9.2.1 20190927 -O3 2020-03-04 13:48:58 -08:00
intervals.h Pacify GCC 9.2.1 20190927 -O3 2020-03-04 13:48:58 -08:00
json.c Use decode_string_utf_8 in emacs-module.c. 2020-01-13 00:08:32 +01:00
keyboard.c * src/keyboard.c: Copy last tool-bar change to tab-bar. 2020-02-21 10:50:08 -05:00
keyboard.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
keymap.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
keymap.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
kqueue.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
lastfile.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
lcms.c Fix typos 2020-02-14 18:01:11 -05:00
lisp.h Restore runtime check for invalid tag 2020-02-22 08:05:59 -08:00
lread.c Make 'load-dangerous-libraries' obsolete (Bug#37819) 2020-03-01 01:19:23 +01:00
macfont.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
macfont.m Merge from origin/emacs-27 2020-01-01 01:08:16 +00:00
macros.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
macros.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
macuvs.h Bring macuvs.h back under Git control 2019-06-22 11:41:49 -07:00
Makefile.in Remove unused ftx font backend driver 2020-01-15 19:57:27 +01:00
marker.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
menu.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
menu.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
mini-gmp-emacs.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
mini-gmp.c * src/mini-gmp.c: Fix comment typos. 2020-01-26 12:54:47 -08:00
mini-gmp.h Update mini-gmp 2020-01-26 12:54:47 -08:00
minibuf.c Merge from origin/emacs-27 2020-02-01 07:50:10 -08:00
module-env-25.h Make argument names in module interface more consistent. 2019-12-23 17:16:10 +01:00
module-env-26.h
module-env-27.h Make argument names in module interface more consistent. 2019-12-23 17:16:10 +01:00
module-env-28.h Implement finalizers for module functions (Bug#30373) 2020-01-03 19:24:10 +01:00
msdos.c Merge from origin/emacs-27 2020-01-01 01:08:16 +00:00
msdos.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
nsfns.m Fix macOS/GNUstep compilation warnings 2020-03-02 18:30:44 +00:00
nsfont.m Update copyright year to 2020 2020-01-01 00:59:52 +00:00
nsgui.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
nsimage.m Merge from origin/emacs-27 2020-01-01 01:08:16 +00:00
nsmenu.m Update copyright year to 2020 2020-01-01 00:59:52 +00:00
nsselect.m Update copyright year to 2020 2020-01-01 00:59:52 +00:00
nsterm.h Fix #defines controlling when NS port draws to offscreen buffer 2020-03-02 18:29:09 +00:00
nsterm.m Fix more NS_DRAW_TO_BUFFER #ifdefs (bug#39883) 2020-03-04 20:53:57 +00:00
pdumper.c Pacify GCC 9.2.1 20190927 -O3 2020-03-04 13:48:58 -08:00
pdumper.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
print.c Shorten pointer printing code using a small helper function. 2020-01-05 17:12:27 +01:00
process.c Remove ancient OS X process-connection-type handling 2020-03-05 17:11:51 -08:00
process.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
profiler.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ptr-bounds.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
puresize.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
ralloc.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
README Update copyright year to 2020 2020-01-01 00:59:52 +00:00
regex-emacs.c Revert "Signal an error for the regexp "[:alnum:]"" 2020-02-27 18:58:05 +01:00
regex-emacs.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
region-cache.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
region-cache.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
scroll.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
search.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
sheap.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
sheap.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
sound.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
syntax.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
syntax.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
sysdep.c Add ‘nofollow’ flag to set-file-times 2020-03-07 12:15:43 -08:00
sysselect.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
syssignal.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
sysstdio.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
systhread.c Cater for 3-argument version of pthread_setname_np 2020-02-03 16:40:25 +01:00
systhread.h Fix BSD and macOS builds w.r.t. pthread_setname_np (bug#38632) 2020-01-07 17:57:31 +01:00
systime.h Add ‘nofollow’ flag to set-file-times 2020-03-07 12:15:43 -08:00
systty.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
syswait.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
term.c Handle tab-bar clicks on a GPM-capable console. 2020-01-13 01:23:12 +02:00
termcap.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
termchar.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
termhooks.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
terminal.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
terminfo.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
termopts.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
textprop.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
thread.c Remove obsolete thread-alive-p 2020-01-09 13:40:14 +01:00
thread.h Fix BSD and macOS builds w.r.t. pthread_setname_np (bug#38632) 2020-01-07 17:57:31 +01:00
timefns.c Merge from origin/emacs-27 2020-03-04 13:57:58 -08:00
tparam.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
tparam.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
undo.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
unexaix.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
unexcoff.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
unexcw.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
unexec.h
unexelf.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
unexhp9k800.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
unexmacosx.c Fix unexec failure on macOS 10.15.4 2020-02-16 09:50:26 +09:00
unexsol.c
unexw32.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
vm-limit.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w16select.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32.c Add ‘nofollow’ flag to set-file-times 2020-03-07 12:15:43 -08:00
w32.h Adapt the MS-Windows build to 'nofollow' changes 2020-02-24 18:16:51 +02:00
w32common.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32console.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32cygwinx.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32fns.c Fix removal of frame decorations on Windows (Bug#38705) 2020-01-02 09:35:49 +01:00
w32font.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32font.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32gui.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32heap.c Fix the MS-Windows build broken by "Let the OS clear large new objects" 2020-01-03 18:27:35 +02:00
w32heap.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32inevt.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32inevt.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32menu.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32notify.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32proc.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32reg.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32select.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32select.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32term.c Fix handling MS-Windows keyboard input above the BMP 2020-03-03 18:40:28 +02:00
w32term.h Fix removal of frame decorations on Windows (Bug#38705) 2020-01-02 09:35:49 +01:00
w32uniscribe.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
w32xfns.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
widget.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
widget.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
widgetprv.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
window.c Fix sxhash-equal on bytecodes, markers, etc. 2020-01-07 11:29:42 -08:00
window.h Fix sxhash-equal on bytecodes, markers, etc. 2020-01-07 11:29:42 -08:00
xdisp.c Merge from origin/emacs-27 2020-03-07 07:50:28 -08:00
xfaces.c Correct "different than" to "different from" where appropriate 2020-02-09 14:33:14 +00:00
xfns.c Remove unused ftx font backend driver 2020-01-15 19:57:27 +01:00
xfont.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xftfont.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xgselect.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xgselect.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xmenu.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xml.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xrdb.c Fix search for ~/.Xdefaults-HOSTNAME (again) 2020-02-19 20:41:18 +01:00
xselect.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xsettings.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xsettings.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xsmfns.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xterm.c Ignore spurious focus events 2020-03-03 18:29:41 -08:00
xterm.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xwidget.c Update copyright year to 2020 2020-01-01 00:59:52 +00:00
xwidget.h Update copyright year to 2020 2020-01-01 00:59:52 +00:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2020 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.