123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /* $XConsortium: builtins.c /main/3 1995/11/01 15:50:47 rswiston $ */
- /***************************************************************
- * *
- * AT&T - PROPRIETARY *
- * *
- * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF *
- * AT&T BELL LABORATORIES *
- * AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN *
- * ACCORDANCE WITH APPLICABLE AGREEMENTS *
- * *
- * Copyright (c) 1994 AT&T Bell Laboratories *
- * Unpublished & Not for Publication *
- * All Rights Reserved *
- * *
- * The copyright notice above does not evidence any *
- * actual or intended publication of such source code *
- * *
- * This software was created by the *
- * Advanced Software Technology Department *
- * AT&T Bell Laboratories *
- * *
- * For further information contact *
- * {research,attmail}!dgk *
- * dgk@research.att.com *
- * David Korn 908-582-7975 *
- * *
- ***************************************************************/
- /* : : generated by proto : : */
- #line 1
- #if !defined(__PROTO__)
- #if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
- #if defined(__cplusplus)
- #define __MANGLE__ "C"
- #else
- #define __MANGLE__
- #endif
- #define __STDARG__
- #define __PROTO__(x) x
- #define __OTORP__(x)
- #define __PARAM__(n,o) n
- #if !defined(__STDC__) && !defined(__cplusplus)
- #if !defined(c_plusplus)
- #define const
- #endif
- #define signed
- #define void int
- #define volatile
- #define __V_ char
- #else
- #define __V_ void
- #endif
- #else
- #define __PROTO__(x) ()
- #define __OTORP__(x) x
- #define __PARAM__(n,o) o
- #define __MANGLE__
- #define __V_ char
- #define const
- #define signed
- #define void int
- #define volatile
- #endif
- #if defined(__cplusplus) || defined(c_plusplus)
- #define __VARARG__ ...
- #else
- #define __VARARG__
- #endif
- #if defined(__STDARG__)
- #define __VA_START__(p,a) va_start(p,a)
- #else
- #define __VA_START__(p,a) va_start(p)
- #endif
- #endif
- #line 3
- #define mount _AST_mount
- #include <shell.h>
- #include <signal.h>
- #include "shtable.h"
- #include "name.h"
- #ifdef KSHELL
- # include "builtins.h"
- # include "jobs.h"
- # include "FEATURE/cmds"
- #if defined(__STDC__) || defined(__STDPP__)
- # define bltin(x) (b_##x)
- #else
- # define bltin(x) (b_/**/x)
- #endif
- #line 13
- #else
- # define bltin(x) 0
- #endif
- #include <X11/X.h>
- #include <X11/Intrinsic.h>
- #include <X11/IntrinsicP.h>
- #define NO_AST
- #include "dtksh.h"
- #undef NO_AST
- #include "dtextra.h"
- #include "xmextra.h"
- #include "msgs.h"
- /*
- * The order up through "[" is significant
- */
- const struct shtable3 shtab_builtins[] =
- {
- "login", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(login),
- "exec", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(exec),
- "set", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(set),
- ":", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(true),
- "true", NV_BLTIN|BLT_ENV, bltin(true),
- "command", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(command),
- "cd", NV_BLTIN|BLT_ENV, bltin(cd),
- "break", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(brk_cont),
- "continue", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(brk_cont),
- "typeset", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(typeset),
- "test", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(test),
- "[", NV_BLTIN|BLT_ENV, bltin(test),
- #ifdef _bin_newgrp
- "newgrp", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(login),
- #endif /* _bin_newgrp */
- ".", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(dot_cmd),
- "alias", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(alias),
- "hash", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(alias),
- "exit", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(ret_exit),
- "export", NV_BLTIN|BLT_SPC|BLT_DCL, bltin(read_export),
- "eval", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_EXIT,bltin(eval),
- "fc", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
- "hist", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
- "readonly", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(read_export),
- "return", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(ret_exit),
- "shift", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(shift),
- "trap", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(trap),
- "unalias", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(unalias),
- "unset", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(unset),
- "builtin", NV_BLTIN, bltin(builtin),
- #ifdef SHOPT_ECHOPRINT
- "echo", NV_BLTIN|BLT_ENV, bltin(print),
- #else
- "echo", NV_BLTIN|BLT_ENV, bltin(echo),
- #endif /* SHOPT_ECHOPRINT */
- #ifdef JOBS
- # ifdef SIGTSTP
- "bg", NV_BLTIN|BLT_ENV, bltin(bg_fg),
- "fg", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(bg_fg),
- "disown", NV_BLTIN|BLT_ENV, bltin(bg_fg),
- "kill", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(kill),
- # else
- "/bin/kill", NV_BLTIN|BLT_ENV|NV_NOFREE, bltin(kill),
- # endif /* SIGTSTP */
- "jobs", NV_BLTIN|BLT_ENV, bltin(jobs),
- #endif /* JOBS */
- "false", NV_BLTIN|BLT_ENV, bltin(false),
- "getconf", NV_BLTIN|BLT_ENV, bltin(getconf),
- "getopts", NV_BLTIN|BLT_ENV, bltin(getopts),
- "let", NV_BLTIN|BLT_ENV, bltin(let),
- "print", NV_BLTIN|BLT_ENV, bltin(print),
- "printf", NV_BLTIN|NV_NOFREE, bltin(printf),
- "pwd", NV_BLTIN|NV_NOFREE, bltin(pwd),
- "read", NV_BLTIN|BLT_ENV, bltin(read),
- "sleep", NV_BLTIN|NV_NOFREE, bltin(sleep),
- "alarm", NV_BLTIN, bltin(alarm),
- "ulimit", NV_BLTIN|BLT_ENV, bltin(ulimit),
- "umask", NV_BLTIN|BLT_ENV, bltin(umask),
- #ifdef _cmd_universe
- "universe", NV_BLTIN|BLT_ENV, bltin(universe),
- #endif /* _cmd_universe */
- #ifdef SHOPT_FS_3D
- "vpath", NV_BLTIN|BLT_ENV, bltin(vpath_map),
- "vmap", NV_BLTIN|BLT_ENV, bltin(vpath_map),
- #endif /* SHOPT_FS_3D */
- "wait", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(wait),
- "type", NV_BLTIN|BLT_ENV, bltin(whence),
- "whence", NV_BLTIN|BLT_ENV, bltin(whence),
- "/bin/basename",NV_BLTIN|NV_NOFREE, bltin(basename),
- "/bin/chmod", NV_BLTIN|NV_NOFREE, bltin(chmod),
- "/bin/dirname", NV_BLTIN|NV_NOFREE, bltin(dirname),
- "/bin/head", NV_BLTIN|NV_NOFREE, bltin(head),
- "/bin/mkdir", NV_BLTIN|NV_NOFREE, bltin(mkdir),
- #if defined(_usr_bin_logname) && !defined(_bin_logname)
- "/usr/bin/logname", NV_BLTIN|NV_NOFREE, bltin(logname),
- #else
- "/bin/logname", NV_BLTIN|NV_NOFREE, bltin(logname),
- #endif
- "/bin/cat", NV_BLTIN|NV_NOFREE, bltin(cat),
- "/bin/cmp", NV_BLTIN|NV_NOFREE, bltin(cmp),
- #if defined(_usr_bin_cut) && !defined(_bin_cut)
- "/usr/bin/cut", NV_BLTIN|NV_NOFREE, bltin(cut),
- #else
- "/bin/cut", NV_BLTIN|NV_NOFREE, bltin(cut),
- #endif
- "/bin/uname", NV_BLTIN|NV_NOFREE, bltin(uname),
- #if defined(_usr_bin_wc) && !defined(_bin_wc)
- "/usr/bin/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
- #else
- # if defined(_usr_ucb_wc) && !defined(_bin_wc)
- "/usr/ucb/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
- # else
- "/bin/wc", NV_BLTIN|NV_NOFREE, bltin(wc),
- # endif
- #endif
- DTK_EXTRA_TABLE
- DTK_EXTRA_TABLE2
- DTK_TK_EXTRA_TABLE
- DTK_TK_LIST_TABLE
- DTK_TK_TEXT_TABLE
- "", 0, 0
- };
- const char sh_optalarm[] = "r [varname seconds]";
- const char sh_optalias[] = "ptx [name=[value]...]";
- const char sh_optbuiltin[] = "dsf:[library] [name...]";
- const char sh_optcd[] = "LP [dir] [change]";
- const char sh_optcflow[] = " [n]";
- const char sh_optcommand[] = "pvV name [arg]...";
- const char sh_optdot[] = " name [arg...]";
- #ifndef ECHOPRINT
- const char sh_optecho[] = " [-n] [arg...]";
- #endif /* !ECHOPRINT */
- const char sh_opteval[] = " [arg...]";
- const char sh_optexec[] = "a:[name]c [command [args...] ]";
- const char sh_optexport[] = "p [name[=value]...]";
- const char sh_optgetopts[] = ":a:[name] optstring name [args...]";
- const char sh_optgetconf[] = " [name [pathname] ]";
- const char sh_optjoblist[] = " [job...]";
- const char sh_opthist[] = "e:[editor]lnrsN# [first] [last]";
- const char sh_optjobs[] = "nlp [job...]";
- const char sh_optkill[] = "ln#[signum]s:[signame] sig...";
- const char sh_optlet[] = " expr...";
- const char sh_optprint[] = "f:[format]enprsu:[filenum] [arg...]";
- const char sh_optprintf[] = " format [arg...]";
- const char sh_optpwd[] = "LP";
- const char sh_optread[] = "Ad:[delim]prst#[timeout]u#[filenum] [name...]";
- #ifdef SHOPT_KIA
- const char sh_optksh[] = "+DircabefhkmnpstuvxCR:[file]o:?[option] [arg...]";
- const char sh_optset[] = "+abefhkmnpstuvxCR:[file]o:?[option]A:[name] [arg...]";
- #else
- const char sh_optksh[] = "+DircabefhkmnpstuvxCo:?[option] [arg...]";
- const char sh_optset[] = "+abefhkmnpstuvxCo:?[option]A:[name] [arg...]";
- #endif /* SHOPT_KIA */
- const char sh_optsleep[] = " seconds";
- const char sh_opttrap[] = "p [action condition...]";
- #ifdef SHOPT_OO
- const char sh_opttypeset[] = "+AC:E#?F#?H:[name]L#?R#?Z#?fi#?[base]lnprtux [name=[value]...]";
- #else
- const char sh_opttypeset[] = "+AE#?F#?HL#?R#?Z#?fi#?[base]lnprtux [name=[value]...]";
- #endif /* SHOPT_OO */
- const char sh_optulimit[] = "HSacdfmnstv [limit]";
- const char sh_optumask[] = "S [mask]";
- const char sh_optuniverse[] = " [name]";
- const char sh_optunset[] = "fnv name...";
- const char sh_optunalias[] = "a name...";
- #ifdef SHOPT_FS_3D
- const char sh_optvpath[] = " [top] [base]";
- const char sh_optvmap[] = " [dir] [list]";
- #endif /* SHOPT_FS_3D */
- const char sh_optwhence[] = "afpv name...";
- const char e_alrm1[] = "alarm -r %s +%.3g\n";
- const char e_alrm2[] = "alarm %s %.3f\n";
- const char e_badfun[] = "%s: illegal function name";
- const char e_baddisc[] = "%s: invalid discipline function";
- const char e_nospace[] = "out of memory";
- const char e_nofork[] = "cannot fork";
- const char e_nosignal[] = "%s: unknown signal name";
- const char e_numeric[] = "*([0-9])?(.)*([0-9])";
- const char e_condition[] = "condition(s) required";
- const char e_cneedsarg[] = "-c requires argument";
|