Home | History | Annotate | Download | only in csh
      1     0  stevel /*
      2  1301    jonb  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
      3     0  stevel  * Use is subject to license terms.
      4     0  stevel  */
      5     0  stevel 
      6     0  stevel /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
      7     0  stevel /*	  All Rights Reserved  	*/
      8     0  stevel 
      9     0  stevel /*
     10     0  stevel  * Copyright (c) 1980 Regents of the University of California.
     11     0  stevel  * All rights reserved. The Berkeley Software License Agreement
     12     0  stevel  * specifies the terms and conditions for redistribution.
     13     0  stevel  */
     14     0  stevel 
     15     0  stevel #pragma ident	"%Z%%M%	%I%	%E% SMI"
     16     0  stevel 
     17     0  stevel /*
     18     0  stevel  * C shell
     19     0  stevel  */
     20     0  stevel 
     21     0  stevel /*
     22     0  stevel  * These tchar constants used to be defined as
     23     0  stevel  * character string constants.
     24     0  stevel  */
     25     0  stevel 
     26     0  stevel #include "sh.h"
     27     0  stevel 
     28     0  stevel tchar S_[] = {0};
     29     0  stevel tchar S_0[]={'0', 0};
     30     0  stevel tchar S_1[]={'1', 0};
     31     0  stevel tchar S_AND[] = {'&', 0};	/* & */
     32     0  stevel tchar S_ANDAND[] = {'&', '&', 0};	/* && */
     33     0  stevel tchar S_AST[]={'*', 0};
     34     0  stevel tchar S_AT[] = { '@', 0 };
     35     0  stevel tchar S_BAR[] = {'|', 0};	/* | */
     36     0  stevel tchar S_BARBAR[] = {'|','|', 0};	/* || */
     37     0  stevel tchar S_BRABRA[] = {'{', '}', 0};	/* {} */
     38     0  stevel tchar S_BRAPPPBRA[] = {'{', ' ', '.', '.', '.', ' ', '}', 0};	/* { ... } */
     39     0  stevel tchar S_COLON[] = {':', 0}; /*:*/
     40     0  stevel tchar S_DASHl[] = {'-', 'l', 0};	/*-l */
     41     0  stevel tchar S_DELIM[] = {' ','\'','"','\t',';','&','<','>','(',')','|','`',0};
     42     0  stevel tchar S_DOT[] = {'.', 0};
     43     0  stevel tchar S_DOTDOTSLA[]={'.', '.', '/', 0};
     44     0  stevel tchar S_DOTSLA[]={'.', '/', 0};
     45     0  stevel tchar S_EQ[] = {'=', 0};	/*=*/
     46     0  stevel tchar S_EXAS[] = {'!', 0};       /* ! */
     47     0  stevel tchar S_HAT[] = {'^', 0};	/* ^ */
     48     0  stevel tchar S_HOME[] = {'H','O','M','E',0};/*HOME*/
     49     0  stevel tchar S_IOT[] = {'I', 'O', 'T', 0}; /*IOT*/
     50     0  stevel tchar S_LANG[]={'L', 'A', 'N', 'G', 0}; /*LANG*/
     51     0  stevel tchar S_LBRA[] = {'{', 0};	/* { */
     52     0  stevel tchar S_LBRASP[] = {'(', ' ', 0};	/*( */
     53     0  stevel tchar S_LC_ALL[]={'L', 'C', '_', 'A', 'L', 'L',  0}; /*LC_ALL*/
     54     0  stevel tchar S_LC_CTYPE[]={'L', 'C', '_', 'C', 'T', 'Y', 'P',  'E', 0}; /*LC_CTYPE*/
     55     0  stevel tchar S_LC_MESSAGES[]={'L', 'C', '_',
     56     0  stevel 		   'M', 'E', 'S', 'S', 'A', 'G', 'E', 'S', 0}; /*LC_MESSAGES*/
     57     0  stevel tchar S_LESLES[]={'<', '<', 0};
     58     0  stevel tchar S_LPAR[] = {'(', 0};	/* ( */
     59     0  stevel tchar S_MINUS[] = {'-',0};/*"-"*/
     60     0  stevel tchar S_MINl[]={'-', 'l', 0};
     61     0  stevel tchar S_NDOThistory[] = {'~','/','.','h','i','s','t','o','r','y',0};
     62     0  stevel tchar S_OTHERSH[] = {'/','b','i','n','/','s','h',0};
     63     0  stevel tchar S_PARCENTMINUS[] = {'%', '-', 0}; /*%-*/
     64     0  stevel tchar S_PARCENTPARCENT[] = {'%', '%', 0}; /*%%*/
     65     0  stevel tchar S_PARCENTPLUS[] = {'%', '+', 0}; /*%+*/
     66     0  stevel tchar S_PARCENTSHARP[] = {'%', '#', 0}; /*%#*/
     67     0  stevel tchar S_PATH[] = {'P','A','T','H',0};/*"PATH"*/
     68     0  stevel tchar S_PERSENTSP[] = {'%',' ',0};
     69     0  stevel tchar S_PWD[]={'P', 'W', 'D', 0};
     70     0  stevel tchar S_Pjob[] = {'%','j','o','b', 0}; /*"%job"*/
     71     0  stevel tchar S_PjobAND[] = {'%','j','o','b',' ','&',0}; /*"%job &"*/
     72     0  stevel tchar S_QPPPQ[] = {'`', ' ', '.', '.', '.', ' ', '`', 0}; /*` ... `*/
     73     0  stevel tchar S_RBRA[] = {'}', 0};	/* } */
     74     0  stevel tchar S_RPAR[] = {')', 0}; /*)*/
     75     0  stevel tchar S_SEMICOLONSP[] = {';', ' ', 0};	/* | */
     76     0  stevel tchar S_SHARPSP[] = {'#',' ',0};
     77     0  stevel tchar S_SHELLPATH[] = {'/','b','i','n','/','c','s','h',0};
     78     0  stevel tchar S_SLADOTcshrc[] = {'/','.','c','s','h','r','c', 0};
     79     0  stevel tchar S_SLADOThistory[] = {'/','.','h','i','s','t','o','r','y', 0};
     80     0  stevel tchar S_SLADOTlogin[] = {'/','.','l','o','g','i','n', 0};
     81     0  stevel tchar S_SLADOTlogout[] = {'/','.','l','o','g','o','u','t', 0};
     82     0  stevel tchar S_SLASH[] = {'/', 0}; /* "/" */
     83     0  stevel tchar S_SP[] = {' ', 0};	/* */
     84     0  stevel tchar S_SPANDANDSP[] = {' ', '&', '&', ' ', 0};	/* && */
     85     0  stevel tchar S_SPBARBARSP[] = {' ', '|', '|', ' ', 0};	/* || */
     86     0  stevel tchar S_SPBARSP[] = {' ', '|', ' ', 0};	/* | */
     87     0  stevel tchar S_SPGTRGTRSP[] = {' ', '>', '>', ' ', 0};	/* >> */
     88     0  stevel tchar S_SPGTR[] = {' ', '>',0};	/* > */
     89     0  stevel tchar S_SPLESLESSP[] = {' ', '<', '<', ' ', 0};	/* << */
     90     0  stevel tchar S_SPLESSP[] = {' ', '<', ' ', 0};	/* < */
     91     0  stevel tchar S_SPPPP[] = {' ', '.', '.', '.', 0};	/* ... */
     92     0  stevel tchar S_SPRBRA[] = {' ', ')', 0};	/* )*/
     93  1301    jonb tchar S_SUNW_VARLEN[] = {'S', 'U', 'N', 'W', '_',
     94  1301    jonb 	'V', 'A', 'R', 'L', 'E', 'N', 0};
     95     0  stevel tchar S_TERM[] = {'T','E','R','M',0};/*TERM*/
     96     0  stevel tchar S_TIL[] = {'~', 0};	/* ~ */
     97     0  stevel tchar S_TOPBIT[] = {(tchar)QUOTE, 0};	/* Was "\200".  A hack! */
     98     0  stevel tchar S_USAGEFORMAT[] = {'%','U','u',' ','%','S','s',' ','%','E',' ','%','P', ' ','%','X','+','%','D','k',' ','%','I','+','%','O','i','o',' ','%','F','p','f','+', '%','W','w',0};
     99     0  stevel tchar S_USER[] = {'U','S','E','R',0};/*USER*/
    100     0  stevel tchar S_alias[] = { 'a','l','i','a','s', 0 };
    101     0  stevel tchar S_alloc[] = { 'a','l','l','o','c', 0};
    102     0  stevel tchar S_aout[] = {'a','.','o','u','t',0};
    103     0  stevel tchar S_argv[]={'a', 'r', 'g', 'v', 0};
    104     0  stevel tchar S_bg[] = { 'b','g', 0};
    105     0  stevel tchar S_bin[] = {'/','b','i','n',0};
    106     0  stevel tchar S_break[] = { 'b','r','e','a','k', 0};
    107     0  stevel tchar S_breaksw[] = { 'b','r','e','a','k','s','w', 0};
    108     0  stevel tchar S_bye[] = { 'b','y','e', 0};
    109     0  stevel tchar S_case[] = { 'c','a','s','e', 0};
    110     0  stevel tchar S_cd[] = { 'c','d', 0};
    111     0  stevel tchar S_cdpath[]={'c', 'd', 'p', 'a', 't', 'h', 0};
    112     0  stevel tchar S_chdir[] = { 'c','h','d','i','r', 0};
    113     0  stevel tchar S_child[] = {'c', 'h', 'i', 'l', 'd', 0};	/*child */
    114     0  stevel tchar S_continue[] = { 'c','o','n','t','i','n','u','e', 0};
    115     0  stevel tchar S_coredumpsize[] = {'c','o','r','e','d','u','m','p','s','i','z','e',0};/*"coredumpsize"*/
    116     0  stevel tchar S_cputime[] = {'c','p','u','t','i','m','e',0};/*"cputime"*/
    117     0  stevel tchar S_csh[]={'c', 's', 'h', 0};
    118     0  stevel tchar S_cwd[]={'c', 'w', 'd', 0};
    119     0  stevel tchar S_datasize[] = {'d','a','t','a','s','i','z','e',0};/*"datasize"*/
    120     0  stevel tchar S_default[] =  { 'd','e','f','a','u','l','t', 0 };
    121     0  stevel tchar S_descriptors[] = {'d', 'e', 's', 'c', 'r', 'i', 'p', 't', 'o', 'r', 's', 0};
    122     0  stevel tchar S_dirs[] =  { 'd','i','r','s', 0 };
    123     0  stevel tchar S_echo[] = {'e','c','h','o', 0};
    124     0  stevel tchar S_else[] =  { 'e','l','s','e', 0 };
    125     0  stevel tchar S_end[] =  { 'e','n','d', 0 };
    126     0  stevel tchar S_endif[] =  { 'e','n','d','i','f', 0 };
    127     0  stevel tchar S_endsw[] =  { 'e','n','d','s','w', 0 };
    128     0  stevel tchar S_erwxfdzo[] = {'e', 'r', 'w', 'x', 'f', 'd', 'z', 'o', 0}; /* erwxfdzo */
    129     0  stevel tchar S_eval[] =  { 'e','v','a','l', 0 };
    130     0  stevel tchar S_exec[] =  { 'e','x','e','c', 0 };
    131     0  stevel tchar S_exit[] =  { 'e','x','i','t', 0 };
    132     0  stevel tchar S_fg[] =  { 'f','g', 0 };
    133     0  stevel tchar S_fignore[] = {'f','i','g','n','o','r','e',0};
    134     0  stevel tchar S_filec[] = {'f','i','l','e','c',0};/*filec*/
    135     0  stevel tchar S_filesize[] = {'f','i','l','e','s','i','z','e',0};/*"filesize"*/
    136     0  stevel tchar S_foreach[] =  { 'f','o','r','e','a','c','h', 0 };
    137     0  stevel tchar S_gd[] =  { 'g','d', 0 };
    138     0  stevel tchar S_glob[] =  { 'g','l','o','b', 0 };
    139     0  stevel tchar S_goto[] =  { 'g','o','t','o', 0 };
    140     0  stevel tchar S_h[] = {'-','h',0};
    141     0  stevel tchar S_hardpaths[]={'h', 'a', 'r', 'd', 'p', 'a', 't', 'h', 's', 0};
    142     0  stevel tchar S_hashstat[] =  { 'h','a','s','h','s','t','a','t', 0 };
    143     0  stevel tchar S_histchars[] = {'h','i','s','t','c','h','a','r','s',0}; /*histchars*/
    144     0  stevel tchar S_history[] = {'h','i','s','t','o','r','y',0};
    145     0  stevel tchar S_home[]={'h', 'o', 'm', 'e', 0};
    146     0  stevel tchar S_hours[] = {'h','o','u','r','s',0};/*"hours"*/
    147     0  stevel tchar S_htrqxe[]={'h', 't', 'r', 'q', 'x', 'e', 0};
    148     0  stevel tchar S_if[] =  { 'i','f', 0 };
    149     0  stevel tchar S_ignoreeof[] = {'i','g','n','o','r','e','e','o','f',0};	/*"ignoreeof"*/
    150     0  stevel tchar S_jobs[] = {'j','o','b','s', 0};
    151     0  stevel tchar S_kbytes[] = {'k','b','y','t','e','s',0};/*"kbytes"*/
    152     0  stevel tchar S_kill[] =  { 'k','i','l','l', 0 };
    153     0  stevel tchar S_label[] =  { 'l','a','b','e','l', 0 };
    154     0  stevel tchar S_limit[] =  { 'l','i','m','i','t', 0 };
    155     0  stevel tchar S_login[] =  { 'l','o','g','i','n', 0 };
    156     0  stevel tchar S_logout[] =  { 'l','o','g','o','u','t', 0 };
    157     0  stevel tchar S_mail[] = {'m','a','i','l', 0};
    158     0  stevel tchar S_megabytes[] = {'m','e','g','a','b','y','t','e','s',0};/*"megabytes"*/
    159     0  stevel tchar S_memorysize[] = {'m','e','m','o','r','y','s','i','z','e',0};/*"memorysize"*/
    160     0  stevel tchar S_minutes[]={'m','i','n','u','t','e','s',0};/*"minutes"*/
    161     0  stevel tchar S_n[] = {'-','n',0};/*"-n"*/
    162     0  stevel tchar S_newgrp[] =  { 'n','e','w','g','r','p', 0 };
    163     0  stevel tchar S_nice[] =  { 'n','i','c','e', 0 };
    164     0  stevel tchar S_nobeep[] = {'n', 'o', 'b', 'e', 'e', 'p', 0};
    165     0  stevel tchar S_noclobber[] = {'n','o','c','l','o','b','b','e','r',0};/*noclobber*/
    166     0  stevel tchar S_noglob[] = {'n', 'o', 'g', 'l', 'o', 'b', 0}; /*noglob */
    167     0  stevel tchar S_nohup[] = {'n', 'o', 'h', 'u', 'p', 0};	/*nohup */
    168     0  stevel tchar S_nonomatch[] = {'n', 'o', 'n', 'o', 'm', 'a', 't', 'c', 'h', 0}; /*nonomatch */
    169     0  stevel tchar S_notify[] = {'n', 'o', 't', 'i', 'f', 'y', 0};	/*nofify */
    170     0  stevel tchar S_onintr[] =  { 'o','n','i','n','t','r', 0 };
    171     0  stevel tchar S_path[] = {'p','a','t','h', 0}; /*path*/
    172     0  stevel tchar S_popd[] =  { 'p','o','p','d', 0 };
    173     0  stevel tchar S_prompt[] = {'p','r','o','m','p','t', 0};
    174     0  stevel tchar S_pushd[] =  { 'p','u','s','h','d', 0 };
    175     0  stevel tchar S_rd[] =  { 'r','d', 0 };
    176     0  stevel tchar S_rehash[] =  { 'r','e','h','a','s','h', 0 };
    177     0  stevel tchar S_repeat[] =  { 'r','e','p','e','a','t', 0 };
    178     0  stevel tchar S_savehist[] = {'s','a','v','e','h','i','s','t', 0};
    179     0  stevel tchar S_seconds[] = {'s','e','c','o','n','d','s',0};/*"seconds"*/
    180     0  stevel tchar S_set[] =  { 's','e','t', 0 };
    181     0  stevel tchar S_setenv[] =  { 's','e','t','e','n','v', 0 };
    182     0  stevel tchar S_shell[] = {'s','h','e','l','l', 0};
    183     0  stevel tchar S_shift[] =  { 's','h','i','f','t', 0 };
    184     0  stevel tchar S_source[] = {'s','o','u','r','c','e',0};
    185     0  stevel tchar S_stacksize[] = {'s','t','a','c','k','s','i','z','e',0};/*"stacksize"*/
    186     0  stevel tchar S_status[]={'s', 't', 'a', 't', 'u', 's', 0};
    187     0  stevel tchar S_stop[] =  { 's','t','o','p', 0 };
    188     0  stevel tchar S_suspend[] =  { 's','u','s','p','e','n','d', 0 };
    189     0  stevel tchar S_switch[] =  { 's','w','i','t','c','h', 0 };
    190     0  stevel tchar S_term[] = {'t','e','r','m', 0};
    191     0  stevel tchar S_then[] = {'t','h','e','n',0}; /*"then"*/
    192     0  stevel tchar S_time[] = {'t', 'i', 'm', 'e', 0};	/*time*/
    193     0  stevel tchar S_umask[] =  { 'u','m','a','s','k', 0 };
    194     0  stevel tchar S_unalias[] =  { 'u','n','a','l','i','a','s', 0 };
    195     0  stevel tchar S_unhash[] =  { 'u','n','h','a','s','h', 0 };
    196     0  stevel tchar S_unlimit[] =  { 'u','n','l','i','m','i','t', 0 };
    197     0  stevel tchar S_unlimited[] = {'u','n','l','i','m','i','t','e','d',0};/*"unlimited"*/
    198     0  stevel tchar S_unset[] =  { 'u','n','s','e','t', 0 };
    199     0  stevel tchar S_unsetenv[] =  { 'u','n','s','e','t','e','n','v', 0 };
    200     0  stevel tchar S_user[] = {'u','s','e','r', 0};
    201     0  stevel tchar S_usrbin[] = {'/','u','s','r','/','b','i','n',0};
    202     0  stevel tchar S_usrucb[] = {'/','u','s','r','/','u','c','b',0};
    203     0  stevel tchar S_verbose[] = {'v','e','r','b','o','s','e', 0};
    204     0  stevel tchar S_wait[] =  { 'w','a','i','t', 0 };
    205     0  stevel tchar S_while[] =  { 'w','h','i','l','e', 0 };
    206     0  stevel /* Dummy search path for just absolute search when no path */
    207     0  stevel tchar *justabs[] =      { S_ /* "" */, 0 };
    208