emacs/src
Noam Postavsky 13c6f1d185 Use expanded stack during regex matches
While the stack is increased in main(), to allow the regex stack
allocation to use alloca we also need to modify regex.c to actually take
advantage of the increased stack, and not limit stack allocations to
SAFE_ALLOCA bytes.

* src/regex.c (MATCH_MAY_ALLOCATE): Remove obsolete comment about
allocations in signal handlers which no longer happens and correct
description about when and why MATCH_MAY_ALLOCATE should be defined.
(emacs_re_safe_alloca): New variable.
(REGEX_USE_SAFE_ALLOCA): Use it as the limit of stack allocation instead
of MAX_ALLOCA.
(emacs_re_max_failures): Rename from `re_max_failures' to avoid
confusion with glibc's `re_max_failures'.
* src/emacs.c (main): Increase the amount of fixed 'extra' bytes we add
to the stack.  Instead of changing emacs_re_max_failures based on the
new stack size, just change emacs_re_safe_alloca; emacs_re_max_failures
remains constant regardless, since if we run out stack space SAFE_ALLOCA
will fall back to heap allocation.

Co-authored-by: Eli Zaretskii <eliz@gnu.org>
2017-01-08 18:45:52 -05:00
..
bitmaps
.dbxinit
.gdbinit Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
alloc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
atimer.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
atimer.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
bidi.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
blockinput.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
buffer.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
buffer.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
bytecode.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
callint.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
callproc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
casefiddle.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
casetab.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
category.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
category.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ccl.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ccl.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ChangeLog.1 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.2 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.3 Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ChangeLog.4 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.5 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.6 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.7 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.8 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.9 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.10 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.11 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.12 Update copyright year to 2017 2016-12-31 19:42:26 -08:00
ChangeLog.13 Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
character.c Remove unnecessary blankp code 2017-01-08 10:07:00 -08:00
character.h Add support for Unicode whitespace in [:blank:] 2017-01-06 20:12:48 +01:00
charset.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
charset.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
chartab.c Fix setting a range of char-table slots in a singular case 2016-06-19 18:25:17 +03:00
cm.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
cm.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
cmds.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
coding.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
coding.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
commands.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
composite.c Fix compilation --without-x 2017-01-02 18:55:27 +02:00
composite.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
conf_post.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
COPYING
cygw32.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
cygw32.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
data.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
dbusbind.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
decompress.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
deps.mk Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dired.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
dispextern.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
dispnew.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
disptab.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
doc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
doprnt.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
dosfns.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dosfns.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
dynlib.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
dynlib.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
editfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
emacs-icon.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
emacs-module.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
emacs-module.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
emacs.c Use expanded stack during regex matches 2017-01-08 18:45:52 -05:00
emacsgtkfixed.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
emacsgtkfixed.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
epaths.in Update copyright year to 2017 2016-12-31 19:42:26 -08:00
eval.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
fileio.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
filelock.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
firstfile.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
floatfns.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
fns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
font.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
font.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
fontset.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
fontset.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
frame.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
frame.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
fringe.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ftcrfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ftfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ftfont.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftxfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
getpagesize.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
gfilenotify.c ; Fix typo 2017-01-01 12:59:58 +01:00
gmalloc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
gnutls.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
gnutls.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
gtkutil.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
gtkutil.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
image.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
indent.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
indent.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
inotify.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
insdel.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
intervals.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
intervals.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
keyboard.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
keyboard.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
keymap.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
keymap.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
kqueue.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
lastfile.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
lisp.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
lread.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
macfont.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
macfont.m Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
macros.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
macros.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
macuvs.h
Makefile.in Remove @SET_MAKE@ from manually-maintained files 2017-01-07 18:15:37 -08:00
marker.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
menu.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
menu.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
minibuf.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
msdos.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
msdos.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsfns.m Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
nsfont.m Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
nsgui.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsimage.m Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
nsmenu.m Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
nsselect.m Update copyright year to 2017 2016-12-31 19:42:26 -08:00
nsterm.h Revert "Rework NS event handling (bug#25265)" 2017-01-04 21:00:52 +00:00
nsterm.m Remove apploopnr 2017-01-08 21:29:35 +00:00
print.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
process.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
process.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
profiler.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
puresize.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
ralloc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
README Update copyright year to 2017 2016-12-31 19:42:26 -08:00
regex.c Use expanded stack during regex matches 2017-01-08 18:45:52 -05:00
regex.h Use expanded stack during regex matches 2017-01-08 18:45:52 -05:00
region-cache.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
region-cache.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
scroll.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
search.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sheap.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sheap.h Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
sound.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
syntax.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
syntax.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
sysdep.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sysselect.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
syssignal.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
sysstdio.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
systhread.c Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
systhread.h Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
systime.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
systty.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
syswait.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
term.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
termcap.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
termchar.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
termhooks.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
terminal.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
terminfo.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
termopts.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
textprop.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
thread.c Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
thread.h Update copyright year to 2017 in master 2017-01-01 01:48:59 -08:00
tparam.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
tparam.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
undo.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexaix.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexcoff.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
unexcw.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
unexec.h Make src headers idempotent and standalone 2015-10-16 14:56:11 -07:00
unexelf.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
unexhp9k800.c Consistently use min and max macros from lisp.h. 2014-10-03 08:35:10 +04:00
unexmacosx.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
unexsol.c Include-file cleanup for src directory 2015-10-20 18:35:53 -07:00
unexw32.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
vm-limit.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w16select.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32.c Generate nt/gnulib.mk from lib/gnulib.mk 2017-01-03 17:46:40 +02:00
w32.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32common.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32console.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32fns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32font.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32font.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32gui.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32heap.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32heap.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32inevt.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32inevt.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32menu.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32notify.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32proc.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32reg.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32select.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32select.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
w32term.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32term.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32uniscribe.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
w32xfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
widget.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
widget.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
widgetprv.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
window.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
window.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xdisp.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xfaces.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xftfont.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xgselect.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xgselect.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xmenu.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xml.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xrdb.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xselect.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xsettings.c Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xsettings.h Update copyright year to 2017 2016-12-31 19:42:26 -08:00
xsmfns.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xterm.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xterm.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xwidget.c Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
xwidget.h Merge from origin/emacs-25 2017-01-01 01:10:47 -08: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-2017 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 <http://www.gnu.org/licenses/>.