1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 05:01:02 -08:00
emacs/src
Paul Eggert 41bf865329 Clean up and simplify image-type setup
This also fixes an unlikely hang involving a circular image
description.
* src/dispextern.h (struct image.type): Now pointer-to-const.
* src/image.c (struct image_type.init) [!WINDOWSNT]: Omit.
(IMAGE_TYPE_INIT): New macro.
(image_types): Now a small array-of-const, not a pointer.
(CACHE_IMAGE_TYPE): Remove; the code’s simpler without it.
(ADD_IMAGE_TYPE): Remove this macro, replacing with ...
(add_image_type): ... this equivalent function.  All uses changed.
(define_image_type): Remove.  All uses removed.
(valid_image_p): Use FOR_EACH_TAIL_SAFE to avoid Emacs hanging
if the user creates a circular description of an image.
(xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
(gif_type, imagemagick_type, svg_type, gs_type):
Remove; now done by image_types.
(init_imagemagick_functions): Remove decl of nonexistent function.
(gs_clear_image): Remove; all uses replaced by image_clear_image.
(initialize_image_type): New function, which captures a lot
of the previously-scattered WINDOWSNT ifdefs.
(lookup_image_type): Use it.
(reset_image_types): Remove.  All uses removed.
(syms_of_image): Don’t worry about ignoring image_types for
pdumper, since it’s a constant now.
2019-05-17 18:43:28 -07:00
..
bitmaps
.dbxinit
.gdbinit Minor fix in .gdbinit 2019-05-04 19:19:58 +03:00
alloc.c Fix broken build on m68k 2019-05-13 12:43:39 -07:00
atimer.c Use a runtime test for timerfd on Cygwin (Bug#34618) 2019-03-10 10:43:00 -04:00
atimer.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
bidi.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
bignum.c Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
bignum.h Refactoring: Factor out a function to set an mpz_t from a Lisp int. 2019-05-04 23:31:40 +02:00
blockinput.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
buffer.c * src/marker.c (buf_bytepos_to_charpos): Re-add the CHAR_HEAD_P assertion 2019-05-07 13:41:54 -04:00
buffer.h * src/marker.c (buf_bytepos_to_charpos): Re-add the CHAR_HEAD_P assertion 2019-05-07 13:41:54 -04:00
bytecode.c Fix bytecode optimization typo 2019-05-04 10:17:09 -07:00
callint.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
callproc.c Mark _Noreturn error functions as cold 2019-04-18 00:35:18 -07:00
casefiddle.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
casetab.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
category.c Add portable dumper 2019-01-15 17:37:36 -05:00
category.h Rename integerp->fixnum, etc, in preparation for bignums 2018-07-12 22:12:27 -06:00
ccl.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
ccl.h Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
ChangeLog.1 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.2 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.3 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.4 ; Fix some trivial doc typos 2019-01-12 14:47:33 -08:00
ChangeLog.5 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.6 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.7 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.8 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.9 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.10 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.11 ; Fix some trivial doc typos 2019-01-12 14:47:33 -08:00
ChangeLog.12 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.13 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
character.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
character.h More macro renamings for bignum 2018-08-07 18:08:53 -06:00
charset.c Fix 'define-charset' after dumping with pdumper 2019-03-17 17:49:37 +02:00
charset.h Fix 'define-charset' after dumping with pdumper 2019-03-17 17:49:37 +02:00
chartab.c Add make_vector and make_nil_vector 2018-12-09 00:23:55 -08:00
cm.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
cm.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
cmds.c Widen modiff counts to avoid wraparound 2019-01-31 10:31:43 -08:00
coding.c Fix names of functions in last commit 2019-04-28 17:14:39 +03:00
coding.h Fix names of functions in last commit 2019-04-28 17:14:39 +03:00
commands.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
composite.c Rename generic x_* procedures in xdisp.c 2019-04-26 16:10:49 -06:00
composite.h Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
conf_post.h Disable __attribute__ ((cold)) on MinGW 2019-04-29 12:27:46 -07:00
COPYING Merge from Gnulib 2017-10-01 18:31:10 -07:00
cygw32.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
cygw32.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
data.c Replace ‘/* FALLTHROUGH! */’ with ‘break;’ 2019-04-29 08:40:01 -07:00
dbusbind.c Simplify xd_signature to pacify GCC 9 2019-05-03 12:17:31 -07:00
decompress.c Allow partial decompression (Bug#33133) 2019-04-02 22:02:32 -04:00
deps.mk Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
dired.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
dispextern.h Clean up and simplify image-type setup 2019-05-17 18:43:28 -07:00
dispnew.c Refactor update_window_begin and update_window_end hooks 2019-05-02 21:16:43 -06:00
disptab.h Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
dmpstruct.awk Bring back dmpstruct.h 2019-04-10 21:00:47 -07:00
doc.c Move definition of Lisp_Module_Function to emacs-module.c. 2019-04-24 23:12:35 +02:00
doprnt.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
dosfns.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
dosfns.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
dynlib.c Avoid compiler warning in dynlib.c 2019-04-26 10:39:24 +03:00
dynlib.h Avoid suppressing -Wcast-function-type warning. 2019-05-05 01:56:15 +02:00
editfns.c Merge from origin/emacs-26 2019-04-10 09:07:16 -07:00
emacs-icon.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
emacs-module.c Avoid suppressing -Wcast-function-type warning. 2019-05-05 01:56:15 +02:00
emacs-module.h.in Export major version of latest Emacs supported by emacs-module.h. 2019-04-28 20:08:25 +02:00
emacs.c Clean up and simplify image-type setup 2019-05-17 18:43:28 -07:00
emacsgtkfixed.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
emacsgtkfixed.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
epaths.in Update copyright year to 2019 2019-01-01 01:01:13 +00:00
eval.c * lisp/custom.el: Avoid adding vars to load-history multiple times 2019-05-06 12:37:00 -04:00
fileio.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
filelock.c Encode the FILENAME argument of 'file-locked-p' 2019-04-06 17:53:30 +03:00
firstfile.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
floatfns.c Fix logb on zero, infinite, NaN args 2019-01-06 16:25:40 -08:00
fns.c Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
font.c Revert "Remove font.c code commented out for a decade" 2019-04-24 09:38:03 +03:00
font.h * src/font.h: Fix commentary. 2019-03-04 00:05:04 -08:00
fontset.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
fontset.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
frame.c Fix --with-x-toolkit=no build breakage 2019-04-27 15:27:36 +09:00
frame.h Fix --with-x-toolkit=no build breakage 2019-04-27 15:27:36 +09:00
fringe.c Add portable dumper 2019-01-15 17:37:36 -05:00
ftcrfont.c Avoid artifacts in ftx and ftcr font backend drivers 2019-05-14 10:17:16 +09:00
ftfont.c Avoid artifacts in ftx and ftcr font backend drivers 2019-05-14 10:17:16 +09:00
ftfont.h Use bitmap strikes as fallbacks for ftcr font backend 2019-04-20 12:43:45 +09:00
ftxfont.c Add portable dumper 2019-01-15 17:37:36 -05:00
getpagesize.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
gfilenotify.c Remove some unnecessary #ifdef directives 2019-04-23 13:51:57 -07:00
gmalloc.c Add portable dumper 2019-01-15 17:37:36 -05:00
gnutls.c Simplify list creation in C code 2019-03-04 00:05:04 -08:00
gnutls.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
gtkutil.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
gtkutil.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
image.c Clean up and simplify image-type setup 2019-05-17 18:43:28 -07:00
indent.c Merge from origin/emacs-26 2019-05-14 17:18:18 -07:00
indent.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
inotify.c Remove some unnecessary #ifdef directives 2019-04-23 13:51:57 -07:00
insdel.c Make combine-after-change-calls work in the common case again 2019-05-06 14:58:20 -04:00
intervals.c Pacify GCC 9.1 2019-05-07 12:28:10 -07:00
intervals.h Maintain interval ->position fields correctly in update_interval 2019-03-01 17:37:56 +00:00
json.c Fix names of functions in last commit 2019-04-28 17:14:39 +03:00
keyboard.c Clarify what constitutes an event (bug#35238) 2019-05-07 18:00:20 +01:00
keyboard.h Use bool for menu_items_inuse 2019-03-15 18:25:24 -07:00
keymap.c Simplify list creation in C code 2019-03-04 00:05:04 -08:00
keymap.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
kqueue.c Remove some unnecessary #ifdef directives 2019-04-23 13:51:57 -07:00
lastfile.c Rename CANNOT_DUMP to HAVE_UNEXEC 2019-02-01 13:05:39 -08:00
lcms.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
lisp.h Clean up and simplify image-type setup 2019-05-17 18:43:28 -07:00
lread.c Tune reading of radix integers 2019-05-15 10:27:55 -07:00
macfont.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
macfont.m Merge from origin/emacs-26 2019-04-29 09:12:53 -07:00
macros.c DEFVAR_INT variables are now intmax_t 2019-02-27 01:23:30 -08:00
macros.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
macuvs.h ; * src/macuvs.h: Regenerate with new header. 2018-12-15 15:24:31 -08:00
Makefile.in Use pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346) 2019-04-21 14:16:16 +03:00
marker.c * src/marker.c (buf_bytepos_to_charpos): Re-add the CHAR_HEAD_P assertion 2019-05-07 13:41:54 -04:00
menu.c Don't link libXft when using cairo 2019-04-24 12:31:37 +09:00
menu.h Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
mini-gmp-emacs.c Update more copyright years 2018-12-31 18:47:22 -08:00
mini-gmp.c Update from GMP 2019-04-28 13:17:30 -07:00
mini-gmp.h Update from GMP 2019-04-28 13:17:30 -07:00
minibuf.c ; * src/minibuf.c (Fread_buffer): Doc fix. (Bug#35361) 2019-05-04 12:47:03 +03:00
module-env-25.h Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
module-env-26.h
module-env-27.h Add module functions to convert from and to big integers. 2019-04-24 12:53:54 +02:00
msdos.c Merge from origin/emacs-26 2019-04-17 09:32:40 -07:00
msdos.h Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
nsfns.m Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
nsfont.m Add portable dumper 2019-01-15 17:37:36 -05:00
nsgui.h Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
nsimage.m Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
nsmenu.m Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
nsselect.m Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
nsterm.h Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
nsterm.m Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
pdumper.c Port to Oracle Developer Studio 12.6 2019-04-25 13:23:07 -07:00
pdumper.h Reindent pdumper per usual Emacs style 2019-03-11 11:08:14 -07:00
print.c Use simpler way to print function pointers 2019-05-05 17:40:55 -07:00
process.c Remove :stop key from make-process. 2019-04-19 14:03:16 +02:00
process.h Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
profiler.c DEFVAR_INT variables are now intmax_t 2019-02-27 01:23:30 -08:00
ptr-bounds.h Update more copyright years 2018-12-31 18:47:22 -08:00
puresize.h Mark _Noreturn error functions as cold 2019-04-18 00:35:18 -07:00
ralloc.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
README Update copyright year to 2019 2019-01-01 01:01:13 +00:00
regex-emacs.c Tweak re_registers allocation 2019-03-27 21:24:26 -07:00
regex-emacs.h Tweak re_registers allocation 2019-03-27 21:24:26 -07:00
region-cache.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
region-cache.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
scroll.c DEFVAR_INT variables are now intmax_t 2019-02-27 01:23:30 -08:00
search.c Simplify thread initialization and GC 2019-04-24 13:37:15 -07:00
sheap.c Add portable dumper 2019-01-15 17:37:36 -05:00
sheap.h Add portable dumper 2019-01-15 17:37:36 -05:00
sound.c Mark _Noreturn error functions as cold 2019-04-18 00:35:18 -07:00
syntax.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
syntax.h Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
sysdep.c Mark _Noreturn error functions as cold 2019-04-18 00:35:18 -07:00
sysselect.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
syssignal.h Prefer static to extern where either will do 2019-01-31 15:33:21 -08:00
sysstdio.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
systhread.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
systhread.h Improve wur coverage on older GCCs 2019-04-22 12:25:53 -07:00
systime.h Fix return type of make_time. 2019-04-24 13:17:53 +02:00
systty.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
syswait.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
term.c Add terminal hook defined_color_hook 2019-04-26 16:55:39 -06:00
termcap.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
termchar.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
termhooks.h Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
terminal.c Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
terminfo.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
termopts.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
textprop.c Mark _Noreturn error functions as cold 2019-04-18 00:35:18 -07:00
thread.c Simplify thread initialization and GC 2019-04-24 13:37:15 -07:00
thread.h Simplify thread initialization and GC 2019-04-24 13:37:15 -07:00
timefns.c Fix decode-time/encode-time roundtrip on macOS 2019-04-30 10:47:17 -07:00
tparam.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
tparam.h Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
undo.c DEFVAR_INT variables are now intmax_t 2019-02-27 01:23:30 -08:00
unexaix.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
unexcoff.c Rename CANNOT_DUMP to HAVE_UNEXEC 2019-02-01 13:05:39 -08:00
unexcw.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
unexec.h
unexelf.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
unexhp9k800.c
unexmacosx.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
unexsol.c
unexw32.c Clean up memory allocation and unexec support on MS-Windows 2019-01-18 17:04:00 +02:00
vm-limit.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
w16select.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
w32.c Fix 'load-average' on MS-Windows 2019-05-07 17:48:32 +03:00
w32.h Add portable dumper 2019-01-15 17:37:36 -05:00
w32common.h Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
w32console.c Fix -nw sessions on MS-Windows broken by a recent commit 2019-04-27 11:34:05 +03:00
w32cygwinx.c Simplify list creation in C code 2019-03-04 00:05:04 -08:00
w32fns.c Add terminal hook defined_color_hook 2019-04-26 16:55:39 -06:00
w32font.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
w32font.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
w32gui.h Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
w32heap.c Rename CANNOT_DUMP to HAVE_UNEXEC 2019-02-01 13:05:39 -08:00
w32heap.h Clean up memory allocation and unexec support on MS-Windows 2019-01-18 17:04:00 +02:00
w32inevt.c Add prefixes to some window system-dependent procedures 2019-04-26 16:10:49 -06:00
w32inevt.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
w32menu.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
w32notify.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
w32proc.c Avoid compiler warning in w32proc.c 2019-03-23 10:31:06 +02:00
w32reg.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
w32select.c Fix misuses of NULL when talking about the NUL character 2019-03-21 23:55:28 -04:00
w32select.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
w32term.c Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
w32term.h Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
w32uniscribe.c Merge from origin/emacs-26 2019-01-18 07:50:47 -08:00
w32xfns.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
widget.c Fix uninit var in widget.c 2019-04-15 20:53:36 -07:00
widget.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
widgetprv.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
window.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
window.h Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
xdisp.c Remove display member of glyph_string 2019-05-10 17:26:12 -06:00
xfaces.c ; * src/xfaces.c (merge_face_ref): Improve commentary. 2019-05-04 09:52:11 +03:00
xfns.c Add terminal hook defined_color_hook 2019-04-26 16:55:39 -06:00
xfont.c Remove display member of glyph_string 2019-05-10 17:26:12 -06:00
xftfont.c Unify three font info structures 2019-02-08 09:05:11 +01:00
xgselect.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
xgselect.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
xmenu.c Use bool for menu_items_inuse 2019-03-15 18:25:24 -07:00
xml.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
xrdb.c Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
xselect.c DEFVAR_INT variables are now intmax_t 2019-02-27 01:23:30 -08:00
xsettings.c Don't link libXft when using cairo 2019-04-24 12:31:37 +09:00
xsettings.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
xsmfns.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
xterm.c Convert Free_Pixmap macro into terminal hook 2019-05-10 17:26:12 -06:00
xterm.h Rename x_highlight_frame property to highlight_frame 2019-04-26 16:55:39 -06:00
xwidget.c Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07:00
xwidget.h Allow gap before first non-Lisp pseudovec member 2019-04-08 13:01:21 -07: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-2019 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/>.