#ifndef _DEFS_H
#define _DEFS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include <pwd.h>
#include <grp.h>
#include <dirent.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <netinet/in.h>
#define VERSION 3
#define MAILCMD "/usr/lib/sendmail -oi -t"
#define EQUAL 1
#define LP 2
#define RP 3
#define SM 4
#define ARROW 5
#define COLON 6
#define DCOLON 7
#define NAME 8
#define STRING 9
#define INSTALL 10
#define NOTIFY 11
#define EXCEPT 12
#define PATTERN 13
#define SPECIAL 14
#define OPTION 15
#define QUOTE 0200
#define TRIM 0177
#define HASHSIZE 1021
#define INMAX 3500
#define LINESIZE BUFSIZ
#define VERIFY 0x1
#define WHOLE 0x2
#define YOUNGER 0x4
#define COMPARE 0x8
#define REMOVE 0x10
#define FOLLOW 0x20
#define IGNLNKS 0x40
#define OBITS "\020\1VERIFY\2WHOLE\3YOUNGER\4COMPARE\5REMOVE\6FOLLOW\7IGNLNKS"
#define E_VARS 0x1
#define E_SHELL 0x2
#define E_TILDE 0x4
#define E_ALL 0x7
#define LOOKUP 0
#define INSERT 1
#define REPLACE 2
#define ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define ALLOC(x) (struct x *)malloc(sizeof (struct x))
struct namelist {
char *n_name;
struct namelist *n_next;
};
struct subcmd {
short sc_type;
short sc_options;
char *sc_name;
struct namelist *sc_args;
struct subcmd *sc_next;
};
struct cmd {
int c_type;
char *c_name;
char *c_label;
struct namelist *c_files;
struct subcmd *c_cmds;
struct cmd *c_next;
};
struct linkbuf {
ino_t inum;
dev_t devnum;
int count;
char pathname[LINESIZE];
char target[LINESIZE];
struct linkbuf *nextp;
};
extern int debug;
extern int nflag;
extern int qflag;
extern int options;
extern int nerrs;
extern int rem;
extern int iamremote;
extern char Tmpfile[];
extern struct linkbuf *ihead;
extern struct passwd *pw;
extern struct group *gr;
extern char host[];
extern char buf[];
char *makestr();
struct namelist *makenl();
struct subcmd *makesubcmd();
struct namelist *lookup();
struct namelist *expand();
char *exptilde();
char *printb();
void sendrem();
#ifdef __cplusplus
}
#endif
#endif