summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Completion/X/_x_display2
-rw-r--r--Src/exec.c13
-rw-r--r--Src/glob.c4
-rw-r--r--acconfig.h83
-rw-r--r--configure.in10
6 files changed, 113 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 678ee52e4..8cd9956f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-04-06 Clint Adams <schizo@debian.org>
+ * Felix Rosencrantz: 10564: Completion/X/_x_display:
+ typo in _wanted.
+ * 10565: acconfig.h, configure.in, Src/exec.c:
+ add configure option for function depth limit.
+ * 10566: Src/glob.c: change invocation of patgetglobflags
+ to use two arguments.
+
2000-04-06 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
* 10547: Doc/Zsh/expn.yo, Misc/globtests, Src/pattern.c,
diff --git a/Completion/X/_x_display b/Completion/X/_x_display
index e3f9af479..94c3fa9a4 100644
--- a/Completion/X/_x_display
+++ b/Completion/X/_x_display
@@ -1,3 +1,3 @@
#autoload
-_hosts -S ':0 ' -r :
+_wanted displays && _hosts -S ':0 ' -r :
diff --git a/Src/exec.c b/Src/exec.c
index 0dffaf4e2..79dca611d 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -3251,6 +3251,9 @@ doshfunc(char *name, Eprog prog, LinkList doshargs, int flags, int noreturnval)
char saveopts[OPT_SIZE], *oldscriptname = NULL, *fname = dupstring(name);
int obreaks;
struct funcstack fstack;
+#ifdef MAX_FUNCTION_DEPTH
+ static int funcdepth;
+#endif
pushheap();
@@ -3300,6 +3303,13 @@ doshfunc(char *name, Eprog prog, LinkList doshargs, int flags, int noreturnval)
argzero = ztrdup(argzero);
}
}
+#ifdef MAX_FUNCTION_DEPTH
+ if(++funcdepth > MAX_FUNCTION_DEPTH)
+ {
+ zerr("maximum nested function level reached", NULL, 0);
+ return;
+ }
+#endif
fstack.name = dupstring(name);
fstack.prev = funcstack;
funcstack = &fstack;
@@ -3323,6 +3333,9 @@ doshfunc(char *name, Eprog prog, LinkList doshargs, int flags, int noreturnval)
}
runshfunc(prog, wrappers, fstack.name);
funcstack = fstack.prev;
+#ifdef MAX_FUNCTION_DEPTH
+ --funcdepth;
+#endif
if (retflag) {
retflag = 0;
breaks = obreaks;
diff --git a/Src/glob.c b/Src/glob.c
index 663e0167f..623a50706 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -698,6 +698,8 @@ parsecomplist(char *instr)
static Complist
parsepat(char *str)
{
+ long assert;
+
patcompstart();
/*
* Check for initial globbing flags, so that they don't form
@@ -707,7 +709,7 @@ parsepat(char *str)
(isset(KSHGLOB) && *str == '@' && str[1] == Inpar &&
str[2] == Pound)) {
str += (*str == Inpar) ? 2 : 3;
- if (!patgetglobflags(&str))
+ if (!patgetglobflags(&str, &assert))
return NULL;
}
diff --git a/acconfig.h b/acconfig.h
index c74d33966..92ae69422 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -73,6 +73,9 @@
/* Define to 1 if you have RFS superroot directory. */
#undef HAVE_SUPERROOT
+/* Define to 1 if you need to use the native getcwd */
+#undef USE_GETCWD
+
/* Define to the path of the /dev/fd filesystem */
#undef PATH_DEV_FD
@@ -130,6 +133,9 @@
/* Define if your system's struct direct has a member named d_stat. */
#undef HAVE_STRUCT_DIRECT_D_STAT
+/* Define if your system's struct sockaddr_in6 has a member named sin6_scope_id. */
+#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
+
/* Define to be a string corresponding the vendor of the machine */
#undef VENDOR
@@ -155,6 +161,20 @@
* hash tables. This turns on the `hashinfo' builtin. */
#undef ZSH_HASH_DEBUG
+/* Undefine this if you don't want to get a restricted shell *
+ * when zsh is exec'd with basename that starts with r. *
+ * By default this is defined. */
+#undef RESTRICTED_R
+
+/* Define for Maildir support */
+#undef MAILDIR_SUPPORT
+
+/* Define for function depth limits */
+#undef MAX_FUNCTION_DEPTH
+
+/* Define if you want locale features. By default this is defined. */
+#undef CONFIG_LOCALE
+
/* Define to 1 if your termcap library has the ospeed variable */
#undef HAVE_OSPEED
/* Define to 1 if you have ospeed, but it is not defined in termcap.h */
@@ -181,9 +201,6 @@
/* Define to 1 if struct timezone is defined by a system header */
#undef HAVE_STRUCT_TIMEZONE
-/* Define if your system's typeahead disappears from the shell editor. */
-#undef CLOBBERS_TYPEAHEAD
-
/* Define to 1 if there is a prototype defined for brk() on your system */
#undef HAVE_BRK_PROTO
@@ -193,13 +210,22 @@
/* Define to 1 if there is a prototype defined for ioctl() on your system */
#undef HAVE_IOCTL_PROTO
+/* Define to 1 if there is a prototype defined for mknod() on your system */
+#undef HAVE_MKNOD_PROTO
+
+/* Define to 1 if select() is defined in <sys/socket.h>, ie BeOS R4.51*/
+#undef SELECT_IN_SYS_SOCKET_H
+
/* Define to 1 if system has working FIFO's */
#undef HAVE_FIFOS
-/* Define to 1 if struct rlimit use quad_t */
+/* Define to 1 if struct rlimit uses quad_t */
#undef RLIM_T_IS_QUAD_T
-/* Define to 1 if rlimit use unsigned */
+/* Define to 1 if struct rlimit uses long long */
+#undef RLIM_T_IS_LONG_LONG
+
+/* Define to 1 if rlimit uses unsigned */
#undef RLIM_T_IS_UNSIGNED
/* Define to the type used in struct rlimit */
@@ -208,6 +234,21 @@
/* Define to 1 if /bin/sh does not interpret \ escape sequences */
#undef SH_USE_BSD_ECHO
+/* Define to 1 if system has working link() */
+#undef HAVE_LINK
+
+/* Define to 1 if kill(pid, 0) doesn't return ESRCH, ie BeOS R4.51 */
+#undef BROKEN_KILL_ESRCH
+
+/* Define to 1 if sigsuspend() is broken, ie BeOS R4.51 */
+#undef BROKEN_POSIX_SIGSUSPEND
+
+/* Define to 1 if getpwnam() is faked, ie BeOS R4.51 */
+#undef GETPWNAM_FAKED
+
+/* Define to 1 if tcsetpgrp() doesn't work, ie BeOS R4.51 */
+#undef BROKEN_TCSETPGRP
+
/* Define to 1 if an underscore has to be prepended to dlsym() argument */
#undef DLSYM_NEEDS_UNDERSCORE
@@ -219,3 +260,35 @@
/* Define to 1 if you want to use dynamically loaded modules */
#undef DYNAMIC
+
+/* Define to 1 if you want to use dynamically loaded modules on AIX */
+#undef AIXDYNAMIC
+
+/* Define to 1 if you want to use dynamically loaded modules on HPUX 10 */
+#undef HPUXDYNAMIC
+
+/* Define to `unsigned long' if <sys/types.h> doesn't define. */
+#undef ino_t
+
+/*
+ * Definitions used when a long is less than eight byte, to try to
+ * provide some support for eight byte operations.
+ *
+ * Note that ZSH_64_BIT_TYPE, OFF_T_IS_64_BIT, INO_T_IS_64_BIT do *not* get
+ * defined if long is already 64 bits, since in that case no special handling
+ * is required.
+ */
+/* Define to 1 if long is 64 bits */
+#undef LONG_IS_64_BIT
+
+/* Define to a 64 bit integer type if there is one, but long is shorter */
+#undef ZSH_64_BIT_TYPE
+
+/* Define to an unsigned variant of ZSH_64_BIT_TYPE if that is defined */
+#undef ZSH_64_BIT_UTYPE
+
+/* Define to 1 if off_t is 64 bit (for large file support) */
+#undef OFF_T_IS_64_BIT
+
+/* Define to 1 if ino_t is 64 bit (for large file support) */
+#undef INO_T_IS_64_BIT
diff --git a/configure.in b/configure.in
index a245c1b84..2fde12a56 100644
--- a/configure.in
+++ b/configure.in
@@ -271,6 +271,16 @@ AC_ARG_ENABLE(maildir-support,
AC_DEFINE(MAILDIR_SUPPORT)
fi])
+dnl Do you want to set a maximum function depth?
+undefine([max_function_depth])dnl
+AC_ARG_ENABLE(max-function-depth,
+[ --enable-max-function-depth=MAX Limit function depth to MAX],
+[if test x$enableval = xyes; then
+ AC_DEFINE(MAX_FUNCTION_DEPTH, 4096)
+else
+ AC_DEFINE_UNQUOTED(MAX_FUNCTION_DEPTH, $enableval)
+fi])
+
dnl ------------------
dnl CHECK THE COMPILER
dnl ------------------