diff options
Diffstat (limited to 'sh.decls.h')
-rw-r--r-- | sh.decls.h | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/sh.decls.h b/sh.decls.h new file mode 100644 index 0000000..41cddba --- /dev/null +++ b/sh.decls.h @@ -0,0 +1,432 @@ +/* $Header: /p/tcsh/cvsroot/tcsh/sh.decls.h,v 3.53 2006/08/24 20:56:31 christos Exp $ */ +/* + * sh.decls.h External declarations from sh*.c + */ +/*- + * Copyright (c) 1980, 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef _h_sh_decls +#define _h_sh_decls + +/* + * sh.c + */ +extern Char *gethdir (const Char *); +extern void dosource (Char **, struct command *); +extern void exitstat (void); +extern void goodbye (Char **, struct command *); +extern void importpath (Char *); +extern void initdesc (void); +extern void pintr (void); +extern void pintr1 (int); +extern void phup (void); +extern void process (int); +extern void untty (void); +#ifdef PROF +extern void done (int); +#else +extern void xexit (int); +#endif + +/* + * sh.dir.c + */ +extern void dinit (Char *); +extern void dodirs (Char **, struct command *); +extern Char *dcanon (Char *, Char *); +extern void dtildepr (Char *); +extern void dtilde (void); +extern void dochngd (Char **, struct command *); +extern Char *dnormalize (const Char *, int); +extern void dopushd (Char **, struct command *); +extern void dopopd (Char **, struct command *); +extern void dfree (struct directory *); +extern void dsetstack (void); +extern const Char *getstakd (int); +extern void recdirs (Char *, int); +extern void loaddirs (Char *); + +/* + * sh.dol.c + */ +extern void Dfix (struct command *); +extern Char *Dfix1 (Char *); +extern void heredoc (Char *); + +/* + * sh.err.c + */ +extern void reset (void); +extern void cleanup_push_internal(void *, void (*fn) (void *) +#ifdef CLEANUP_DEBUG + , const char *, size_t +#define cleanup_push(v, f) cleanup_push_internal(v, f, __FILE__, __LINE__) +#else +#define cleanup_push(v, f) cleanup_push_internal(v, f) +#endif +); +extern void cleanup_ignore(void *); +extern void cleanup_until (void *); +extern void cleanup_until_mark(void); +extern size_t cleanup_push_mark(void); +extern void cleanup_pop_mark(size_t); +extern void open_cleanup(void *); +extern void opendir_cleanup(void *); +extern void sigint_cleanup(void *); +extern void sigprocmask_cleanup(void *); +extern void xfree_indirect(void *); +extern void errinit (void); +extern void seterror (unsigned int, ...); +extern void stderror (unsigned int, ...); + +/* + * sh.exec.c + */ +extern void doexec (struct command *, int); +extern void dohash (Char **, struct command *); +extern void dounhash (Char **, struct command *); +extern void execash (Char **, struct command *); +extern void hashstat (Char **, struct command *); +extern void xechoit (Char **); +extern int executable (const Char *, const Char *, int); +extern int tellmewhat (struct wordent *, Char **); +extern void dowhere (Char **, struct command *); +extern int find_cmd (Char *, int); + +/* + * sh.exp.c + */ +extern Char *filetest (Char *, Char ***, int); +extern int expr (Char ***); +extern int exp0 (Char ***, int); + +/* + * sh.file.c + */ +#if defined(FILEC) && defined(TIOCSTI) +extern size_t tenex (Char *, size_t); +#endif + +/* + * sh.func.c + */ +extern void tsetenv (const Char *, const Char *); +extern void Unsetenv (Char *); +extern void doalias (Char **, struct command *); +extern void dobreak (Char **, struct command *); +extern void docontin (Char **, struct command *); +extern void doecho (Char **, struct command *); +extern void doelse (Char **, struct command *); +extern void doend (Char **, struct command *); +extern void doeval (Char **, struct command *); +extern void doexit (Char **, struct command *); +extern void doforeach (Char **, struct command *); +extern void doglob (Char **, struct command *); +extern void dogoto (Char **, struct command *); +extern void doif (Char **, struct command *); +extern void dolimit (Char **, struct command *); +extern void dologin (Char **, struct command *); +extern void dologout (Char **, struct command *); +#ifdef NEWGRP +extern void donewgrp (Char **, struct command *); +#endif +extern void donohup (Char **, struct command *); +extern void dohup (Char **, struct command *); +extern void doonintr (Char **, struct command *); +extern void doprintenv (Char **, struct command *); +extern void dorepeat (Char **, struct command *); +extern void dofiletest (Char **, struct command *); +extern void dosetenv (Char **, struct command *); +extern void dosuspend (Char **, struct command *); +extern void doswbrk (Char **, struct command *); +extern void doswitch (Char **, struct command *); +extern void doumask (Char **, struct command *); +extern void dounlimit (Char **, struct command *); +extern void dounsetenv (Char **, struct command *); +extern void dowhile (Char **, struct command *); +extern void dozip (Char **, struct command *); +extern void func (struct command *, + const struct biltins *); +extern void gotolab (Char *); +extern const struct biltins *isbfunc (struct command *); +extern void prvars (void); +extern int srchx (Char *); +extern void unalias (Char **, struct command *); +extern void wfree (void); +extern void dobuiltins (Char **, struct command *); +extern void reexecute (struct command *); + +/* + * sh.glob.c + */ +extern Char *globequal (Char *); +extern Char **dobackp (Char *, int); +extern Char *globone (Char *, int); +extern int Gmatch (const Char *, const Char *); +extern int Gnmatch (const Char *, const Char *, + const Char **); +extern Char **globall (Char **, int); +extern Char **glob_all_or_error(Char **); +extern void rscan (Char **, void (*)(Char)); +extern int tglob (Char **); +extern void trim (Char **); + +#if !defined(WINNT_NATIVE) && defined(NLS_CATALOGS) +extern char *xcatgets (nl_catd, int, int, const char *); +#if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO) +extern char *iconv_catgets (nl_catd, int, int, const char *); +#endif +#endif +extern void nlsinit (void); +extern void nlsclose (void); +extern int t_pmatch (const Char *, const Char *, + const Char **, int); + +/* + * sh.hist.c + */ +extern void dohist (Char **, struct command *); +extern struct Hist *enthist (int, struct wordent *, int, int); +extern void savehist (struct wordent *, int); +extern char *fmthist (int, ptr_t); +extern void rechist (Char *, int); +extern void loadhist (Char *, int); + +/* + * sh.init.c + */ +extern void mesginit (void); + +/* + * sh.lex.c + */ +extern void addla (Char *); +extern void bseek (struct Ain *); +extern void btell (struct Ain *); +extern void btoeof (void); +extern void copylex (struct wordent *, struct wordent *); +extern Char *domod (Char *, Char); +extern void freelex (struct wordent *); +extern int lex (struct wordent *); +extern void lex_cleanup (void *); +extern void prlex (struct wordent *); +extern eChar readc (int); +extern void settell (void); +extern void unreadc (Char); + + +/* + * sh.misc.c + */ +extern int any (const char *, Char); +extern Char **blkcpy (Char **, Char **); +extern void blkfree (Char **); +extern void blk_cleanup (void *); +extern void blk_indirect_cleanup(void *); +extern int blklen (Char **); +extern void blkpr (Char *const *); +extern Char *blkexpand (Char *const *); +extern Char **blkspl (Char **, Char **); +extern void closem (void); +#ifndef CLOSE_ON_EXEC +extern void closech (void); +#endif /* !CLOSE_ON_EXEC */ +extern Char **copyblk (Char **); +extern int dcopy (int, int); +extern int dmove (int, int); +extern void donefds (void); +extern Char lastchr (Char *); +extern void lshift (Char **, int); +extern int number (Char *); +extern int prefix (const Char *, const Char *); +extern Char **saveblk (Char **); +extern void setzero (void *, size_t); +extern Char *strip (Char *); +extern Char *quote (Char *); +extern const Char *quote_meta (struct Strbuf *, const Char *); +extern char *strnsave (const char *, size_t); +extern char *strsave (const char *); +extern void udvar (Char *); +#ifndef POSIX +extern char *strstr (const char *, const char *); +#endif /* !POSIX */ +extern char *strspl (const char *, const char *); +extern char *strend (const char *); +extern char *areadlink (const char *); +extern void xclose (int); +extern void xclosedir (DIR *); +extern int xcreat (const char *, mode_t); +extern struct group *xgetgrgid (gid_t); +extern struct passwd *xgetpwnam (const char *); +extern struct passwd *xgetpwuid (uid_t); +extern int xopen (const char *, int, ...); +extern ssize_t xread (int, void *, size_t); +extern int xtcsetattr (int, int, const struct termios *); +extern ssize_t xwrite (int, const void *, size_t); + +/* + * sh.parse.c + */ +extern void alias (struct wordent *); +extern void freesyn (struct command *); +extern struct command *syntax (const struct wordent *, + const struct wordent *, int); +extern void syntax_cleanup(void *); + +/* + * sh.print.c + */ +extern void drainoline (void); +extern void flush (void); +#ifdef BSDTIMES +extern void pcsecs (unsigned long); +#else /* !BSDTIMES */ +# ifdef POSIX +extern void pcsecs (clock_t); +# else /* !POSIX */ +extern void pcsecs (time_t); +# endif /* !POSIX */ +#endif /* BSDTIMES */ +#ifdef BSDLIMIT +extern void psecs (unsigned long); +#endif /* BSDLIMIT */ +extern int putpure (int); +extern int putraw (int); +extern void xputchar (int); +#ifdef WIDE_STRINGS +extern void putwraw (Char); +extern void xputwchar (Char); +#else +# define putwraw(C) putraw(C) +# define xputwchar(C) xputchar(C) +#endif +extern void output_raw_restore(void *); + + +/* + * sh.proc.c + */ +extern void dobg (Char **, struct command *); +extern void dobg1 (Char **, struct command *); +extern void dofg (Char **, struct command *); +extern void dofg1 (Char **, struct command *); +extern void dojobs (Char **, struct command *); +extern void dokill (Char **, struct command *); +extern void donotify (Char **, struct command *); +extern void dostop (Char **, struct command *); +extern void dowait (Char **, struct command *); +extern void palloc (pid_t, struct command *); +extern void panystop (int); +extern void pchild (void); +extern void pendjob (void); +extern pid_t pfork (struct command *, int); +extern void pgetty (int, pid_t); +extern void pjwait (struct process *); +extern void pnote (void); +extern void psavejob (void); +extern void psavejob_cleanup(void *); +extern int pstart (struct process *, int); +extern void pwait (void); +extern struct process *pfind (Char *); + +/* + * sh.sem.c + */ +extern void execute (struct command *, int, int *, + int *, int); +extern void mypipe (int *); + +/* + * sh.set.c + */ +extern struct varent *adrof1 (const Char *, struct varent *); +extern void doset (Char **, struct command *); +extern void dolet (Char **, struct command *); +extern Char *putn (int); +extern int getn (Char *); +extern Char *value1 (Char *, struct varent *); +extern void setcopy (const Char *, const Char *, int); +extern void setv (const Char *, Char *, int); +extern void set1 (const Char *, Char **, + struct varent *, int); +extern void setq (const Char *, Char **, + struct varent *, int); +extern void unset (Char **, struct command *); +extern void unset1 (Char *[], struct varent *); +extern void unsetv (Char *); +extern void setNS (Char *); +extern void shift (Char **, struct command *); +extern void plist (struct varent *, int); +extern Char *unparse (struct command *); +#if defined(DSPMBYTE) +extern void update_dspmbyte_vars (void); +extern void autoset_dspmbyte (const Char *); +#endif + +/* + * sh.time.c + */ +extern void donice (Char **, struct command *); +extern void dotime (Char **, struct command *); +#ifdef BSDTIMES +extern void prusage (struct sysrusage *, + struct sysrusage *, + timeval_t *, timeval_t *); +extern void ruadd (struct sysrusage *, + struct sysrusage *); +#else /* BSDTIMES */ +# ifdef _SEQUENT_ +extern void prusage (struct process_stats *, + struct process_stats *, + timeval_t *, timeval_t *); +extern void ruadd (struct process_stats *, + struct process_stats *); +# else /* !_SEQUENT_ */ +# ifdef POSIX +extern void prusage (struct tms *, struct tms *, + clock_t, clock_t); +# else /* !POSIX */ +extern void prusage (struct tms *, struct tms *, + time_t, time_t); +# endif /* !POSIX */ +# endif /* !_SEQUENT_ */ +#endif /* BSDTIMES */ +extern void settimes (void); +#if defined(BSDTIMES) || defined(_SEQUENT_) +extern void tvsub (struct timeval *, + struct timeval *, + struct timeval *); +#endif /* BSDTIMES || _SEQUENT_ */ + +/* + * tw.parse.c + */ +extern void copyn (Char *, const Char *, size_t); +extern void catn (Char *, const Char *, int); + +#endif /* _h_sh_decls */ |