/*
 Written by D'Arcy J.M. Cain
 darcy@druid.net
 Copyright 1994-1997
 
 Do not change this file directly
 
 */
 

#ifndef         __CAIN_MISC_H
#define         __CAIN_MISC_H
typedef struct {
const char	*fl;
char	type;
union {
long            l;
double          d;
const char      *s;
char            c;
} arg;
} UF_LIST;
extern          char *xoptarg;
extern          int optind, opterr;
#ifdef          __cplusplus
extern "C" {
#endif
char		*addext(char *fn, const char *ext);
const char	*chkenv(const char *, const char *);
int			chkupc(const char *);
int			expr(const char *);
char		*now(void);
void		sys_err(int, const char *, ...)
#if	defined(__GNUC__) && !defined(__MINIX__)
__attribute__ ((format (printf, 2, 3)))
#endif
;
char		*getffld(const char *s, char *buffer, int pos, int sz);
char		*gline(int (*gchar)(void), int exclusive);
#ifdef		NEW_GETARG
int			getarg(const char *, GETARG *);
GETARG		*initarg(int, const char **, GETARG *);
GETARG		*initarge(int, const char **, GETARG *);
GETARG		*initargs(const char *, GETARG *);
#else
int			getarg(const char *);
int			initarg(int, char **);
int			initarge(int, char **);
int			initargs(const char *);
#endif
const char	*lookup(const char *, const char **);
int			open_socket(const char *, const char *, char *);
char		*parse(char *);
char		*trim(char *dest, const char *src);
int			uformat(char *, const char *, const UF_LIST *);
int			fileunlock(const char *, const char *);
int			filelock(const char *, const char *);
int			rpt_start(const char **, int, const char **, int, int);
int			rpt_end(void);
int			rpt_check(int);
int			rpt_line(const char *, ...)
#if	defined(__GNUC__) && !defined(__MINIX__)
__attribute__ ((format (printf, 1, 2)))
#endif
;
#ifdef		__cplusplus
}
#endif
#endif
