Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

POSIX builtins



The patch below adds a new POSIX_BUILTINS option.  Please test it before I
put it into zsh-3.0.0.  The patch to the manual should tell everything
about this option.  This is turned on for both sh and ksh emulation mode
(bash, pdksh and ksh93 behave this way).

Zoltan

*** Doc/zsh.man	1996/07/26 20:53:40	2.9
--- Doc/zsh.man	1996/08/14 00:43:43
***************
*** 101,103 ****
--- 101,107 ----
  .IR zshzle (%manext%),
  .IR zshoptions (%manext%),
  .IR zshmisc (%manext%).
+ .PP
+ .sp
+ .IR "IEEE Standard for information Technology \- Portable Operating System Interface (POSIX) \- Part 2: Shell and Utilities" ,
+ IEEE Inc, 1993, ISBN 1-55937-255-9.
*** Doc/zsh.texi	1996/08/13 20:36:44	2.18
--- Doc/zsh.texi	1996/08/14 00:49:34
***************
*** 380,385 ****
--- 380,390 ----
  zshcompctl(1), zshexpn(1), zshparam(1), zshzle(1), zshoptions(1), 
  zshmisc(1)
  
+ @noindent
+ IEEE Standard for information Technology -- Portable Operating System
+ Interface (POSIX) -- Part 2: Shell and Utilities, IEEE Inc, 1993, ISBN
+ 1-55937-255-9.
+ 
  
  @node Invocation, Startup/Shutdown Files, Introduction, Top
  @chapter Invocation
***************
*** 2435,2449 ****
  @code{ksh}:  @code{NO_BAD_PATTERN}, @code{NO_BANG_HIST}, @code{NO_EQUALS},
  @code{NO_FUNCTION_ARGZERO}, @code{GLOB_SUBST}, @code{NO_HUP}, 
  @code{INTERACTIVE_COMMENTS}, @code{KSH_ARRAYS}, @code{NO_MULTIOS}, 
! @code{NO_NOMATCH}, @code{RM_STAR_SILENT}, @code{SH_FILE_EXPANSION},  
! @code{SH_GLOB},  @code{SH_OPTION_LETTERS}, @code{SH_WORD_SPLIT}.
! Additionally the @code{KSH_OPTION_PRINT}, @code{LOCAL_OPTIONS},
! @code{PROMPT_SUBST} and @code{SINGLE_LINE_ZLE} options are set if
! @code{zsh} is invoked as @code{ksh} and the @code{IGNORE_BRACES} option
! is set if @code{zsh} is invoked as @code{sh}.  If the @code{echo}
! command called from @code{/bin/sh} does not interpret backslash escape
! sequences, the @code{BSD_ECHO} option is also set in @code{sh} emulation
! mode.
  
  
  @node Zsh Line Editor, Parameters, Compatibility, Top
--- 2440,2454 ----
  @code{ksh}:  @code{NO_BAD_PATTERN}, @code{NO_BANG_HIST}, @code{NO_EQUALS},
  @code{NO_FUNCTION_ARGZERO}, @code{GLOB_SUBST}, @code{NO_HUP}, 
  @code{INTERACTIVE_COMMENTS}, @code{KSH_ARRAYS}, @code{NO_MULTIOS}, 
! @code{NO_NOMATCH}, @code{RM_STAR_SILENT}, @code{POSIX_BUILTINS},
! @code{SH_FILE_EXPANSION}, @code{SH_GLOB}, @code{SH_OPTION_LETTERS},
! @code{SH_WORD_SPLIT}.  Additionally the @code{KSH_OPTION_PRINT},
! @code{LOCAL_OPTIONS}, @code{PROMPT_SUBST} and @code{SINGLE_LINE_ZLE}
! options are set if @code{zsh} is invoked as @code{ksh} and the
! @code{IGNORE_BRACES} option is set if @code{zsh} is invoked as @code{sh}.
! If the @code{echo} command called from @code{/bin/sh} does not interpret
! backslash escape sequences, the @code{BSD_ECHO} option is also set in
! @code{sh} emulation mode.
  
  
  @node Zsh Line Editor, Parameters, Compatibility, Top
***************
*** 5006,5011 ****
--- 5011,5027 ----
  This applies to the @code{.} builtin as well as to command execution.
  Commands explicitly beginning with
  @samp{./} or @samp{../} are not subject to path search.
+ 
+ @item POSIX_BUILTINS
+ @pindex POSIX_BUILTINS
+ When this option is set the @code{command} builtin can be used to execute
+ shell builtin commands.  Parameter assignments specified before shell
+ functions and special builtins are kept after the command completes unless
+ the special builtin is prefixed with the @code{command} builtin.  Special
+ builtins are @code{.}, @code{:}, @code{break}, @code{continue},
+ @code{declare}, @code{eval}, @code{exit}, @code{export}, @code{integer},
+ @code{local}, @code{readonly}, @code{return}, @code{set}, @code{shift},
+ @code{source}, @code{times}, @code{trap} and @code{unset}.
  
  @item PRINT_EXIT_VALUE (-1)
  @cindex exit status, printing
*** Doc/zshall.man	1996/07/21 00:05:50	2.8
--- Doc/zshall.man	1996/08/14 00:44:51
***************
*** 96,98 ****
--- 96,102 ----
  .IR rc (1),
  .IR bash (1),
  .IR ksh (1).
+ .PP
+ .sp
+ .IR "IEEE Standard for information Technology \- Portable Operating System Interface (POSIX) \- Part 2: Shell and Utilities" ,
+ IEEE Inc, 1993, ISBN 1-55937-255-9.
*** Doc/zshmisc.man	1996/08/12 03:53:13	2.20
--- Doc/zshmisc.man	1996/08/14 00:22:13
***************
*** 1095,1100 ****
--- 1095,1101 ----
  .BR NO_MULTIOS ,
  .BR NO_NOMATCH ,
  .BR RM_STAR_SILENT ,
+ .BR POSIX_BUILTINS ,
  .BR SH_FILE_EXPANSION ,
  .BR SH_GLOB ,
  .BR SH_OPTION_LETTERS ,
*** Doc/zshoptions.man	1996/07/28 22:34:08	2.20
--- Doc/zshoptions.man	1996/08/14 00:32:41
***************
*** 387,392 ****
--- 387,417 ----
  Commands explicitly beginning with "./" or "../" are not subject to
  path search.
  .TP
+ \fBPOSIX_BUILTINS\fP
+ When this option is set the \fBcommand\fP builtin can be used to execute
+ shell builtin commands.  Parameter assignments specified before shell
+ functions and special builtins are kept after the command completes unless
+ the special builtin is prefixed with the \fBcommand\fP builtin.  Special
+ builtins are
+ .BR. ,
+ .BR : ,
+ .BR break ,
+ .BR continue ,
+ .BR declare ,
+ .BR eval ,
+ .BR exit ,
+ .BR export ,
+ .BR integer ,
+ .BR local ,
+ .BR readonly ,
+ .BR return ,
+ .BR set ,
+ .BR shift ,
+ .BR source ,
+ .BR times ,
+ .BR trap " and"
+ .BR unset .
+ .TP
  \fBPRINT_EXIT_VALUE\fP (\-\fB1\fP)
  Print the exit value of programs with non-zero exit status.
  .TP
*** Src/exec.c	1996/08/11 19:20:39	2.81
--- Src/exec.c	1996/08/14 01:10:07
***************
*** 1171,1177 ****
  	    checked = !has_token(cmdarg);
  	    if (!checked)
  		break;
! 	    if (!(cflags & BINF_BUILTIN) &&
  		(hn = shfunctab->getnode(shfunctab, cmdarg))) {
  		is_shfunc = 1;
  		break;
--- 1171,1177 ----
  	    checked = !has_token(cmdarg);
  	    if (!checked)
  		break;
! 	    if (!(cflags & (BINF_BUILTIN | BINF_COMMAND)) &&
  		(hn = shfunctab->getnode(shfunctab, cmdarg))) {
  		is_shfunc = 1;
  		break;
***************
*** 1185,1196 ****
  		assign = (hn->flags & BINF_MAGICEQUALS);
  		break;
  	    }
! 	    cflags &= ~BINF_BUILTIN;
  	    cflags |= hn->flags;
  	    uremnode(args, firstnode(args));
  	    hn = NULL;
  	    checked = 0;
! 	    if (cflags & BINF_COMMAND)
  		break;
  	}
      }
--- 1185,1196 ----
  		assign = (hn->flags & BINF_MAGICEQUALS);
  		break;
  	    }
! 	    cflags &= ~BINF_BUILTIN & ~BINF_COMMAND;
  	    cflags |= hn->flags;
  	    uremnode(args, firstnode(args));
  	    hn = NULL;
  	    checked = 0;
! 	    if ((cflags & BINF_COMMAND) && unset(POSIXBUILTINS))
  		break;
  	}
      }
***************
*** 1257,1267 ****
  		}
  	    }
  
! 	    if (errflag || checked || (cflags & BINF_COMMAND))
  		break;
  
  	    cmdarg = (char *) peekfirst(args);
! 	    if (!(cflags & BINF_BUILTIN) &&
  		(hn = shfunctab->getnode(shfunctab, cmdarg))) {
  		is_shfunc = 1;
  		break;
--- 1257,1268 ----
  		}
  	    }
  
! 	    if (errflag || checked ||
! 		(unset(POSIXBUILTINS) && (cflags & BINF_COMMAND)))
  		break;
  
  	    cmdarg = (char *) peekfirst(args);
! 	    if (!(cflags & (BINF_BUILTIN | BINF_COMMAND)) &&
  		(hn = shfunctab->getnode(shfunctab, cmdarg))) {
  		is_shfunc = 1;
  		break;
***************
*** 1278,1284 ****
  		is_builtin = 1;
  		break;
  	    }
! 	    cflags &= ~BINF_BUILTIN;
  	    cflags |= hn->flags;
  	    uremnode(args, firstnode(args));
  	    hn = NULL;
--- 1279,1285 ----
  		is_builtin = 1;
  		break;
  	    }
! 	    cflags &= ~BINF_BUILTIN & ~BINF_COMMAND;
  	    cflags |= hn->flags;
  	    uremnode(args, firstnode(args));
  	    hn = NULL;
***************
*** 1601,1609 ****
  	    LinkList restorelist = 0, removelist = 0;
  	    /* builtin or shell function */
  
! 	    if (!forked && !assign)
  		save_params(cmd, &restorelist, &removelist);
! 	    
  	    if (cmd->vars) {
  		/* Export this if the command is a shell function,
  		 * but not if it's a builtin.
--- 1602,1613 ----
  	    LinkList restorelist = 0, removelist = 0;
  	    /* builtin or shell function */
  
! 	    if (!forked && ((cflags & BINF_COMMAND) ||
! 			    (unset(POSIXBUILTINS) && !assign) ||
! 			    (isset(POSIXBUILTINS) && !is_shfunc &&
! 			     !(hn->flags & BINF_PSPECIAL))))
  		save_params(cmd, &restorelist, &removelist);
! 
  	    if (cmd->vars) {
  		/* Export this if the command is a shell function,
  		 * but not if it's a builtin.
*** Src/globals.h	1996/08/12 03:52:50	2.38
--- Src/globals.h	1996/08/13 23:35:14
***************
*** 750,755 ****
--- 750,756 ----
      {"numericglobsort", 	0,    0,    0},
      {"overstrike", 		0,    0,    0},
      {"pathdirs", 		'Q',  0,    0},
+     {"posixbuiltins",		0,    0,    OPT_EMULATE|OPT_BOURNE},
      {"printexitvalue", 		'1',  0,    0},
      {"privileged", 		'p',  'p',  OPT_SPECIAL},
      {"promptcr", 		x'V', 0,    OPT_ALL},
*** Src/hashtable.h	1996/08/04 12:52:33	2.25
--- Src/hashtable.h	1996/08/13 23:30:51
***************
*** 249,267 ****
      PREFIX("exec", BINF_EXEC)
      PREFIX("noglob", BINF_NOGLOB)
      {NULL, "[", 0, bin_test, 0, -1, BIN_BRACKET, NULL, NULL},
!     {NULL, ".", 0, bin_dot, 1, -1, 0, NULL, NULL},
!     {NULL, ":", 0, bin_true, 0, -1, 0, NULL, NULL},
      {NULL, "alias", BINF_MAGICEQUALS, bin_alias, 0, -1, 0, "Lgmr", NULL},
      {NULL, "autoload", BINF_TYPEOPTS, bin_functions, 0, -1, 0, "t", "u"},
      {NULL, "bg", 0, bin_fg, 0, -1, BIN_BG, NULL, NULL},
      {NULL, "bindkey", 0, bin_bindkey, 0, -1, 0, "asvemdr", NULL},
!     {NULL, "break", 0, bin_break, 0, 1, BIN_BREAK, NULL, NULL},
      {NULL, "bye", 0, bin_break, 0, 1, BIN_EXIT, NULL, NULL},
      {NULL, "cd", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL},
      {NULL, "chdir", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL},
      {NULL, "compctl", 0, bin_compctl, 0, -1, 0, NULL, NULL},
!     {NULL, "continue", 0, bin_break, 0, 1, BIN_CONTINUE, NULL, NULL},
!     {NULL, "declare", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, 0, "LRUZfilrtux", NULL},
      {NULL, "dirs", 0, bin_dirs, 0, -1, 0, "v", NULL},
      {NULL, "disable", 0, bin_enable, 0, -1, BIN_DISABLE, "afmr", NULL},
      {NULL, "disown", 0, bin_fg, 0, -1, BIN_DISOWN, NULL, NULL},
--- 249,267 ----
      PREFIX("exec", BINF_EXEC)
      PREFIX("noglob", BINF_NOGLOB)
      {NULL, "[", 0, bin_test, 0, -1, BIN_BRACKET, NULL, NULL},
!     {NULL, ".", BINF_PSPECIAL, bin_dot, 1, -1, 0, NULL, NULL},
!     {NULL, ":", BINF_PSPECIAL, bin_true, 0, -1, 0, NULL, NULL},
      {NULL, "alias", BINF_MAGICEQUALS, bin_alias, 0, -1, 0, "Lgmr", NULL},
      {NULL, "autoload", BINF_TYPEOPTS, bin_functions, 0, -1, 0, "t", "u"},
      {NULL, "bg", 0, bin_fg, 0, -1, BIN_BG, NULL, NULL},
      {NULL, "bindkey", 0, bin_bindkey, 0, -1, 0, "asvemdr", NULL},
!     {NULL, "break", BINF_PSPECIAL, bin_break, 0, 1, BIN_BREAK, NULL, NULL},
      {NULL, "bye", 0, bin_break, 0, 1, BIN_EXIT, NULL, NULL},
      {NULL, "cd", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL},
      {NULL, "chdir", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL},
      {NULL, "compctl", 0, bin_compctl, 0, -1, 0, NULL, NULL},
!     {NULL, "continue", BINF_PSPECIAL, bin_break, 0, 1, BIN_CONTINUE, NULL, NULL},
!     {NULL, "declare", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "LRUZfilrtux", NULL},
      {NULL, "dirs", 0, bin_dirs, 0, -1, 0, "v", NULL},
      {NULL, "disable", 0, bin_enable, 0, -1, BIN_DISABLE, "afmr", NULL},
      {NULL, "disown", 0, bin_fg, 0, -1, BIN_DISOWN, NULL, NULL},
***************
*** 269,277 ****
      {NULL, "echotc", 0, bin_echotc, 1, -1, 0, NULL, NULL},
      {NULL, "emulate", 0, bin_emulate, 1, 1, 0, "R", NULL},
      {NULL, "enable", 0, bin_enable, 0, -1, BIN_ENABLE, "afmr", NULL},
!     {NULL, "eval", 0, bin_eval, 0, -1, BIN_EVAL, NULL, NULL},
!     {NULL, "exit", 0, bin_break, 0, 1, BIN_EXIT, NULL, NULL},
!     {NULL, "export", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, BIN_EXPORT, "LRUZfilrtu", "x"},
      {NULL, "false", 0, bin_false, 0, -1, 0, NULL, NULL},
      {NULL, "fc", BINF_FCOPTS, bin_fc, 0, -1, BIN_FC, "nlreIRWAdDfEim", NULL},
      {NULL, "fg", 0, bin_fg, 0, -1, BIN_FG, NULL, NULL},
--- 269,277 ----
      {NULL, "echotc", 0, bin_echotc, 1, -1, 0, NULL, NULL},
      {NULL, "emulate", 0, bin_emulate, 1, 1, 0, "R", NULL},
      {NULL, "enable", 0, bin_enable, 0, -1, BIN_ENABLE, "afmr", NULL},
!     {NULL, "eval", BINF_PSPECIAL, bin_eval, 0, -1, BIN_EVAL, NULL, NULL},
!     {NULL, "exit", BINF_PSPECIAL, bin_break, 0, 1, BIN_EXIT, NULL, NULL},
!     {NULL, "export", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, BIN_EXPORT, "LRUZfilrtu", "x"},
      {NULL, "false", 0, bin_false, 0, -1, 0, NULL, NULL},
      {NULL, "fc", BINF_FCOPTS, bin_fc, 0, -1, BIN_FC, "nlreIRWAdDfEim", NULL},
      {NULL, "fg", 0, bin_fg, 0, -1, BIN_FG, NULL, NULL},
***************
*** 285,296 ****
  #endif
  
      {NULL, "history", 0, bin_fc, 0, -1, BIN_FC, "nrdDfEim", "l"},
!     {NULL, "integer", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, 0, "lrtux", "i"},
      {NULL, "jobs", 0, bin_fg, 0, -1, BIN_JOBS, "lpZrs", NULL},
      {NULL, "kill", 0, bin_kill, 0, -1, 0, NULL, NULL},
      {NULL, "let", 0, bin_let, 1, -1, 0, NULL, NULL},
      {NULL, "limit", 0, bin_limit, 0, -1, 0, "sh", NULL},
!     {NULL, "local", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, 0, "LRUZilrtu", NULL},
      {NULL, "log", 0, bin_log, 0, 0, 0, NULL, NULL},
      {NULL, "logout", 0, bin_break, 0, 1, BIN_LOGOUT, NULL, NULL},
  
--- 285,296 ----
  #endif
  
      {NULL, "history", 0, bin_fc, 0, -1, BIN_FC, "nrdDfEim", "l"},
!     {NULL, "integer", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "lrtux", "i"},
      {NULL, "jobs", 0, bin_fg, 0, -1, BIN_JOBS, "lpZrs", NULL},
      {NULL, "kill", 0, bin_kill, 0, -1, 0, NULL, NULL},
      {NULL, "let", 0, bin_let, 1, -1, 0, NULL, NULL},
      {NULL, "limit", 0, bin_limit, 0, -1, 0, "sh", NULL},
!     {NULL, "local", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "LRUZilrtu", NULL},
      {NULL, "log", 0, bin_log, 0, 0, 0, NULL, NULL},
      {NULL, "logout", 0, bin_break, 0, 1, BIN_LOGOUT, NULL, NULL},
  
***************
*** 305,333 ****
      {NULL, "pwd", 0, bin_pwd, 0, 0, 0, "r", NULL},
      {NULL, "r", BINF_R, bin_fc, 0, -1, BIN_FC, "nrl", NULL},
      {NULL, "read", 0, bin_read, 0, -1, 0, "rzu0123456789pkqecnAlE", NULL},
!     {NULL, "readonly", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, 0, "LRUZfiltux", "r"},
      {NULL, "rehash", 0, bin_hash, 0, 0, 0, "df", "r"},
!     {NULL, "return", 0, bin_break, 0, 1, BIN_RETURN, NULL, NULL},
      {NULL, "sched", 0, bin_sched, 0, -1, 0, NULL, NULL},
!     {NULL, "set", 0, bin_set, 0, -1, 0, NULL, NULL},
      {NULL, "setopt", 0, bin_setopt, 0, -1, BIN_SETOPT, NULL, NULL},
!     {NULL, "shift", 0, bin_shift, 0, -1, 0, NULL, NULL},
!     {NULL, "source", 0, bin_dot, 1, -1, 0, NULL, NULL},
      {NULL, "suspend", 0, bin_suspend, 0, 0, 0, "f", NULL},
      {NULL, "test", 0, bin_test, 0, -1, BIN_TEST, NULL, NULL},
      {NULL, "ttyctl", 0, bin_ttyctl, 0, 0, 0, "fu", NULL},
!     {NULL, "times", 0, bin_times, 0, 0, 0, NULL, NULL},
!     {NULL, "trap", 0, bin_trap, 0, -1, 0, NULL, NULL},
      {NULL, "true", 0, bin_true, 0, -1, 0, NULL, NULL},
      {NULL, "type", 0, bin_whence, 0, -1, 0, "ampf", "v"},
!     {NULL, "typeset", BINF_TYPEOPTS | BINF_MAGICEQUALS, bin_typeset, 0, -1, 0, "LRUZfilrtuxm", NULL},
      {NULL, "ulimit", 0, bin_ulimit, 0, -1, 0, NULL, NULL},
      {NULL, "umask", 0, bin_umask, 0, 1, 0, "S", NULL},
      {NULL, "unalias", 0, bin_unhash, 1, -1, 0, "m", "a"},
      {NULL, "unfunction", 0, bin_unhash, 1, -1, 0, "m", "f"},
      {NULL, "unhash", 0, bin_unhash, 1, -1, 0, "adfm", NULL},
      {NULL, "unlimit", 0, bin_unlimit, 0, -1, 0, "hs", NULL},
!     {NULL, "unset", 0, bin_unset, 1, -1, 0, "m", NULL},
      {NULL, "unsetopt", 0, bin_setopt, 0, -1, BIN_UNSETOPT, NULL, NULL},
      {NULL, "vared", 0, bin_vared, 1, 7, 0, NULL, NULL},
      {NULL, "wait", 0, bin_fg, 0, -1, BIN_WAIT, NULL, NULL},
--- 305,333 ----
      {NULL, "pwd", 0, bin_pwd, 0, 0, 0, "r", NULL},
      {NULL, "r", BINF_R, bin_fc, 0, -1, BIN_FC, "nrl", NULL},
      {NULL, "read", 0, bin_read, 0, -1, 0, "rzu0123456789pkqecnAlE", NULL},
!     {NULL, "readonly", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "LRUZfiltux", "r"},
      {NULL, "rehash", 0, bin_hash, 0, 0, 0, "df", "r"},
!     {NULL, "return", BINF_PSPECIAL, bin_break, 0, 1, BIN_RETURN, NULL, NULL},
      {NULL, "sched", 0, bin_sched, 0, -1, 0, NULL, NULL},
!     {NULL, "set", BINF_PSPECIAL, bin_set, 0, -1, 0, NULL, NULL},
      {NULL, "setopt", 0, bin_setopt, 0, -1, BIN_SETOPT, NULL, NULL},
!     {NULL, "shift", BINF_PSPECIAL, bin_shift, 0, -1, 0, NULL, NULL},
!     {NULL, "source", BINF_PSPECIAL, bin_dot, 1, -1, 0, NULL, NULL},
      {NULL, "suspend", 0, bin_suspend, 0, 0, 0, "f", NULL},
      {NULL, "test", 0, bin_test, 0, -1, BIN_TEST, NULL, NULL},
      {NULL, "ttyctl", 0, bin_ttyctl, 0, 0, 0, "fu", NULL},
!     {NULL, "times", BINF_PSPECIAL, bin_times, 0, 0, 0, NULL, NULL},
!     {NULL, "trap", BINF_PSPECIAL, bin_trap, 0, -1, 0, NULL, NULL},
      {NULL, "true", 0, bin_true, 0, -1, 0, NULL, NULL},
      {NULL, "type", 0, bin_whence, 0, -1, 0, "ampf", "v"},
!     {NULL, "typeset", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "LRUZfilrtuxm", NULL},
      {NULL, "ulimit", 0, bin_ulimit, 0, -1, 0, NULL, NULL},
      {NULL, "umask", 0, bin_umask, 0, 1, 0, "S", NULL},
      {NULL, "unalias", 0, bin_unhash, 1, -1, 0, "m", "a"},
      {NULL, "unfunction", 0, bin_unhash, 1, -1, 0, "m", "f"},
      {NULL, "unhash", 0, bin_unhash, 1, -1, 0, "adfm", NULL},
      {NULL, "unlimit", 0, bin_unlimit, 0, -1, 0, "hs", NULL},
!     {NULL, "unset", BINF_PSPECIAL, bin_unset, 1, -1, 0, "m", NULL},
      {NULL, "unsetopt", 0, bin_setopt, 0, -1, BIN_UNSETOPT, NULL, NULL},
      {NULL, "vared", 0, bin_vared, 1, 7, 0, NULL, NULL},
      {NULL, "wait", 0, bin_fg, 0, -1, BIN_WAIT, NULL, NULL},
*** Src/zsh.h	1996/08/03 02:53:55	2.42
--- Src/zsh.h	1996/08/13 23:32:31
***************
*** 759,764 ****
--- 759,765 ----
  #define BINF_COMMAND		(1<<12)
  #define BINF_EXEC		(1<<13)
  #define BINF_NOGLOB		(1<<14)
+ #define BINF_PSPECIAL		(1<<15)
  
  #define BINF_TYPEOPTS   (BINF_TYPEOPT|BINF_PLUSOPTS)
  
***************
*** 1128,1133 ****
--- 1129,1135 ----
      NUMERICGLOBSORT,
      OVERSTRIKE,
      PATHDIRS,
+     POSIXBUILTINS,
      PRINTEXITVALUE,
      PRIVILEGED,
      PROMPTCR,



Messages sorted by: Reverse Date, Date, Thread, Author