308 lines
10 KiB
C
308 lines
10 KiB
C
/** $MirBSD: src/bin/ksh/proto.h,v 2.1 2004/12/10 18:09:42 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(void);
|
|
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 */
|