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