emacs/src
Eli Zaretskii 5940ac6330 Fix assertion violations due to non-ASCII text in menus
* src/xdisp.c (tool_bar_height, redisplay_tool_bar)
(display_menu_bar): If the Lisp string to be displayed in the
menu-bar or tool-bar window is multibyte, tell the display
engine to treat it as multibyte, instead of relying on the
initial determination by init_iterator (which is based on the
multibyteness of the current buffer).  (Bug#37385)
2019-09-13 10:47:28 +03:00
..
bitmaps
.dbxinit
.gdbinit Replace Vdead with tagged pointer 2019-07-12 22:29:57 -07:00
alloc.c Improve checking of pdump load failures 2019-09-11 11:27:14 -07:00
atimer.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07:00
atimer.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
bidi.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
bignum.c Be more careful about pointers to bignum vals 2019-08-21 00:11:45 -07:00
bignum.h Be more careful about pointers to bignum vals 2019-08-21 00:11:45 -07:00
blockinput.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
buffer.c Take last_per_buffer_idx private 2019-09-03 22:46:11 -07:00
buffer.h Prefer functions to macros in buffer.h 2019-09-03 22:46:12 -07:00
bytecode.c Avoid overexposing fixnums for hash codes 2019-07-22 21:28:18 -07:00
callint.c Doc clarification for call-interactively 2019-08-17 14:17:47 -07:00
callproc.c Omit duplicate test of current directory 2019-09-11 14:24:29 -07:00
casefiddle.c Remove INT_ADD_WRAPV bug workarounds 2019-08-14 18:24:33 -07:00
casetab.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
category.c Simplify hashfn/cmpfn calling convention 2019-07-20 20:13:46 -07:00
category.h Rename integerp->fixnum, etc, in preparation for bignums 2018-07-12 22:12:27 -06:00
ccl.c Fix some fixnum overflow problems in ccl.c 2019-08-15 02:17:02 -07: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 author/maintainer info 2019-05-26 01:00:16 -07:00
ChangeLog.8 Update author/maintainer info 2019-05-26 01:00:16 -07:00
ChangeLog.9 Update copyright year to 2019 2019-01-01 01:01:13 +00:00
ChangeLog.10 Update author/maintainer info 2019-05-26 01:00:16 -07: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 Remove fixnum restriction on some display vars 2019-05-22 13:29:13 -07:00
charset.c Simplify hashfn/cmpfn calling convention 2019-07-20 20:13:46 -07:00
charset.h Fix 'define-charset' after dumping with pdumper 2019-03-17 17:49:37 +02:00
chartab.c Do not alter match data in Fcapitalize etc. 2019-07-09 13:11:45 -07:00
cm.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07: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 a recent change in coding.c 2019-08-25 11:08:11 +03:00
coding.h Fix a recent change in coding.c 2019-08-25 11:08:11 +03:00
commands.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
composite.c Allow Zs characters to be composed 2019-09-07 12:19:06 +03:00
composite.h Merge branch 'master' into harfbuzz 2019-04-27 18:33:39 +09:00
conf_post.h Use plain ‘static’ for Emacs C inline functions 2019-09-04 23:15:04 -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 Speed up % and mod with fixnum denom 2019-08-24 15:55:09 -07:00
dbusbind.c Reset dbus registered buses on dump load 2019-09-11 10:19: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 file name encoding when open_directory signals 2019-09-12 00:27:38 -07:00
dispextern.h Fix initialization of user-defined fringe bitmaps in daemon mode 2019-08-13 17:49:51 +03:00
dispnew.c Fix two mouse drag and drop issues (Bug#28620, Bug#36269) 2019-08-04 09:21:18 +02: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 Improve error reporting for DOC file problems 2019-09-11 23:46:58 -07:00
doprnt.c Remove printmax_t etc. 2019-07-07 12:33:35 -07:00
dosfns.c Improve XFIXNUM cleanup a bit 2019-06-27 12:35:09 -07: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 Remove INT_ADD_WRAPV bug workarounds 2019-08-14 18:24:33 -07:00
emacs-icon.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
emacs-module.c Ignore pending_signals when checking for quits. 2019-08-07 18:16:36 +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 Improve checking of pdump load failures 2019-09-11 11:27:14 -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 Attempt to fix assertion violation in eval.c 2019-08-18 17:46:19 +03:00
fileio.c Improve checking of pdump load failures 2019-09-11 11:27:14 -07:00
filelock.c Remove printmax_t etc. 2019-07-07 12:33:35 -07:00
firstfile.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
floatfns.c ; * src/floatfns.c: Don't use non-ASCII characters in comments. 2019-08-31 09:58:45 +03:00
fns.c extern function cleanup 2019-08-24 15:55:08 -07:00
font.c Set inhibit-compacting-font-caches to t by default on MS-Windows 2019-09-07 12:26:08 +03:00
font.h Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02:00
fontset.c More XFIXNUM fixes 2019-07-01 21:12:55 +03:00
fontset.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
frame.c ; Improve a recent change. 2019-08-25 10:10:01 +03:00
frame.h Avoid backslash-newline-newline in source code 2019-05-22 23:59:36 -07:00
fringe.c Fix initialization of user-defined fringe bitmaps in daemon mode 2019-08-13 17:49:51 +03:00
ftcrfont.c Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02:00
ftfont.c extern function cleanup 2019-08-24 15:55:08 -07:00
ftfont.h extern function cleanup 2019-08-24 15:55:08 -07:00
ftxfont.c Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02:00
getpagesize.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
gfilenotify.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07:00
gmalloc.c Remove no-longer-needed fflushes of stderr 2019-06-20 00:41:13 -07:00
gnutls.c Port :safe-renegotiation test to GnuTLS < 3.6.3 2019-09-05 11:43:15 -07:00
gnutls.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
gtkutil.c Always set the state of the "Show hidden files" gtk button 2019-07-28 12:49:30 +02:00
gtkutil.h Introduce Emacs_Color struct and typedef 2019-05-19 19:50:32 -06:00
hbfont.c More XFIXNUM fixes 2019-07-01 21:12:55 +03:00
image.c Fix bug with non-paletted transparent PNGs 2019-08-25 16:36:15 -07:00
indent.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07:00
indent.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
inotify.c Fix the MS-Windows build broken by recent changes 2019-08-04 19:38:08 +03:00
insdel.c * src/insdel.c (insert_from_gap_1): New fun, extracted from insert_from_gap. 2019-07-02 16:04:16 -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 Adjust remaining uses of NILP (HASH_HASH). 2019-07-26 16:55:59 -04:00
keyboard.c * src/keyboard.c (parse_tool_bar_item): Use CAPTION when HELP is unavailable 2019-08-27 01:38:19 +03:00
keyboard.h Use bool for menu_items_inuse 2019-03-15 18:25:24 -07:00
keymap.c Remove no-longer-needed workaround for GC bug 2019-08-21 22:30:18 -07:00
keymap.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
kqueue.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -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 Improve checking of pdump load failures 2019-09-11 11:27:14 -07:00
lread.c Give a better error message when reading invalid "\unicode" escapes. 2019-08-23 06:20:41 +02:00
macfont.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
macfont.m Simplify hashfn/cmpfn calling convention 2019-07-20 20:13:46 -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 Bring macuvs.h back under Git control 2019-06-22 11:41:49 -07:00
Makefile.in Remove stale .pdmp files with ‘make clean’ 2019-08-03 14:13:45 -07: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 Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07: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 mini-gmp 2019-08-20 18:11:34 -07:00
mini-gmp.h Update from GMP 2019-04-28 13:17:30 -07:00
minibuf.c Signal `invalid-read-syntax' for "trailing garbage" 2019-08-23 02:24:55 +02: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 emacs-module.h: Create emacs_env_26 2017-06-17 19:16:14 +02:00
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 Introduce Emacs_Rectangle struct and typedef 2019-05-19 19:50:32 -06:00
nsfns.m Rename generic x_* identifiers 2019-04-26 16:54:17 -06:00
nsfont.m Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02:00
nsgui.h Replace XChar2b with unsigned in all font backends 2019-05-19 19:50:32 -06:00
nsimage.m Use correct colorspace for XBM images 2019-07-14 17:41:19 +01:00
nsmenu.m Avoid some strlen work, primarily via strnlen 2019-06-25 14:55:08 -07:00
nsselect.m Fix some deprecation notices on macOS 10.14 2019-05-21 20:57:33 +01:00
nsterm.h Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
nsterm.m Fix two mouse drag and drop issues (Bug#28620, Bug#36269) 2019-08-04 09:21:18 +02:00
pdumper.c Improve checking of pdump load failures 2019-09-11 11:27:14 -07:00
pdumper.h Improve checking of pdump load failures 2019-09-11 11:27:14 -07:00
print.c Adjust remaining uses of NILP (HASH_HASH). 2019-07-26 16:55:59 -04:00
process.c ; Fix last change. 2019-08-23 15:30:45 +03:00
process.h fixup! Implement hostname->ip lookup function 2019-08-07 13:55:38 +02:00
profiler.c * src/profiler.c: Leave key hashslots as Qunbound (bug#37382) 2019-09-12 08:25:36 -04: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 Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
regex-emacs.h Tweak re_registers allocation 2019-03-27 21:24:26 -07:00
region-cache.c Minor putc tweaks 2019-06-20 00:41:13 -07:00
region-cache.h Update copyright year to 2019 2019-01-01 01:01:13 +00:00
scroll.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07:00
search.c Fix rare undefined behaviors in replace-match 2019-08-03 13:00:27 -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 Don't worry about pre-1.0.0 alsa-lib include 2019-08-28 11:35:19 -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 extern function cleanup 2019-08-24 15:55:08 -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 extern function cleanup 2019-08-24 15:55:08 -07: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 * src/systime.h (hz): #undef to work around AIX build issue. 2019-09-03 23:47:19 -07: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 Fix two mouse drag and drop issues (Bug#28620, Bug#36269) 2019-08-04 09:21:18 +02: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 Introduce Emacs_Pixmap typedef 2019-05-19 19:50:32 -06:00
terminal.c Set up defined_color_hook for the initial frame 2019-08-10 11:45:41 +03: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 Update current buffer when changing text properties 2019-07-06 19:20:53 +03:00
thread.c Avoid assertion violation when comparing with main-thread 2019-06-10 12:52:31 +02:00
thread.h Simplify thread initialization and GC 2019-04-24 13:37:15 -07:00
timefns.c Tweak time arithmetic performance 2019-08-24 15:55:09 -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 Double undo limits 2019-08-10 19:08:31 +02:00
unexaix.c Improve pdumper doc; say unexec is deprecated 2019-07-23 09:23:20 -07:00
unexcoff.c Avoid some unnecessary stdio.h includes 2019-07-08 17:50:39 -07:00
unexcw.c Merge from origin/emacs-26 2018-12-31 17:57:29 -08:00
unexec.h
unexelf.c Remove printmax_t etc. 2019-07-07 12:33:35 -07:00
unexhp9k800.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
unexmacosx.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07: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 Avoid a compilation warning in w32.c 2019-08-23 16:00:25 +03:00
w32.h Fix MS-Windows build as followup to pdumper executable lookup 2019-06-24 20:06:34 +03:00
w32common.h Move common HarfBuzz code to a common file hbfont.c 2019-06-01 12:53:41 +03: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 Fix initialization of user-defined fringe bitmaps in daemon mode 2019-08-13 17:49:51 +03:00
w32font.c Fix the handling of font backend supersedence on MS-Windows 2019-06-18 20:21:40 +03:00
w32font.h Replace XChar2b with unsigned in all font backends 2019-05-19 19:50:32 -06:00
w32gui.h Replace XChar2b with unsigned in all font backends 2019-05-19 19:50:32 -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 Fix handling of -xrm on MS-Windows broken by recent commits 2019-05-31 11:32:48 +03: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 Fix initialization of user-defined fringe bitmaps in daemon mode 2019-08-13 17:49:51 +03:00
w32term.h Support native image transforms on MS-Windows 2019-06-29 14:51:41 +03:00
w32uniscribe.c Fix HarfBuzz support on MS-Windows 2019-07-25 19:47:56 +03:00
w32xfns.c Update copyright year to 2019 2019-01-01 01:01:13 +00:00
widget.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -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 Handle persistence of windows' scroll bar and fringes settings (Bug#36193) 2019-07-22 09:19:18 +02:00
window.h Handle persistence of windows' scroll bar and fringes settings (Bug#36193) 2019-07-22 09:19:18 +02:00
xdisp.c Fix assertion violations due to non-ASCII text in menus 2019-09-13 10:47:28 +03:00
xfaces.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
xfns.c Fix doc strings modified in recent changes 2019-08-09 10:02:23 +03:00
xfont.c Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02:00
xftfont.c Rename font_driver member close -> close_font 2019-07-09 18:40:57 +02: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 Use fewer locks when accessing stdio 2019-07-08 17:50:39 -07:00
xsettings.c Fix failure of setting default face attribute in init script (Bug#36284) 2019-06-20 11:58:36 +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 Check instead of relying on NOTREACHED 2019-08-31 11:01:46 -07:00
xterm.h Fix blank tooltips on cairo (Bug#36298) 2019-06-21 09:25:47 +09:00
xwidget.c Use fewer locks when accessing stdio 2019-07-08 17:50:39 -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/>.