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