xref: /titanic_50/usr/src/lib/libshell/common/data/msg.c (revision 3e14f97f673e8a630f076077de35afdd43dc1587)
1da2e3ebdSchin /***********************************************************************
2da2e3ebdSchin *                                                                      *
3da2e3ebdSchin *               This software is part of the ast package               *
4*3e14f97fSRoger A. Faulkner *          Copyright (c) 1982-2010 AT&T Intellectual Property          *
5da2e3ebdSchin *                      and is licensed under the                       *
6da2e3ebdSchin *                  Common Public License, Version 1.0                  *
77c2fbfb3SApril Chin *                    by AT&T Intellectual Property                     *
8da2e3ebdSchin *                                                                      *
9da2e3ebdSchin *                A copy of the License is available at                 *
10da2e3ebdSchin *            http://www.opensource.org/licenses/cpl1.0.txt             *
11da2e3ebdSchin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12da2e3ebdSchin *                                                                      *
13da2e3ebdSchin *              Information and Software Systems Research               *
14da2e3ebdSchin *                            AT&T Research                             *
15da2e3ebdSchin *                           Florham Park NJ                            *
16da2e3ebdSchin *                                                                      *
17da2e3ebdSchin *                  David Korn <dgk@research.att.com>                   *
18da2e3ebdSchin *                                                                      *
19da2e3ebdSchin ***********************************************************************/
20da2e3ebdSchin #pragma prototyped
21da2e3ebdSchin /*
22da2e3ebdSchin  *	UNIX shell
23da2e3ebdSchin  *	S. R. Bourne
24da2e3ebdSchin  *	Rewritten by David Korn
25da2e3ebdSchin  *
26da2e3ebdSchin  *	AT&T Labs
27da2e3ebdSchin  *
28da2e3ebdSchin  */
29da2e3ebdSchin 
30da2e3ebdSchin #include	<ast.h>
31da2e3ebdSchin #include	<errno.h>
32da2e3ebdSchin #include	"defs.h"
33da2e3ebdSchin #include	"path.h"
34da2e3ebdSchin #include	"io.h"
35da2e3ebdSchin #include	"shlex.h"
36da2e3ebdSchin #include	"timeout.h"
37da2e3ebdSchin #include	"history.h"
38da2e3ebdSchin #include	"builtins.h"
39da2e3ebdSchin #include	"jobs.h"
40da2e3ebdSchin #include	"edit.h"
41da2e3ebdSchin 
42da2e3ebdSchin /* error messages */
43da2e3ebdSchin const char e_timewarn[]		= "\r\n\ashell will timeout in 60 seconds due to inactivity";
44da2e3ebdSchin const char e_runvi[]		= "\\hist -e \"${VISUAL:-${EDITOR:-vi}}\" ";
45da2e3ebdSchin const char e_timeout[]		= "timed out waiting for input";
46da2e3ebdSchin const char e_mailmsg[]		= "you have mail in $_";
47da2e3ebdSchin const char e_query[]		= "no query process";
48da2e3ebdSchin const char e_history[]		= "no history file";
49da2e3ebdSchin const char e_histopen[]		= "history file cannot open";
50da2e3ebdSchin const char e_option[]		= "%s: bad option(s)";
51da2e3ebdSchin const char e_toomany[]		= "open file limit exceeded";
52da2e3ebdSchin const char e_argtype[]		= "invalid argument of type %c";
5334f9b3eeSRoland Mainz const char e_oneoperand[]	= "one operand expected";
54da2e3ebdSchin const char e_formspec[]		= "%c: unknown format specifier";
55da2e3ebdSchin const char e_badregexp[]	= "%s: invalid regular expression";
56da2e3ebdSchin const char e_number[]		= "%s: bad number";
57da2e3ebdSchin const char e_badlocale[]	= "%s: unknown locale";
58da2e3ebdSchin const char e_nullset[]		= "%s: parameter null";
59da2e3ebdSchin const char e_notset[]		= "%s: parameter not set";
60da2e3ebdSchin const char e_noparent[]		= "%s: no parent";
61da2e3ebdSchin const char e_subst[]		= "%s: bad substitution";
62da2e3ebdSchin const char e_create[]		= "%s: cannot create";
63da2e3ebdSchin const char e_tmpcreate[]	= "cannot create temporary file";
64da2e3ebdSchin const char e_restricted[]	= "%s: restricted";
65da2e3ebdSchin const char e_pfsh[]		= "%s: disabled in profile shell";
66da2e3ebdSchin const char e_pexists[]		= "process already exists";
67da2e3ebdSchin const char e_exists[]		= "%s: file already exists";
68da2e3ebdSchin const char e_pipe[]		= "cannot create pipe";
69da2e3ebdSchin const char e_alarm[]		= "cannot set alarm";
70da2e3ebdSchin const char e_open[]		= "%s: cannot open";
71da2e3ebdSchin const char e_notseek[]		= "%s: not seekable";
72da2e3ebdSchin const char e_badseek[]		= "%s: invalid seek offset";
73da2e3ebdSchin const char e_badpattern[]	= "%s: invalid shell pattern";
74da2e3ebdSchin const char e_noread[]		= "%s: pattern seek requires read access";
75da2e3ebdSchin const char e_logout[]		= "Use 'exit' to terminate this shell";
76da2e3ebdSchin const char e_exec[]		= "%s: cannot execute";
77da2e3ebdSchin const char e_pwd[]		= "cannot access parent directories";
78da2e3ebdSchin const char e_found[]		= "%s: not found";
79da2e3ebdSchin const char e_defined[]		= "%s: function not defined";
80da2e3ebdSchin const char e_nointerp[]		= "%s: interpreter not found";
81da2e3ebdSchin const char e_subscript[]	= "%s: subscript out of range";
82da2e3ebdSchin const char e_toodeep[]		= "%s: recursion too deep";
83da2e3ebdSchin const char e_access[]		= "permission denied";
84da2e3ebdSchin #ifdef _cmd_universe
85da2e3ebdSchin     const char e_nouniverse[]	= "universe not accessible";
86da2e3ebdSchin #endif /* _cmd_universe */
87da2e3ebdSchin const char e_direct[]		= "bad directory";
88da2e3ebdSchin const char e_file[]		= "%s: bad file unit number";
8934f9b3eeSRoland Mainz const char e_redirect[]		= "redirection failed";
90da2e3ebdSchin const char e_trap[]		= "%s: bad trap";
91da2e3ebdSchin const char e_readonly[]		= "%s: is read only";
92da2e3ebdSchin const char e_badfield[]		= "%d: negative field size";
93da2e3ebdSchin const char e_ident[]		= "%s: is not an identifier";
94da2e3ebdSchin const char e_badname[]		= "%s: invalid name";
95da2e3ebdSchin const char e_varname[]		= "%s: invalid variable name";
96da2e3ebdSchin const char e_badfun[]		= "%s: invalid function name";
97da2e3ebdSchin const char e_aliname[]		= "%s: invalid alias name";
9834f9b3eeSRoland Mainz const char e_badexport[]	= "%s: only simple variables can be exported";
99da2e3ebdSchin const char e_badref[]		= "%s: reference variable cannot be an array";
10034f9b3eeSRoland Mainz const char e_badsubscript[]	= "%c: invalid subscript in assignment";
101da2e3ebdSchin const char e_noarray[]		= "%s: cannot be an array";
1027c2fbfb3SApril Chin const char e_badappend[]	= "%s: invalid append to associative array";
103da2e3ebdSchin const char e_noref[]		= "%s: no reference name";
104da2e3ebdSchin const char e_selfref[]		= "%s: invalid self reference";
10534f9b3eeSRoland Mainz const char e_globalref[]	= "%s: global reference cannot refer to local variable";
106da2e3ebdSchin const char e_noalias[]		= "%s: alias not found\n";
107da2e3ebdSchin const char e_format[]		= "%s: bad format";
108da2e3ebdSchin const char e_redef[]		= "%s: type cannot be redefined";
1097c2fbfb3SApril Chin const char e_required[]		= "%s: is a required element of %s";
110da2e3ebdSchin const char e_badtformat[]	= "%c: bad format character in time format";
111da2e3ebdSchin const char e_nolabels[]		= "%s: label not implemented";
112da2e3ebdSchin const char e_notimp[]		= "%s: not implemented";
1137c2fbfb3SApril Chin const char e_notelem[]		= "%.*s: is not an element of %s";
1147c2fbfb3SApril Chin const char e_notenum[]		= "%s: not an enumeration type";
1157c2fbfb3SApril Chin const char e_unknowntype[]	= "%.*s: unknown type";
116da2e3ebdSchin const char e_nosupport[]	= "not supported";
117da2e3ebdSchin const char e_badrange[]		= "%d-%d: invalid range";
118da2e3ebdSchin const char e_eneedsarg[]	= "-e - requires single argument";
119da2e3ebdSchin const char e_badbase[]		= "%s unknown base";
120da2e3ebdSchin const char e_loop[]		= "%s: would cause loop";
121da2e3ebdSchin const char e_overlimit[]	= "%s: limit exceeded";
122da2e3ebdSchin const char e_badsyntax[]	= "incorrect syntax";
123da2e3ebdSchin const char e_badwrite[]		= "write to %d failed";
124da2e3ebdSchin const char e_on	[]		= "on";
125da2e3ebdSchin const char e_off[]		= "off";
126da2e3ebdSchin const char is_reserved[]	= " is a keyword";
127da2e3ebdSchin const char is_builtin[]		= " is a shell builtin";
1287c2fbfb3SApril Chin const char is_spcbuiltin[]	= " is a special shell builtin";
129da2e3ebdSchin const char is_builtver[]	= "is a shell builtin version of";
130da2e3ebdSchin const char is_alias[]		= "%s is an alias for ";
131da2e3ebdSchin const char is_xalias[]		= "%s is an exported alias for ";
132da2e3ebdSchin const char is_talias[]		= "is a tracked alias for";
133da2e3ebdSchin const char is_function[]	= " is a function";
134da2e3ebdSchin const char is_ufunction[]	= " is an undefined function";
135da2e3ebdSchin #ifdef JOBS
136da2e3ebdSchin #   ifdef SIGTSTP
137da2e3ebdSchin 	const char e_newtty[]	= "Switching to new tty driver...";
138da2e3ebdSchin 	const char e_oldtty[]	= "Reverting to old tty driver...";
139da2e3ebdSchin 	const char e_no_start[]	= "Cannot start job control";
140da2e3ebdSchin #   endif /*SIGTSTP */
141da2e3ebdSchin     const char e_no_jctl[]	= "No job control";
142da2e3ebdSchin     const char e_terminate[]	= "You have stopped jobs";
143da2e3ebdSchin     const char e_done[]		= " Done";
144da2e3ebdSchin     const char e_nlspace[]	= "\n      ";
145da2e3ebdSchin     const char e_running[]	= " Running";
146da2e3ebdSchin     const char e_ambiguous[]	= "%s: Ambiguous";
147da2e3ebdSchin     const char e_jobsrunning[]	= "You have running jobs";
148da2e3ebdSchin     const char e_no_job[]	= "no such job";
149da2e3ebdSchin     const char e_no_proc[]	= "no such process";
150da2e3ebdSchin     const char e_jobusage[]	= "%s: Arguments must be %%job or process ids";
151da2e3ebdSchin #endif /* JOBS */
152da2e3ebdSchin const char e_coredump[]		= "(coredump)";
153da2e3ebdSchin const char e_alphanum[]		= "[_[:alpha:]]*([_[:alnum:]])";
154da2e3ebdSchin const char e_devfdNN[]		= "/dev/fd/+([0-9])";
155da2e3ebdSchin const char e_devfdstd[]		= "/dev/@(fd/+([0-9])|std@(in|out|err))";
156da2e3ebdSchin const char e_signo[]		= "Signal %d";
157da2e3ebdSchin #if SHOPT_FS_3D
158da2e3ebdSchin     const char e_cantget[]	= "cannot get %s";
159da2e3ebdSchin     const char e_cantset[]	= "cannot set %s";
160da2e3ebdSchin     const char e_mapping[]	= "mapping";
161da2e3ebdSchin     const char e_versions[]	= "versions";
162da2e3ebdSchin #endif /* SHOPT_FS_3D */
163da2e3ebdSchin 
164da2e3ebdSchin /* string constants */
165da2e3ebdSchin const char e_heading[]		= "Current option settings";
166da2e3ebdSchin const char e_sptbnl[]		= " \t\n";
167da2e3ebdSchin const char e_defpath[]		= "/bin:/usr/bin:";
168da2e3ebdSchin const char e_defedit[]		= "/bin/ed";
169da2e3ebdSchin const char e_unknown []		= "<command unknown>";
170da2e3ebdSchin const char e_devnull[]		= "/dev/null";
171da2e3ebdSchin const char e_traceprompt[]	= "+ ";
172da2e3ebdSchin const char e_supprompt[]	= "# ";
173da2e3ebdSchin const char e_stdprompt[]	= "$ ";
174da2e3ebdSchin const char e_profile[]		= "$HOME/.profile";
175da2e3ebdSchin const char e_sysprofile[]	= "/etc/profile";
176da2e3ebdSchin const char e_suidprofile[]	= "/etc/suid_profile";
177da2e3ebdSchin #if SHOPT_SYSRC
178da2e3ebdSchin const char e_sysrc[]		= "/etc/ksh.kshrc";
179da2e3ebdSchin #endif
180da2e3ebdSchin #if SHOPT_BASH
181da2e3ebdSchin #if SHOPT_SYSRC
182da2e3ebdSchin const char e_bash_sysrc[]	= "/etc/bash.bashrc";
183da2e3ebdSchin #endif
184da2e3ebdSchin const char e_bash_rc[]		= "$HOME/.bashrc";
185da2e3ebdSchin const char e_bash_login[]	= "$HOME/.bash_login";
186da2e3ebdSchin const char e_bash_logout[]	= "$HOME/.bash_logout";
187da2e3ebdSchin const char e_bash_profile[]	= "$HOME/.bash_profile";
188da2e3ebdSchin #endif
189da2e3ebdSchin const char e_crondir[]		= "/usr/spool/cron/atjobs";
190da2e3ebdSchin const char e_prohibited[]	= "login setuid/setgid shells prohibited";
191da2e3ebdSchin #if SHOPT_SUID_EXEC
192da2e3ebdSchin    const char e_suidexec[]	= "/etc/suid_exec";
193da2e3ebdSchin #endif /* SHOPT_SUID_EXEC */
194da2e3ebdSchin const char hist_fname[]		= "/.sh_history";
195da2e3ebdSchin const char e_dot[]		= ".";
196da2e3ebdSchin const char e_envmarker[]	= "A__z";
197da2e3ebdSchin const char e_timeformat[]	= "\nreal\t%2lR\nuser\t%2lU\nsys\t%2lS";
198da2e3ebdSchin const char e_dict[]		= "libshell";
199