xref: /freebsd/contrib/tcsh/sh.decls.h (revision 6560ac57ce879857203bc456cdc3849808dc0700)
1c80476e4SDavid E. O'Brien /*
2c80476e4SDavid E. O'Brien  * sh.decls.h	 External declarations from sh*.c
3c80476e4SDavid E. O'Brien  */
4c80476e4SDavid E. O'Brien /*-
5c80476e4SDavid E. O'Brien  * Copyright (c) 1980, 1991 The Regents of the University of California.
6c80476e4SDavid E. O'Brien  * All rights reserved.
7c80476e4SDavid E. O'Brien  *
8c80476e4SDavid E. O'Brien  * Redistribution and use in source and binary forms, with or without
9c80476e4SDavid E. O'Brien  * modification, are permitted provided that the following conditions
10c80476e4SDavid E. O'Brien  * are met:
11c80476e4SDavid E. O'Brien  * 1. Redistributions of source code must retain the above copyright
12c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer.
13c80476e4SDavid E. O'Brien  * 2. Redistributions in binary form must reproduce the above copyright
14c80476e4SDavid E. O'Brien  *    notice, this list of conditions and the following disclaimer in the
15c80476e4SDavid E. O'Brien  *    documentation and/or other materials provided with the distribution.
1629301572SMark Peek  * 3. Neither the name of the University nor the names of its contributors
17c80476e4SDavid E. O'Brien  *    may be used to endorse or promote products derived from this software
18c80476e4SDavid E. O'Brien  *    without specific prior written permission.
19c80476e4SDavid E. O'Brien  *
20c80476e4SDavid E. O'Brien  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21c80476e4SDavid E. O'Brien  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22c80476e4SDavid E. O'Brien  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23c80476e4SDavid E. O'Brien  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24c80476e4SDavid E. O'Brien  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25c80476e4SDavid E. O'Brien  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26c80476e4SDavid E. O'Brien  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27c80476e4SDavid E. O'Brien  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28c80476e4SDavid E. O'Brien  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29c80476e4SDavid E. O'Brien  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c80476e4SDavid E. O'Brien  * SUCH DAMAGE.
31c80476e4SDavid E. O'Brien  */
32c80476e4SDavid E. O'Brien #ifndef _h_sh_decls
33c80476e4SDavid E. O'Brien #define _h_sh_decls
34c80476e4SDavid E. O'Brien 
35c80476e4SDavid E. O'Brien /*
36c80476e4SDavid E. O'Brien  * sh.c
37c80476e4SDavid E. O'Brien  */
3845e5710bSMark Peek extern	Char	 	 *gethdir	(const Char *);
3945e5710bSMark Peek extern	void		  dosource	(Char **, struct command *);
40*6560ac57SDmitry Chagin extern	void		  exitstat	(void) __attribute__((__noreturn__));
4145e5710bSMark Peek extern	void		  goodbye	(Char **, struct command *);
4245e5710bSMark Peek extern	void		  importpath	(Char *);
4345e5710bSMark Peek extern	void		  initdesc	(void);
4445e5710bSMark Peek extern	void		  pintr		(void);
4545e5710bSMark Peek extern	void		  pintr1	(int);
4645e5710bSMark Peek extern	void		  phup		(void);
4745e5710bSMark Peek extern	void		  process	(int);
4845e5710bSMark Peek extern	void		  untty		(void);
49c80476e4SDavid E. O'Brien #ifdef PROF
509ccc37e3SMark Peek extern	void		  done		(int) __attribute__((__noreturn__));
51c80476e4SDavid E. O'Brien #else
529ccc37e3SMark Peek extern	void		  xexit		(int) __attribute__((__noreturn__));
53c80476e4SDavid E. O'Brien #endif
54a15e6f9aSMark Peek extern	int		  grabpgrp	(int, pid_t);
55c80476e4SDavid E. O'Brien 
56c80476e4SDavid E. O'Brien /*
57c80476e4SDavid E. O'Brien  * sh.dir.c
58c80476e4SDavid E. O'Brien  */
5945e5710bSMark Peek extern	void		  dinit		(Char *);
6045e5710bSMark Peek extern	void		  dodirs	(Char **, struct command *);
6145e5710bSMark Peek extern	Char		 *dcanon	(Char *, Char *);
6245e5710bSMark Peek extern	void		  dtildepr	(Char *);
6345e5710bSMark Peek extern	void		  dtilde	(void);
6445e5710bSMark Peek extern	void		  dochngd	(Char **, struct command *);
6545e5710bSMark Peek extern	Char		 *dnormalize	(const Char *, int);
6645e5710bSMark Peek extern	void		  dopushd	(Char **, struct command *);
6745e5710bSMark Peek extern	void		  dopopd	(Char **, struct command *);
6845e5710bSMark Peek extern	void		  dfree		(struct directory *);
6945e5710bSMark Peek extern	void		  dsetstack	(void);
7045e5710bSMark Peek extern	const Char	 *getstakd	(int);
7145e5710bSMark Peek extern	void		  recdirs	(Char *, int);
7245e5710bSMark Peek extern	void		  loaddirs	(Char *);
73c80476e4SDavid E. O'Brien 
74c80476e4SDavid E. O'Brien /*
75c80476e4SDavid E. O'Brien  * sh.dol.c
76c80476e4SDavid E. O'Brien  */
7745e5710bSMark Peek extern	void		  Dfix		(struct command *);
7845e5710bSMark Peek extern	Char		 *Dfix1		(Char *);
7945e5710bSMark Peek extern	void		  heredoc	(Char *);
8019d2e3deSDmitry Chagin extern  Char		 *randsuf	(void);
81c80476e4SDavid E. O'Brien 
82c80476e4SDavid E. O'Brien /*
83c80476e4SDavid E. O'Brien  * sh.err.c
84c80476e4SDavid E. O'Brien  */
859ccc37e3SMark Peek extern	void		  reset		(void) __attribute__((__noreturn__));
8645e5710bSMark Peek extern	void		  cleanup_push_internal(void *, void (*fn) (void *)
8745e5710bSMark Peek #ifdef CLEANUP_DEBUG
8845e5710bSMark Peek 						, const char *, size_t
8945e5710bSMark Peek #define cleanup_push(v, f) cleanup_push_internal(v, f, __FILE__, __LINE__)
9045e5710bSMark Peek #else
9145e5710bSMark Peek #define cleanup_push(v, f) cleanup_push_internal(v, f)
9245e5710bSMark Peek #endif
9345e5710bSMark Peek );
949ccc37e3SMark Peek extern	int		  cleanup_reset(void);
9545e5710bSMark Peek extern	void		  cleanup_ignore(void *);
9645e5710bSMark Peek extern	void		  cleanup_until(void *);
9745e5710bSMark Peek extern	void		  cleanup_until_mark(void);
9845e5710bSMark Peek extern	size_t		  cleanup_push_mark(void);
9945e5710bSMark Peek extern	void		  cleanup_pop_mark(size_t);
10045e5710bSMark Peek extern	void		  open_cleanup(void *);
10145e5710bSMark Peek extern	void		  opendir_cleanup(void *);
10245e5710bSMark Peek extern	void		  sigint_cleanup(void *);
10345e5710bSMark Peek extern	void		  sigprocmask_cleanup(void *);
10445e5710bSMark Peek extern	void		  xfree_indirect(void *);
10545e5710bSMark Peek extern	void		  errinit	(void);
10645e5710bSMark Peek extern	void		  seterror	(unsigned int, ...);
1079ccc37e3SMark Peek extern	void		  fixerror	(void);
1089ccc37e3SMark Peek extern	void		  stderror	(unsigned int, ...)
1099ccc37e3SMark Peek     __attribute__((__noreturn__));
110c80476e4SDavid E. O'Brien 
111c80476e4SDavid E. O'Brien /*
112c80476e4SDavid E. O'Brien  * sh.exec.c
113c80476e4SDavid E. O'Brien  */
11445e5710bSMark Peek extern	void		  doexec	(struct command *, int);
11545e5710bSMark Peek extern	void		  dohash	(Char **, struct command *);
11645e5710bSMark Peek extern	void		  dounhash	(Char **, struct command *);
11745e5710bSMark Peek extern	void		  execash	(Char **, struct command *);
11845e5710bSMark Peek extern	void		  hashstat	(Char **, struct command *);
11945e5710bSMark Peek extern	void		  xechoit	(Char **);
12045e5710bSMark Peek extern	int		  executable	(const Char *, const Char *, int);
12145e5710bSMark Peek extern	int		  tellmewhat	(struct wordent *, Char **);
12245e5710bSMark Peek extern	void		  dowhere	(Char **, struct command *);
12345e5710bSMark Peek extern	int		  find_cmd	(Char *, int);
124c80476e4SDavid E. O'Brien 
125c80476e4SDavid E. O'Brien /*
126c80476e4SDavid E. O'Brien  * sh.exp.c
127c80476e4SDavid E. O'Brien  */
12845e5710bSMark Peek extern  Char		 *filetest      (Char *, Char ***, int);
1299ccc37e3SMark Peek extern	tcsh_number_t 	  expr		(Char ***);
1309ccc37e3SMark Peek extern	tcsh_number_t	  exp0		(Char ***, int);
131c80476e4SDavid E. O'Brien 
132c80476e4SDavid E. O'Brien /*
133c80476e4SDavid E. O'Brien  * sh.file.c
134c80476e4SDavid E. O'Brien  */
13529301572SMark Peek #if defined(FILEC) && defined(TIOCSTI)
13645e5710bSMark Peek extern	size_t		  tenex		(Char *, size_t);
137c80476e4SDavid E. O'Brien #endif
138c80476e4SDavid E. O'Brien 
139c80476e4SDavid E. O'Brien /*
140c80476e4SDavid E. O'Brien  * sh.func.c
141c80476e4SDavid E. O'Brien  */
14245e5710bSMark Peek extern	void		  tsetenv	(const Char *, const Char *);
14345e5710bSMark Peek extern	void		  Unsetenv	(Char *);
14445e5710bSMark Peek extern	void		  doalias	(Char **, struct command *);
14545e5710bSMark Peek extern	void		  dobreak	(Char **, struct command *);
14645e5710bSMark Peek extern	void		  docontin	(Char **, struct command *);
14745e5710bSMark Peek extern	void		  doecho	(Char **, struct command *);
14845e5710bSMark Peek extern	void		  doelse	(Char **, struct command *);
14945e5710bSMark Peek extern	void		  doend		(Char **, struct command *);
15045e5710bSMark Peek extern	void		  doeval	(Char **, struct command *);
15145e5710bSMark Peek extern	void		  doexit	(Char **, struct command *);
15245e5710bSMark Peek extern	void		  doforeach	(Char **, struct command *);
15345e5710bSMark Peek extern	void		  doglob	(Char **, struct command *);
15445e5710bSMark Peek extern	void		  dogoto	(Char **, struct command *);
15545e5710bSMark Peek extern	void		  doif		(Char **, struct command *);
15645e5710bSMark Peek extern	void		  dolimit	(Char **, struct command *);
15745e5710bSMark Peek extern	void		  dologin	(Char **, struct command *);
15845e5710bSMark Peek extern	void		  dologout	(Char **, struct command *);
159c80476e4SDavid E. O'Brien #ifdef NEWGRP
16045e5710bSMark Peek extern	void		  donewgrp	(Char **, struct command *);
161c80476e4SDavid E. O'Brien #endif
16245e5710bSMark Peek extern	void		  donohup	(Char **, struct command *);
16345e5710bSMark Peek extern	void		  dohup		(Char **, struct command *);
16445e5710bSMark Peek extern	void		  doonintr	(Char **, struct command *);
16545e5710bSMark Peek extern	void		  doprintenv	(Char **, struct command *);
16645e5710bSMark Peek extern	void		  dorepeat	(Char **, struct command *);
16745e5710bSMark Peek extern	void		  dofiletest	(Char **, struct command *);
16845e5710bSMark Peek extern	void		  dosetenv	(Char **, struct command *);
16945e5710bSMark Peek extern	void		  dosuspend	(Char **, struct command *);
17045e5710bSMark Peek extern	void		  doswbrk	(Char **, struct command *);
17145e5710bSMark Peek extern	void		  doswitch	(Char **, struct command *);
17245e5710bSMark Peek extern	void		  doumask	(Char **, struct command *);
17345e5710bSMark Peek extern	void		  dounlimit	(Char **, struct command *);
17445e5710bSMark Peek extern	void		  dounsetenv	(Char **, struct command *);
17545e5710bSMark Peek extern	void		  dowhile	(Char **, struct command *);
17645e5710bSMark Peek extern	void		  dozip		(Char **, struct command *);
17745e5710bSMark Peek extern	void		  func		(struct command *,
17845e5710bSMark Peek 					 const struct biltins *);
17945e5710bSMark Peek extern	void		  gotolab	(Char *);
18045e5710bSMark Peek extern const struct biltins *isbfunc	(struct command *);
18145e5710bSMark Peek extern	void		  prvars	(void);
18245e5710bSMark Peek extern	int		  srchx		(Char *);
18345e5710bSMark Peek extern	void		  unalias	(Char **, struct command *);
18445e5710bSMark Peek extern	void		  wfree		(void);
18545e5710bSMark Peek extern	void		  dobuiltins	(Char **, struct command *);
18645e5710bSMark Peek extern	void		  reexecute	(struct command *);
18719d2e3deSDmitry Chagin extern  int		  getYN		(const char *);
188c80476e4SDavid E. O'Brien 
189c80476e4SDavid E. O'Brien /*
190c80476e4SDavid E. O'Brien  * sh.glob.c
191c80476e4SDavid E. O'Brien  */
19245e5710bSMark Peek extern	Char	 	 *globequal	(Char *);
19345e5710bSMark Peek extern	Char		**dobackp	(Char *, int);
19445e5710bSMark Peek extern	Char		 *globone	(Char *, int);
19545e5710bSMark Peek extern	int		  Gmatch	(const Char *, const Char *);
19645e5710bSMark Peek extern	int		  Gnmatch	(const Char *, const Char *,
19745e5710bSMark Peek 					 const Char **);
19845e5710bSMark Peek extern	Char		**globall	(Char **, int);
19945e5710bSMark Peek extern	Char		**glob_all_or_error(Char **);
20045e5710bSMark Peek extern	void		  rscan		(Char **, void (*)(Char));
20145e5710bSMark Peek extern	int		  tglob		(Char **);
20245e5710bSMark Peek extern	void		  trim		(Char **);
20323338178SMark Peek 
20445e5710bSMark Peek #if !defined(WINNT_NATIVE) && defined(NLS_CATALOGS)
20545e5710bSMark Peek extern	char		 *xcatgets	(nl_catd, int, int, const char *);
20645e5710bSMark Peek #if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO)
20745e5710bSMark Peek extern	char		 *iconv_catgets	(nl_catd, int, int, const char *);
20823338178SMark Peek #endif
20923338178SMark Peek #endif
21045e5710bSMark Peek extern	void		  nlsinit	(void);
21145e5710bSMark Peek extern	void	          nlsclose	(void);
21245e5710bSMark Peek extern  int	  	  t_pmatch	(const Char *, const Char *,
21345e5710bSMark Peek 					 const Char **, int);
214c80476e4SDavid E. O'Brien 
215c80476e4SDavid E. O'Brien /*
216c80476e4SDavid E. O'Brien  * sh.hist.c
217c80476e4SDavid E. O'Brien  */
21845e5710bSMark Peek extern	void	 	  dohist	(Char **, struct command *);
2199ccc37e3SMark Peek extern  struct Hist 	 *enthist	(int, struct wordent *, int, int, int);
22045e5710bSMark Peek extern	void	 	  savehist	(struct wordent *, int);
22145e5710bSMark Peek extern	char		 *fmthist	(int, ptr_t);
22245e5710bSMark Peek extern	void		  rechist	(Char *, int);
22345e5710bSMark Peek extern	void		  loadhist	(Char *, int);
2249ccc37e3SMark Peek extern	void		  displayHistStats(const char *);
22519d2e3deSDmitry Chagin extern	void		  sethistory	(int);
226c80476e4SDavid E. O'Brien 
227c80476e4SDavid E. O'Brien /*
228c80476e4SDavid E. O'Brien  * sh.init.c
229c80476e4SDavid E. O'Brien  */
23045e5710bSMark Peek extern	void		  mesginit	(void);
231c80476e4SDavid E. O'Brien 
232c80476e4SDavid E. O'Brien /*
233c80476e4SDavid E. O'Brien  * sh.lex.c
234c80476e4SDavid E. O'Brien  */
23545e5710bSMark Peek extern	void		  addla		(Char *);
23645e5710bSMark Peek extern	void		  bseek		(struct Ain *);
23745e5710bSMark Peek extern	void		  btell		(struct Ain *);
23845e5710bSMark Peek extern	void		  btoeof	(void);
23945e5710bSMark Peek extern	void		  copylex	(struct wordent *, struct wordent *);
24045e5710bSMark Peek extern	Char		 *domod		(Char *, Char);
24119d2e3deSDmitry Chagin extern	void		  initlex	(struct wordent *);
24245e5710bSMark Peek extern	void		  freelex	(struct wordent *);
24345e5710bSMark Peek extern	int		  lex		(struct wordent *);
24445e5710bSMark Peek extern	void		  lex_cleanup	(void *);
24545e5710bSMark Peek extern	void		  prlex		(struct wordent *);
24645e5710bSMark Peek extern	eChar		  readc		(int);
24745e5710bSMark Peek extern	void		  settell	(void);
24845e5710bSMark Peek extern	void		  unreadc	(Char);
24919d2e3deSDmitry Chagin extern	ssize_t		  wide_read	(int, Char *, size_t, int);
250c80476e4SDavid E. O'Brien 
251c80476e4SDavid E. O'Brien 
252c80476e4SDavid E. O'Brien /*
253c80476e4SDavid E. O'Brien  * sh.misc.c
254c80476e4SDavid E. O'Brien  */
25545e5710bSMark Peek extern	int		  any		(const char *, Char);
25645e5710bSMark Peek extern	Char		**blkcpy	(Char **, Char **);
25745e5710bSMark Peek extern	void		  blkfree	(Char **);
25845e5710bSMark Peek extern	void		  blk_cleanup	(void *);
25945e5710bSMark Peek extern	void		  blk_indirect_cleanup(void *);
26045e5710bSMark Peek extern	int		  blklen	(Char **);
26145e5710bSMark Peek extern	void		  blkpr		(Char *const *);
26245e5710bSMark Peek extern	Char		 *blkexpand	(Char *const *);
26345e5710bSMark Peek extern	Char		**blkspl	(Char **, Char **);
26445e5710bSMark Peek extern	void		  closem	(void);
265c80476e4SDavid E. O'Brien #ifndef CLOSE_ON_EXEC
26645e5710bSMark Peek extern  void 		  closech	(void);
267c80476e4SDavid E. O'Brien #endif /* !CLOSE_ON_EXEC */
26845e5710bSMark Peek extern	Char		**copyblk	(Char **);
26945e5710bSMark Peek extern	int		  dcopy		(int, int);
27045e5710bSMark Peek extern	int		  dmove		(int, int);
27145e5710bSMark Peek extern	void		  donefds	(void);
27245e5710bSMark Peek extern	Char		  lastchr	(Char *);
27345e5710bSMark Peek extern	void		  lshift	(Char **, int);
27445e5710bSMark Peek extern	int		  number	(Char *);
27545e5710bSMark Peek extern	int		  prefix	(const Char *, const Char *);
27645e5710bSMark Peek extern	Char		**saveblk	(Char **);
27745e5710bSMark Peek extern	void		  setzero	(void *, size_t);
27845e5710bSMark Peek extern	Char		 *strip		(Char *);
27945e5710bSMark Peek extern	Char		 *quote		(Char *);
28045e5710bSMark Peek extern	const Char	 *quote_meta	(struct Strbuf *, const Char *);
2819ccc37e3SMark Peek #ifndef SHORT_STRINGS
28245e5710bSMark Peek extern	char		 *strnsave	(const char *, size_t);
2839ccc37e3SMark Peek #endif
28445e5710bSMark Peek extern	char		 *strsave	(const char *);
2859ccc37e3SMark Peek extern	void		  udvar		(Char *) __attribute__((__noreturn__));
286c80476e4SDavid E. O'Brien #ifndef POSIX
28745e5710bSMark Peek extern  char   	  	 *strstr	(const char *, const char *);
288c80476e4SDavid E. O'Brien #endif /* !POSIX */
28945e5710bSMark Peek extern	char		 *strspl	(const char *, const char *);
29045e5710bSMark Peek extern	char		 *strend	(const char *);
29145e5710bSMark Peek extern	char		 *areadlink	(const char *);
29245e5710bSMark Peek extern	void		  xclose	(int);
29345e5710bSMark Peek extern	void		  xclosedir	(DIR *);
29445e5710bSMark Peek extern	int		  xcreat	(const char *, mode_t);
29545e5710bSMark Peek extern	struct group	 *xgetgrgid	(gid_t);
29645e5710bSMark Peek extern	struct passwd	 *xgetpwnam	(const char *);
29745e5710bSMark Peek extern	struct passwd	 *xgetpwuid	(uid_t);
29845e5710bSMark Peek extern	int		  xopen		(const char *, int, ...);
29945e5710bSMark Peek extern	ssize_t		  xread		(int, void *, size_t);
30045e5710bSMark Peek extern	int		  xtcsetattr	(int, int, const struct termios *);
30145e5710bSMark Peek extern	ssize_t		  xwrite	(int, const void *, size_t);
302c80476e4SDavid E. O'Brien 
303c80476e4SDavid E. O'Brien /*
304c80476e4SDavid E. O'Brien  * sh.parse.c
305c80476e4SDavid E. O'Brien  */
30645e5710bSMark Peek extern	void		  alias		(struct wordent *);
30745e5710bSMark Peek extern	void		  freesyn	(struct command *);
30845e5710bSMark Peek extern struct command 	 *syntax	(const struct wordent *,
30945e5710bSMark Peek 					 const struct wordent *, int);
31045e5710bSMark Peek extern	void		  syntax_cleanup(void *);
311c80476e4SDavid E. O'Brien 
312c80476e4SDavid E. O'Brien /*
313c80476e4SDavid E. O'Brien  * sh.print.c
314c80476e4SDavid E. O'Brien  */
31545e5710bSMark Peek extern	void		  drainoline	(void);
31645e5710bSMark Peek extern	void		  flush		(void);
317c80476e4SDavid E. O'Brien #ifdef BSDTIMES
31845e5710bSMark Peek extern	void		  pcsecs	(unsigned long);
319c80476e4SDavid E. O'Brien #else /* !BSDTIMES */
320c80476e4SDavid E. O'Brien # ifdef POSIX
32145e5710bSMark Peek extern	void		  pcsecs	(clock_t);
322c80476e4SDavid E. O'Brien # else /* !POSIX */
32345e5710bSMark Peek extern	void		  pcsecs	(time_t);
324c80476e4SDavid E. O'Brien # endif /* !POSIX */
325c80476e4SDavid E. O'Brien #endif /* BSDTIMES */
326c80476e4SDavid E. O'Brien #ifdef BSDLIMIT
32745e5710bSMark Peek extern	void		  psecs		(unsigned long);
328c80476e4SDavid E. O'Brien #endif /* BSDLIMIT */
32945e5710bSMark Peek extern	int		  putpure	(int);
33045e5710bSMark Peek extern	int		  putraw	(int);
33145e5710bSMark Peek extern	void		  xputchar	(int);
33223338178SMark Peek #ifdef WIDE_STRINGS
33345e5710bSMark Peek extern	void		  putwraw	(Char);
33445e5710bSMark Peek extern	void		  xputwchar	(Char);
33523338178SMark Peek #else
33623338178SMark Peek # define putwraw(C) putraw(C)
33723338178SMark Peek # define xputwchar(C) xputchar(C)
33823338178SMark Peek #endif
33945e5710bSMark Peek extern	void		  output_raw_restore(void *);
340c80476e4SDavid E. O'Brien 
341c80476e4SDavid E. O'Brien 
342c80476e4SDavid E. O'Brien /*
343c80476e4SDavid E. O'Brien  * sh.proc.c
344c80476e4SDavid E. O'Brien  */
34545e5710bSMark Peek extern	void		  dobg		(Char **, struct command *);
34645e5710bSMark Peek extern	void		  dobg1		(Char **, struct command *);
34745e5710bSMark Peek extern	void		  dofg		(Char **, struct command *);
34845e5710bSMark Peek extern	void		  dofg1		(Char **, struct command *);
34945e5710bSMark Peek extern	void		  dojobs	(Char **, struct command *);
35045e5710bSMark Peek extern	void		  dokill	(Char **, struct command *);
35145e5710bSMark Peek extern	void		  donotify	(Char **, struct command *);
35245e5710bSMark Peek extern	void		  dostop	(Char **, struct command *);
35345e5710bSMark Peek extern	void		  dowait	(Char **, struct command *);
35445e5710bSMark Peek extern	void		  palloc	(pid_t, struct command *);
35545e5710bSMark Peek extern	void		  panystop	(int);
35645e5710bSMark Peek extern	void		  pchild	(void);
35745e5710bSMark Peek extern	void		  pendjob	(void);
35845e5710bSMark Peek extern	pid_t		  pfork		(struct command *, int);
35945e5710bSMark Peek extern	void		  pgetty	(int, pid_t);
36045e5710bSMark Peek extern	void		  pjwait	(struct process *);
36145e5710bSMark Peek extern	void		  pnote		(void);
36245e5710bSMark Peek extern	void		  psavejob	(void);
36345e5710bSMark Peek extern	void		  psavejob_cleanup(void *);
36445e5710bSMark Peek extern	int		  pstart	(struct process *, int);
36545e5710bSMark Peek extern	void		  pwait		(void);
36645e5710bSMark Peek extern  struct process   *pfind		(Char *);
367c80476e4SDavid E. O'Brien 
368c80476e4SDavid E. O'Brien /*
369c80476e4SDavid E. O'Brien  * sh.sem.c
370c80476e4SDavid E. O'Brien  */
371a15e6f9aSMark Peek extern	void		  execute	(struct command *, volatile int, int *,
37245e5710bSMark Peek 					 int *, int);
37345e5710bSMark Peek extern	void		  mypipe	(int *);
374c80476e4SDavid E. O'Brien 
375c80476e4SDavid E. O'Brien /*
376c80476e4SDavid E. O'Brien  * sh.set.c
377c80476e4SDavid E. O'Brien  */
37845e5710bSMark Peek extern	struct varent 	 *adrof1	(const Char *, struct varent *);
37945e5710bSMark Peek extern	void		  doset		(Char **, struct command *);
38045e5710bSMark Peek extern	void		  dolet		(Char **, struct command *);
3819ccc37e3SMark Peek extern	Char		 *putn		(tcsh_number_t);
3829ccc37e3SMark Peek extern	tcsh_number_t	  getn		(const Char *);
38345e5710bSMark Peek extern	Char		 *value1	(Char *, struct varent *);
38445e5710bSMark Peek extern	void		  setcopy	(const Char *, const Char *, int);
38545e5710bSMark Peek extern	void		  setv		(const Char *, Char *, int);
38645e5710bSMark Peek extern	void		  set1		(const Char *, Char **,
38745e5710bSMark Peek 					 struct varent *, int);
38845e5710bSMark Peek extern	void		  setq		(const Char *, Char **,
38945e5710bSMark Peek 					 struct varent *, int);
39045e5710bSMark Peek extern	void		  unset		(Char **, struct command *);
39145e5710bSMark Peek extern	void		  unset1	(Char *[], struct varent *);
39245e5710bSMark Peek extern	void		  unsetv	(Char *);
3939ccc37e3SMark Peek extern	void		  setNS		(const Char *);
39445e5710bSMark Peek extern	void		  shift		(Char **, struct command *);
39545e5710bSMark Peek extern	void		  plist		(struct varent *, int);
39645e5710bSMark Peek extern	Char		 *unparse	(struct command *);
397c80476e4SDavid E. O'Brien #if defined(DSPMBYTE)
39845e5710bSMark Peek extern	void 		  update_dspmbyte_vars	(void);
39945e5710bSMark Peek extern	void		  autoset_dspmbyte	(const Char *);
400c80476e4SDavid E. O'Brien #endif
4019ccc37e3SMark Peek #if defined(AUTOSET_KANJI)
4029ccc37e3SMark Peek extern	void		  autoset_kanji	(void);
4039ccc37e3SMark Peek #endif
40419d2e3deSDmitry Chagin extern	void		  update_wordchars	(void);
405c80476e4SDavid E. O'Brien 
406c80476e4SDavid E. O'Brien /*
407c80476e4SDavid E. O'Brien  * sh.time.c
408c80476e4SDavid E. O'Brien  */
40945e5710bSMark Peek extern	void		  donice	(Char **, struct command *);
41045e5710bSMark Peek extern	void		  dotime	(Char **, struct command *);
411c80476e4SDavid E. O'Brien #ifdef BSDTIMES
41245e5710bSMark Peek extern	void		  prusage	(struct sysrusage *,
413c80476e4SDavid E. O'Brien 					 struct sysrusage *,
41445e5710bSMark Peek 					 timeval_t *, timeval_t *);
41545e5710bSMark Peek extern	void		  ruadd		(struct sysrusage *,
41645e5710bSMark Peek 					 struct sysrusage *);
417c80476e4SDavid E. O'Brien #else /* BSDTIMES */
418c80476e4SDavid E. O'Brien # ifdef _SEQUENT_
41945e5710bSMark Peek extern	void		  prusage	(struct process_stats *,
420c80476e4SDavid E. O'Brien 					 struct process_stats *,
42145e5710bSMark Peek 					 timeval_t *, timeval_t *);
42245e5710bSMark Peek extern	void		  ruadd		(struct process_stats *,
42345e5710bSMark Peek 					 struct process_stats *);
424c80476e4SDavid E. O'Brien # else /* !_SEQUENT_ */
425c80476e4SDavid E. O'Brien #  ifdef POSIX
42645e5710bSMark Peek extern	void		  prusage	(struct tms *, struct tms *,
42745e5710bSMark Peek 					 clock_t, clock_t);
428c80476e4SDavid E. O'Brien #  else	/* !POSIX */
42945e5710bSMark Peek extern	void		  prusage	(struct tms *, struct tms *,
43045e5710bSMark Peek 					 time_t, time_t);
431c80476e4SDavid E. O'Brien #  endif /* !POSIX */
432c80476e4SDavid E. O'Brien # endif	/* !_SEQUENT_ */
433c80476e4SDavid E. O'Brien #endif /* BSDTIMES */
43445e5710bSMark Peek extern	void		  settimes	(void);
435c80476e4SDavid E. O'Brien #if defined(BSDTIMES) || defined(_SEQUENT_)
43645e5710bSMark Peek extern	void		  tvsub		(struct timeval *,
437c80476e4SDavid E. O'Brien 					 struct timeval *,
43845e5710bSMark Peek 					 struct timeval *);
439c80476e4SDavid E. O'Brien #endif /* BSDTIMES || _SEQUENT_ */
440c80476e4SDavid E. O'Brien 
44145e5710bSMark Peek /*
44245e5710bSMark Peek  * tw.parse.c
44345e5710bSMark Peek  */
44445e5710bSMark Peek extern	 void		  copyn			(Char *, const Char *, size_t);
44545e5710bSMark Peek extern	 void		  catn			(Char *, const Char *, int);
44645e5710bSMark Peek 
447c80476e4SDavid E. O'Brien #endif /* _h_sh_decls */
448