/** $MirBSD: src/bin/ksh/proto.h,v 2.2 2004/12/13 16:48:54 tg Exp $ */ /* $OpenBSD: proto.h,v 1.11 2003/05/16 19:58:57 jsyn Exp $ */ /* $From: proto.h,v 1.3 1994/05/19 18:32:40 michael Exp michael $ */ #ifndef PROTO_H #define PROTO_H /* * prototypes for PD-KSH * originally generated using "cproto.c 3.5 92/04/11 19:28:01 cthuang" */ /* alloc.c */ Area * ainit(Area *ap); void afreeall(Area *ap); void * alloc(size_t size, Area *ap); void * aresize(void *ptr, size_t size, Area *ap); void afree(void *ptr, Area *ap); /* c_ksh.c */ int c_hash(char **wp); int c_cd(char **wp); int c_pwd(char **wp); int c_print(char **wp); int c_whence(char **wp); int c_command(char **wp); int c_typeset(char **wp); int c_alias(char **wp); int c_unalias(char **wp); int c_let(char **wp); int c_jobs(char **wp); int c_fgbg(char **wp); int c_kill(char **wp); void getopts_reset(int val); int c_getopts(char **wp); int c_bind(char **wp); /* c_sh.c */ int c_label(char **wp); int c_shift(char **wp); int c_umask(char **wp); int c_dot(char **wp); int c_wait(char **wp); int c_read(char **wp); int c_eval(char **wp); int c_trap(char **wp); int c_brkcont(char **wp); int c_exitreturn(char **wp); int c_set(char **wp); int c_unset(char **wp); int c_ulimit(char **wp); int c_times(char **wp); int timex(struct op *t, int f); void timex_hook(struct op *t, char ** volatile *app); int c_exec(char **wp); int c_builtin(char **wp); /* c_test.c */ int c_test(char **wp); /* chvt.c */ char * chvt(char *); /* edit.c: most prototypes in edit.h */ void x_init(void); int x_read(char *buf, size_t len); void set_editmode(const char *ed); /* emacs.c: most prototypes in edit.h */ int x_bind(const char *a1, const char *a2, int macro, int list); /* eval.c */ char * substitute(const char *cp, int f); char ** eval(char **ap, int f); char * evalstr(char *cp, int f); char * evalonestr(char *cp, int f); char *debunk(char *dp, const char *sp, size_t dlen); void expand(char *cp, XPtrV *wp, int f); int glob_str(char *cp, XPtrV *wp, int markdirs); /* exec.c */ int fd_clexec(int fd); int execute(struct op * volatile t, volatile int flags); int shcomexec(char **wp); struct tbl * findfunc(const char *name, unsigned int h, int create); int define(const char *name, struct op *t); void builtin(const char *name, int (*func)(char **)); struct tbl * findcom(const char *name, int flags); void flushcom(int all); char * search(const char *name, const char *path, int mode, int *errnop); int search_access(const char *path, int mode, int *errnop); int pr_menu(char *const *ap); int pr_list(char *const *ap); /* expr.c */ int evaluate(const char *expr, long *rval, int error_ok); int v_evaluate(struct tbl *vp, const char *expr, volatile int error_ok); /* history.c */ void init_histvec(void); void hist_init(Source *s); void hist_finish(void); void histsave(int lno, const char *cmd, int dowrite); #ifdef HISTORY int c_fc(char **wp); void sethistsize(int n); void sethistfile(const char *name); # ifdef EASY_HISTORY void histappend(const char *cmd, int nl_separate); # endif char ** histpos(void); int histN(void); int histnum(int n); int findhist(int start, int fwd, const char *str, int anchored); #endif /* HISTORY */ /* io.c */ void errorf(const char *fmt, ...) GCC_FUNC_ATTR2(noreturn, format(printf, 1, 2)); void warningf(int fileline, const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 2, 3)); void bi_errorf(const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 1, 2)); void internal_errorf(int jump, const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 2, 3)); void error_prefix(int fileline); void shellf(const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 1, 2)); void shprintf(const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 1, 2)); #ifdef KSH_DEBUG void kshdebug_init_(void); void kshdebug_printf_(const char *fmt, ...) GCC_FUNC_ATTR(format(printf, 1, 2)); void kshdebug_dump_(const char *str, const void *mem, int nbytes); #endif /* KSH_DEBUG */ int can_seek(int fd); void initio(void); int ksh_dup2(int ofd, int nfd, int errok); int savefd(int fd, int noclose); void restfd(int fd, int ofd); void openpipe(int *pv); void closepipe(int *pv); int check_fd(char *name, int mode, const char **emsgp); #ifdef KSH void coproc_init(void); void coproc_read_close(int fd); void coproc_readw_close(int fd); void coproc_write_close(int fd); int coproc_getfd(int mode, const char **emsgp); void coproc_cleanup(int reuse); #endif /* KSH */ struct temp *maketemp(Area *ap, Temp_type type, struct temp **tlist); /* jobs.c */ void j_init(int mflagset); void j_exit(void); void j_change(void); int exchild(struct op *t, int flags, int close_fd); void startlast(void); int waitlast(void); int waitfor(const char *cp, int *sigp); int j_kill(const char *cp, int sig); int j_resume(const char *cp, int bg); int j_jobs(const char *cp, int slp, int nflag); void j_notify(void); pid_t j_async(void); int j_stopped_running(void); /* lex.c */ int yylex(int cf); void yyerror(const char *fmt, ...) GCC_FUNC_ATTR2(noreturn, format(printf, 1, 2)); Source * pushs(int type, Area *areap); void set_prompt(int to, Source *s); void pprompt(const char *cp, int ntruncate); /* main.c */ int include(const char *name, int argc, char **argv, int intr_ok); int command(const char *comm); int shell(Source *volatile s, int volatile toplevel); void unwind(int i) GCC_FUNC_ATTR(noreturn); void newenv(int type); void quitenv(struct shf *shf); void cleanup_parents_env(void); void cleanup_proc_env(void); void aerror(Area *ap, const char *msg) GCC_FUNC_ATTR(noreturn); /* misc.c */ void setctypes(const char *s, int t); void initctypes(void); char * ulton(unsigned long n, int base); char * str_save(const char *s, Area *ap); char * str_nsave(const char *s, int n, Area *ap); int option(const char *n); char * getoptions(void); void change_flag(enum sh_flag f, int what, int newval); int parse_args(char **argv, int what, int *setargsp); int getn(const char *as, int *ai); int bi_getn(const char *as, int *ai); int gmatch(const char *s, const char *p, int isfile); int has_globbing(const char *xp, const char *xpe); const unsigned char *pat_scan(const unsigned char *p, const unsigned char *pe, int match_sep); void qsortp(void **base, size_t n, int (*f)(void *, void *)); int xstrcmp(void *p1, void *p2); void ksh_getopt_reset(Getopt *go, int); int ksh_getopt(char **argv, Getopt *go, const char *options); void print_value_quoted(const char *s); void print_columns(struct shf *shf, int n, char *(*func)(void *, int, char *, int), void *arg, int max_width, int prefcol); int strip_nuls(char *buf, int nbytes); char *str_zcpy(char *dst, const char *src, int dsize); int blocking_read(int fd, char *buf, int nbytes); int reset_nonblock(int fd); char *ksh_get_wd(char *buf, int bsize); /* path.c */ int make_path(const char *cwd, const char *file, char **pathlist, XString *xsp, int *phys_pathp); void simplify_path(char *path); char *get_phys_path(const char *path); void set_current_wd(char *path); /* rnd.c */ long rnd_get(void); void rnd_put(long); void rnd_seed(long); /* syn.c */ void initkeywords(void); struct op * compile(Source *s); /* table.c */ unsigned int hash(const char *n); void tinit(struct table *tp, Area *ap, int tsize); struct tbl * tsearch(struct table *tp, const char *n, unsigned int h); struct tbl * tenter(struct table *tp, const char *n, unsigned int h); void tdelete(struct tbl *p); void twalk(struct tstate *ts, struct table *tp); struct tbl * tnext(struct tstate *ts); struct tbl ** tsort(struct table *tp); /* trace.c */ /* trap.c */ void inittraps(void); #ifdef KSH void alarm_init(void); #endif /* KSH */ Trap * gettrap(const char *name, int igncase); RETSIGTYPE trapsig(int i); void intrcheck(void); int fatal_trap_check(void); int trap_pending(void); void runtraps(int intr); void runtrap(Trap *p); void cleartraps(void); void restoresigs(void); void settrap(Trap *p, char *s); int block_pipe(void); void restore_pipe(int restore_dfl); int setsig(Trap *p, handler_t f, int flags); void setexecsig(Trap *p, int restore); /* tree.c */ int fptreef(struct shf *f, int indent, const char *fmt, ...); char * snptreef(char *s, int n, const char *fmt, ...); struct op * tcopy(struct op *t, Area *ap); char * wdcopy(const char *wp, Area *ap); char * wdscan(const char *wp, int c); char * wdstrip(const char *wp); void tfree(struct op *t, Area *ap); /* var.c */ void newblock(void); void popblock(void); void initvar(void); struct tbl * global(const char *n); struct tbl * local(const char *n, bool_t copy); char * str_val(struct tbl *vp); long intval(struct tbl *vp); int setstr(struct tbl *vq, const char *s, int error_ok); struct tbl *setint_v(struct tbl *vq, struct tbl *vp); void setint(struct tbl *vq, long n); int getint(struct tbl *vp, long *nump); struct tbl * typeset(const char *var, Tflag set, Tflag clr, int field, int base); void unset(struct tbl *vp, int array_ref); char * skip_varname(const char *s, int aok); char *skip_wdvarname(const char *s, int aok); int is_wdvarname(const char *s, int aok); int is_wdvarassign(const char *s); char ** makenv(void); void change_random(void); int array_ref_len(const char *cp); char * arrayname(const char *str); void set_array(const char *var, int reset, char **vals); /* version.c */ /* vi.c: see edit.h */ /* Hack to avoid billions of compile warnings on SunOS 4.1.x */ #if defined(MUN) && defined(sun) && !defined(__svr4__) extern void bcopy(const void *src, void *dst, size_t size); extern int fclose(FILE *fp); extern int fprintf(FILE *fp, const char *fmt, ...); extern int fread(void *buf, int size, int num, FILE *fp); extern int ioctl(int fd, int request, void *arg); extern int killpg(int pgrp, int sig); extern int nice(int n); extern int readlink(const char *path, char *buf, int bufsize); extern int setpgrp(int pid, int pgrp); extern int strcasecmp(const char *s1, const char *s2); extern int tolower(int); extern int toupper(int); /* Include files aren't included yet */ extern int getrlimit( /* int resource, struct rlimit *rpl */ ); extern int getrusage( /* int who, struct rusage *rusage */ ); extern int gettimeofday( /* struct timeval *tv, struct timezone *tz */ ); extern int setrlimit( /* int resource, struct rlimit *rlp */ ); extern int lstat( /* const char *path, struct stat *buf */ ); #endif #endif /* ndef PROTO_H */