#include "libbb.h"
#include "runit_lib.h"
-#if 0
-/*** buffer.c ***/
-
-void buffer_init(buffer *s,int (*op)(int fd,char *buf,unsigned len),int fd,char *buf,unsigned len)
-{
- s->x = buf;
- s->fd = fd;
- s->op = op;
- s->p = 0;
- s->n = len;
-}
-
-
-/*** buffer_get.c ***/
-
-static int oneread(int (*op)(int fd,char *buf,unsigned len),int fd,char *buf,unsigned len)
-{
- int r;
-
- for (;;) {
- r = op(fd,buf,len);
- if (r == -1 && errno == EINTR)
- continue;
- return r;
- }
-}
-
-static int getthis(buffer *s,char *buf,unsigned len)
-{
- if (len > s->p) len = s->p;
- s->p -= len;
- memcpy(buf,s->x + s->n,len);
- s->n += len;
- return len;
-}
-
-int buffer_feed(buffer *s)
-{
- int r;
-
- if (s->p)
- return s->p;
- r = oneread(s->op,s->fd,s->x,s->n);
- if (r <= 0)
- return r;
- s->p = r;
- s->n -= r;
- if (s->n > 0)
- memmove(s->x + s->n,s->x,r);
- return r;
-}
-
-int buffer_bget(buffer *s,char *buf,unsigned len)
-{
- int r;
-
- if (s->p > 0)
- return getthis(s,buf,len);
- if (s->n <= len)
- return oneread(s->op,s->fd,buf,s->n);
- r = buffer_feed(s);
- if (r <= 0)
- return r;
- return getthis(s,buf,len);
-}
-
-int buffer_get(buffer *s,char *buf,unsigned len)
-{
- int r;
-
- if (s->p > 0)
- return getthis(s,buf,len);
- if (s->n <= len)
- return oneread(s->op,s->fd,buf,len);
- r = buffer_feed(s);
- if (r <= 0)
- return r;
- return getthis(s,buf,len);
-}
-
-char *buffer_peek(buffer *s)
-{
- return s->x + s->n;
-}
-
-void buffer_seek(buffer *s,unsigned len)
-{
- s->n += len;
- s->p -= len;
-}
-
-
-/*** buffer_put.c ***/
-
-static int allwrite(int (*op)(int fd,char *buf,unsigned len),int fd,const char *buf,unsigned len)
-{
- int w;
-
- while (len) {
- w = op(fd,(char*)buf,len);
- if (w == -1) {
- if (errno == EINTR)
- continue;
- return -1; /* note that some data may have been written */
- }
- /* if (w == 0) ; luser's fault */
- buf += w;
- len -= w;
- }
- return 0;
-}
-
-int buffer_flush(buffer *s)
-{
- int p;
-
- p = s->p;
- if (!p) return 0;
- s->p = 0;
- return allwrite(s->op,s->fd,s->x,p);
-}
-
-int buffer_putalign(buffer *s,const char *buf,unsigned len)
-{
- unsigned n;
-
- while (len > (n = s->n - s->p)) {
- memcpy(s->x + s->p,buf,n);
- s->p += n;
- buf += n;
- len -= n;
- if (buffer_flush(s) == -1) return -1;
- }
- /* now len <= s->n - s->p */
- memcpy(s->x + s->p,buf,len);
- s->p += len;
- return 0;
-}
-
-int buffer_put(buffer *s,const char *buf,unsigned len)
-{
- unsigned n;
-
- n = s->n;
- if (len > n - s->p) {
- if (buffer_flush(s) == -1) return -1;
- /* now s->p == 0 */
- if (n < BUFFER_OUTSIZE) n = BUFFER_OUTSIZE;
- while (len > s->n) {
- if (n > len) n = len;
- if (allwrite(s->op,s->fd,buf,n) == -1) return -1;
- buf += n;
- len -= n;
- }
- }
- /* now len <= s->n - s->p */
- memcpy(s->x + s->p,buf,len);
- s->p += len;
- return 0;
-}
-
-int buffer_putflush(buffer *s,const char *buf,unsigned len)
-{
- if (buffer_flush(s) == -1)
- return -1;
- return allwrite(s->op,s->fd,buf,len);
-}
-
-int buffer_putsalign(buffer *s,const char *buf)
-{
- return buffer_putalign(s,buf,strlen(buf));
-}
-
-int buffer_puts(buffer *s,const char *buf)
-{
- return buffer_put(s,buf,strlen(buf));
-}
-
-int buffer_putsflush(buffer *s,const char *buf)
-{
- return buffer_putflush(s,buf,strlen(buf));
-}
-
-
-/*** buffer_read.c ***/
-
-int buffer_unixread(int fd,char *buf,unsigned len)
-{
- return read(fd,buf,len);
-}
-
-
-/*** buffer_write.c ***/
-
-int buffer_unixwrite(int fd,char *buf,unsigned len)
-{
- return write(fd,buf,len);
-}
-#endif
-
-
/*** byte_chr.c ***/
unsigned byte_chr(char *s,unsigned n,int c)
}
-#if 0
-/*** fifo.c ***/
-
-int fifo_make(const char *fn,int mode)
-{
- return mkfifo(fn, mode);
-}
-#endif
-
-
/*** fmt_ptime.c ***/
void fmt_ptime30nul(char *s, struct taia *ta) {
}
-#ifdef UNUSED
-/*** fmt_uint.c ***/
-
-unsigned fmt_uint(char *s,unsigned u)
-{
- return fmt_ulong(s,u);
-}
-
-
-/*** fmt_uint0.c ***/
-
-unsigned fmt_uint0(char *s,unsigned u,unsigned n)
-{
- unsigned len;
- len = fmt_uint(FMT_LEN, u);
- while (len < n) {
- if (s)
- *s++ = '0';
- ++len;
- }
- if (s)
- fmt_uint(s, u);
- return len;
-}
-#endif
-
-
-#ifdef UNUSED
-/*** fmt_ulong.c ***/
-
-unsigned fmt_ulong(char *s,unsigned long u)
-{
- unsigned len; unsigned long q;
- len = 1; q = u;
- while (q > 9) { ++len; q /= 10; }
- if (s) {
- s += len;
- do { *--s = '0' + (u % 10); u /= 10; } while (u); /* handles u == 0 */
- }
- return len;
-}
-#endif
-
-
-#ifdef UNUSED
-/*** tai_now.c ***/
-
-void tai_now(struct tai *t)
-{
- tai_unix(t, time(NULL));
-}
-#endif
-
-
/*** tai_pack.c ***/
static /* as it isn't used anywhere else */
/*** taia_add.c ***/
-/* XXX: breaks tai encapsulation */
-
void taia_add(struct taia *t,const struct taia *u,const struct taia *v)
{
t->sec.x = u->sec.x + v->sec.x;
}
-#ifdef UNUSED
-/*** taia_frac.c ***/
-
-double taia_frac(const struct taia *t)
-{
- return (t->atto * 0.000000001 + t->nano) * 0.000000001;
-}
-
-
-/*** taia_approx.c ***/
-
-double taia_approx(const struct taia *t)
-{
- return t->sec->x + taia_frac(t);
-}
-#endif
-
-static
-uint64_t taia2millisec(const struct taia *t)
-{
- return (t->sec.x * 1000) + (t->nano / 1000000);
-}
-
-
/*** taia_less.c ***/
-/* XXX: breaks tai encapsulation */
-
int taia_less(const struct taia *t, const struct taia *u)
{
if (t->sec.x < u->sec.x) return 1;
/*** taia_sub.c ***/
-/* XXX: breaks tai encapsulation */
-
void taia_sub(struct taia *t, const struct taia *u, const struct taia *v)
{
unsigned long unano = u->nano;
}
-/*** stralloc_cat.c ***/
-#if 0
-
-int stralloc_cat(stralloc *sato,const stralloc *safrom)
-{
- return stralloc_catb(sato,safrom->s,safrom->len);
-}
-
-
-/*** stralloc_catb.c ***/
-
-int stralloc_catb(stralloc *sa,const char *s,unsigned n)
-{
- if (!sa->s) return stralloc_copyb(sa,s,n);
- if (!stralloc_readyplus(sa,n + 1)) return 0;
- memcpy(sa->s + sa->len,s,n);
- sa->len += n;
- sa->s[sa->len] = 'Z'; /* ``offensive programming'' */
- return 1;
-}
-
-
-/*** stralloc_cats.c ***/
-
-int stralloc_cats(stralloc *sa,const char *s)
-{
- return stralloc_catb(sa,s,strlen(s));
-}
-
-
-/*** stralloc_eady.c ***/
-
-GEN_ALLOC_ready(stralloc,char,s,len,a,i,n,x,30,stralloc_ready)
-GEN_ALLOC_readyplus(stralloc,char,s,len,a,i,n,x,30,stralloc_readyplus)
-
-
-/*** stralloc_opyb.c ***/
-
-int stralloc_copyb(stralloc *sa,const char *s,unsigned n)
-{
- if (!stralloc_ready(sa,n + 1)) return 0;
- memcpy(sa->s,s,n);
- sa->len = n;
- sa->s[n] = 'Z'; /* ``offensive programming'' */
- return 1;
-}
-
-
-/*** stralloc_opys.c ***/
+/*** iopause.c ***/
-int stralloc_copys(stralloc *sa,const char *s)
+static
+uint64_t taia2millisec(const struct taia *t)
{
- return stralloc_copyb(sa,s,strlen(s));
+ return (t->sec.x * 1000) + (t->nano / 1000000);
}
-/*** stralloc_pend.c ***/
-
-GEN_ALLOC_append(stralloc,char,s,len,a,i,n,x,30,stralloc_readyplus,stralloc_append)
-
-#endif /* stralloc */
-
-/*** iopause.c ***/
-
void iopause(iopause_fd *x,unsigned len,struct taia *deadline,struct taia *stamp)
{
int millisecs;
}
-/*** openreadclose.c ***/
-#if 0
-int openreadclose(const char *fn,stralloc *sa,unsigned bufsize)
-{
- int fd;
- fd = open_read(fn);
- if (fd == -1) {
- if (errno == ENOENT) return 0;
- return -1;
- }
- if (readclose(fd,sa,bufsize) == -1) return -1;
- return 1;
-}
-#endif
-
-
-/*** pathexec_env.c ***/
-#if 0
-static stralloc plus;
-static stralloc tmp;
-
-int pathexec_env(const char *s,const char *t)
-{
- if (!s) return 1;
- if (!stralloc_copys(&tmp,s)) return 0;
- if (t) {
- if (!stralloc_cats(&tmp,"=")) return 0;
- if (!stralloc_cats(&tmp,t)) return 0;
- }
- if (!stralloc_0(&tmp)) return 0;
- return stralloc_cat(&plus,&tmp);
-}
-
-void pathexec(char **argv)
-{
- char **e;
- unsigned elen;
- unsigned i;
- unsigned j;
- unsigned split;
- unsigned t;
-
- if (!stralloc_cats(&plus,"")) return;
-
- elen = 0;
- for (i = 0;environ[i];++i)
- ++elen;
- for (i = 0;i < plus.len;++i)
- if (!plus.s[i])
- ++elen;
-
- e = malloc((elen + 1) * sizeof(char *));
- if (!e) return;
-
- elen = 0;
- for (i = 0;environ[i];++i)
- e[elen++] = environ[i];
-
- j = 0;
- for (i = 0;i < plus.len;++i)
- if (!plus.s[i]) {
- split = str_chr(plus.s + j,'=');
- for (t = 0;t < elen;++t)
- if (memcmp(plus.s + j,e[t],split) == 0)
- if (e[t][split] == '=') {
- --elen;
- e[t] = e[elen];
- break;
- }
- if (plus.s[j + split])
- e[elen++] = plus.s + j;
- j = i + 1;
- }
- e[elen] = 0;
-
- pathexec_run(*argv,argv,e);
- free(e);
-}
-#endif
-
-/*** pathexec_run.c ***/
-#if 0
-static stralloc tmp;
-
-void pathexec_run(const char *file,char *const *argv,char *const *envp)
-{
- const char *path;
- unsigned split;
- int savederrno;
-
- if (file[str_chr(file,'/')]) {
- execve(file,argv,envp);
- return;
- }
-
- path = getenv("PATH");
- if (!path) path = "/bin:/usr/bin";
-
- savederrno = 0;
- for (;;) {
- split = str_chr(path,':');
- if (!stralloc_copyb(&tmp,path,split)) return;
- if (!split)
- if (!stralloc_cats(&tmp,".")) return;
- if (!stralloc_cats(&tmp,"/")) return;
- if (!stralloc_cats(&tmp,file)) return;
- if (!stralloc_0(&tmp)) return;
-
- execve(tmp.s,argv,envp);
- if (errno != ENOENT) {
- savederrno = errno;
- if ((errno != EACCES) && (errno != EPERM) && (errno != EISDIR)) return;
- }
-
- if (!path[split]) {
- if (savederrno) errno = savederrno;
- return;
- }
- path += split;
- path += 1;
- }
-}
-#endif
-
/*** pmatch.c ***/
unsigned pmatch(const char *p, const char *s, unsigned len) {
}
-#if 0
-/*** prot.c ***/
-
-int prot_gid(int gid)
-{
- gid_t x = gid;
- if (setgroups(1,&x) == -1) return -1;
- return setgid(gid); /* _should_ be redundant, but on some systems it isn't */
-}
-
-int prot_uid(int uid)
-{
- return setuid(uid);
-}
-#endif
-
-
-/*** readclose.c ***/
-#if 0
-int readclose_append(int fd,stralloc *sa,unsigned bufsize)
-{
- int r;
- for (;;) {
- if (!stralloc_readyplus(sa,bufsize)) { close(fd); return -1; }
- r = read(fd,sa->s + sa->len,bufsize);
- if (r == -1) if (errno == EINTR) continue;
- if (r <= 0) { close(fd); return r; }
- sa->len += r;
- }
-}
-
-int readclose(int fd,stralloc *sa,unsigned bufsize)
-{
- if (!stralloc_copys(sa,"")) { close(fd); return -1; }
- return readclose_append(fd,sa,bufsize);
-}
-#endif
-
-#if 0
-/*** scan_ulong.c ***/
-
-unsigned scan_ulong(const char *s,unsigned long *u)
-{
- unsigned pos = 0;
- unsigned long result = 0;
- unsigned long c;
- while ((c = (unsigned long) (unsigned char) (s[pos] - '0')) < 10) {
- result = result * 10 + c;
- ++pos;
- }
- *u = result;
- return pos;
-}
-#endif
-
-
#ifdef UNUSED
/*** seek_set.c ***/
#endif
-/*** sig.c ***/
-
-//int sig_alarm = SIGALRM;
-//int sig_child = SIGCHLD;
-//int sig_cont = SIGCONT;
-//int sig_hangup = SIGHUP;
-//int sig_int = SIGINT;
-//int sig_pipe = SIGPIPE;
-//int sig_term = SIGTERM;
-
-//void (*sig_defaulthandler)(int) = SIG_DFL;
-//void (*sig_ignorehandler)(int) = SIG_IGN;
-
-
/*** sig_block.c ***/
void sig_block(int sig)
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*** buffer.h ***/
-
-#if 0
-typedef struct buffer {
- char *x;
- unsigned p;
- unsigned n;
- int fd;
- int (*op)(int fd,char *buf,unsigned len);
-} buffer;
-
-//#define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) }
-//#define BUFFER_INSIZE 8192
-#define BUFFER_OUTSIZE 8192
-
-extern void buffer_init(buffer *,int (*)(int fd,char *buf,unsigned len),int,char *,unsigned);
-
-extern int buffer_flush(buffer *);
-//extern int buffer_put(buffer *,const char *,unsigned);
-extern int buffer_putalign(buffer *,const char *,unsigned);
-extern int buffer_putflush(buffer *,const char *,unsigned);
-//extern int buffer_puts(buffer *,const char *);
-extern int buffer_putsalign(buffer *,const char *);
-extern int buffer_putsflush(buffer *,const char *);
-
-#define buffer_PUTC(s,c) \
- ( ((s)->n != (s)->p) \
- ? ( (s)->x[(s)->p++] = (c), 0 ) \
- : buffer_put((s),&(c),1) \
- )
-
-extern int buffer_get(buffer *,char *,unsigned);
-extern int buffer_bget(buffer *,char *,unsigned);
-extern int buffer_feed(buffer *);
-
-extern char *buffer_peek(buffer *);
-extern void buffer_seek(buffer *,unsigned);
-
-#define buffer_PEEK(s) ( (s)->x + (s)->n )
-#define buffer_SEEK(s,len) ( ( (s)->p -= (len) ) , ( (s)->n += (len) ) )
-
-#define buffer_GETC(s,c) \
- ( ((s)->p > 0) \
- ? ( *(c) = (s)->x[(s)->n], buffer_SEEK((s),1), 1 ) \
- : buffer_get((s),(c),1) \
- )
-
-extern int buffer_copy(buffer *,buffer *);
-
-extern int buffer_unixread(int,char *,unsigned);
-/* Actually, int buffer_unixwrite(int,const char *,unsigned),
- but that 'const' will produce warnings... oh well */
-extern int buffer_unixwrite(int,char *,unsigned);
-#endif
-
-
/*** byte.h ***/
extern unsigned byte_chr(char *s,unsigned n,int c);
extern int fd_move(int,int);
-/*** fifo.h ***/
-
-//extern int fifo_make(const char *,int);
-
-
-/*** fmt.h ***/
-
-//#define FMT_ULONG 40 /* enough space to hold 2^128 - 1 in decimal, plus \0 */
-//#define FMT_LEN ((char *) 0) /* convenient abbreviation */
-
-//extern unsigned fmt_uint(char *,unsigned);
-//extern unsigned fmt_uint0(char *,unsigned,unsigned);
-//extern unsigned fmt_xint(char *,unsigned);
-//extern unsigned fmt_nbbint(char *,unsigned,unsigned,unsigned,unsigned);
-//extern unsigned fmt_ushort(char *,unsigned short);
-//extern unsigned fmt_xshort(char *,unsigned short);
-//extern unsigned fmt_nbbshort(char *,unsigned,unsigned,unsigned,unsigned short);
-//extern unsigned fmt_ulong(char *,unsigned long);
-//extern unsigned fmt_xlong(char *,unsigned long);
-//extern unsigned fmt_nbblong(char *,unsigned,unsigned,unsigned,unsigned long);
-
-//extern unsigned fmt_plusminus(char *,int);
-//extern unsigned fmt_minus(char *,int);
-//extern unsigned fmt_0x(char *,int);
-
-//extern unsigned fmt_str(char *,const char *);
-//extern unsigned fmt_strn(char *,const char *,unsigned);
-
-
/*** tai.h ***/
struct tai {
#define tai_unix(t,u) ((void) ((t)->x = 4611686018427387914ULL + (uint64_t) (u)))
-//extern void tai_now(struct tai *);
-
-//#define tai_approx(t) ((double) ((t)->x))
-
-//extern void tai_add(struct tai *,const struct tai *,const struct tai *);
-//extern void tai_sub(struct tai *,const struct tai *,const struct tai *);
-//#define tai_less(t,u) ((t)->x < (u)->x)
-
#define TAI_PACK 8
//extern void tai_pack(char *,const struct tai *);
extern void tai_unpack(const char *,struct tai *);
extern void taia_now(struct taia *);
-//extern double taia_approx(const struct taia *);
-//extern double taia_frac(const struct taia *);
-
extern void taia_add(struct taia *,const struct taia *,const struct taia *);
extern void taia_addsec(struct taia *,const struct taia *,int);
extern void taia_sub(struct taia *,const struct taia *,const struct taia *);
extern unsigned fmt_taia25(char *, struct taia *);
-#ifdef UNUSED
-/*** gen_alloc.h ***/
-
-#define GEN_ALLOC_typedef(ta,type,field,len,a) \
- typedef struct ta { type *field; unsigned len; unsigned a; } ta;
-
-
-/*** gen_allocdefs.h ***/
-
-#define GEN_ALLOC_ready(ta,type,field,len,a,i,n,x,base,ta_ready) \
-int ta_ready(ta *x,unsigned n) \
-{ unsigned i; \
- if (x->field) { \
- i = x->a; \
- if (n > i) { \
- x->a = base + n + (n >> 3); \
- x->field = realloc(x->field,x->a * sizeof(type)); \
- if (x->field) return 1; \
- x->a = i; return 0; } \
- return 1; } \
- x->len = 0; \
- return !!(x->field = malloc((x->a = n) * sizeof(type))); }
-
-#define GEN_ALLOC_readyplus(ta,type,field,len,a,i,n,x,base,ta_rplus) \
-int ta_rplus(ta *x,unsigned n) \
-{ unsigned i; \
- if (x->field) { \
- i = x->a; n += x->len; \
- if (n > i) { \
- x->a = base + n + (n >> 3); \
- x->field = realloc(x->field,x->a * sizeof(type)); \
- if (x->field) return 1; \
- x->a = i; return 0; } \
- return 1; } \
- x->len = 0; \
- return !!(x->field = malloc((x->a = n) * sizeof(type))); }
-
-#define GEN_ALLOC_append(ta,type,field,len,a,i,n,x,base,ta_rplus,ta_append) \
-int ta_append(ta *x,const type *i) \
-{ if (!ta_rplus(x,1)) return 0; x->field[x->len++] = *i; return 1; }
-
-
-/*** stralloc.h ***/
-GEN_ALLOC_typedef(stralloc,char,s,len,a)
-
-extern int stralloc_ready(stralloc *,unsigned);
-extern int stralloc_readyplus(stralloc *,unsigned);
-extern int stralloc_copy(stralloc *,const stralloc *);
-extern int stralloc_cat(stralloc *,const stralloc *);
-extern int stralloc_copys(stralloc *,const char *);
-extern int stralloc_cats(stralloc *,const char *);
-extern int stralloc_copyb(stralloc *,const char *,unsigned);
-extern int stralloc_catb(stralloc *,const char *,unsigned);
-extern int stralloc_append(stralloc *,const char *); /* beware: this takes a pointer to 1 char */
-extern int stralloc_starts(stralloc *,const char *);
-
-#define stralloc_0(sa) stralloc_append(sa,"")
-
-extern int stralloc_catulong0(stralloc *,unsigned long,unsigned);
-extern int stralloc_catlong0(stralloc *,long,unsigned);
-
-#define stralloc_catlong(sa,l) (stralloc_catlong0((sa),(l),0))
-#define stralloc_catuint0(sa,i,n) (stralloc_catulong0((sa),(i),(n)))
-#define stralloc_catint0(sa,i,n) (stralloc_catlong0((sa),(i),(n)))
-#define stralloc_catint(sa,i) (stralloc_catlong0((sa),(i),0))
-#endif
-
/*** iopause.h ***/
typedef struct pollfd iopause_fd;
extern int open_write(const char *);
-/*** openreadclose.h ***/
-#if 0
-extern int openreadclose(const char *,stralloc *,unsigned);
-#endif
-
-/*** pathexec.h ***/
-
-//extern void pathexec_run(const char *,char *const *,char *const *);
-//extern int pathexec_env(const char *,const char *);
-//extern void pathexec(char **);
-
-
/*** pmatch.h ***/
extern unsigned pmatch(const char *, const char *, unsigned);
-/*** prot.h ***/
-
-//extern int prot_gid(int);
-//extern int prot_uid(int);
-
-
-/*** readclose.h ***/
-#if 0
-extern int readclose_append(int,stralloc *,unsigned);
-extern int readclose(int,stralloc *,unsigned);
-#endif
-
-/*** scan.h ***/
-
-#if 0
-extern unsigned scan_uint(const char *,unsigned *);
-extern unsigned scan_xint(const char *,unsigned *);
-extern unsigned scan_nbbint(const char *,unsigned,unsigned,unsigned,unsigned *);
-extern unsigned scan_ushort(const char *,unsigned short *);
-extern unsigned scan_xshort(const char *,unsigned short *);
-extern unsigned scan_nbbshort(const char *,unsigned,unsigned,unsigned,unsigned short *);
-extern unsigned scan_ulong(const char *,unsigned long *);
-extern unsigned scan_xlong(const char *,unsigned long *);
-extern unsigned scan_nbblong(const char *,unsigned,unsigned,unsigned,unsigned long *);
-
-extern unsigned scan_plusminus(const char *,int *);
-extern unsigned scan_0x(const char *,unsigned *);
-
-extern unsigned scan_whitenskip(const char *,unsigned);
-extern unsigned scan_nonwhitenskip(const char *,unsigned);
-extern unsigned scan_charsetnskip(const char *,const char *,unsigned);
-extern unsigned scan_noncharsetnskip(const char *,const char *,unsigned);
-
-extern unsigned scan_strncmp(const char *,const char *,unsigned);
-extern unsigned scan_memcmp(const char *,const char *,unsigned);
-
-extern unsigned scan_long(const char *,long *);
-extern unsigned scan_8long(const char *,unsigned long *);
-#endif
-
-
-/*** seek.h ***/
-
-//typedef unsigned long seek_pos;
-
-//extern seek_pos seek_cur(int);
-
-//extern int seek_set(int,seek_pos);
-//extern int seek_end(int);
-
-//extern int seek_trunc(int,seek_pos);
-
-//#define seek_begin(fd) (seek_set((fd),(seek_pos) 0))
-
-
/*** sig.h ***/
-//extern int sig_alarm;
-//extern int sig_child;
-//extern int sig_cont;
-//extern int sig_hangup;
-//extern int sig_int;
-//extern int sig_pipe;
-//extern int sig_term;
-
extern void sig_catch(int,void (*)(int));
#define sig_ignore(s) (sig_catch((s), SIG_IGN))
#define sig_uncatch(s) (sig_catch((s), SIG_DFL))
extern void sig_blocknone(void);
extern void sig_pause(void);
-extern void sig_dfl(int);
-
/*** str.h ***/