Remove tests/inc/test-eom-align
[mmh] / h / aliasbr.h
1 /*
2 ** aliasbr.h -- definitions for the aliasing system
3 */
4
5 struct aka {
6         char *ak_name;          /* name to match against             */
7         struct adr *ak_addr;    /* list of addresses that it maps to */
8         struct aka *ak_next;    /* next aka in list                  */
9         char ak_visible;        /* should be visible in headers      */
10 };
11
12 struct adr {
13         char *ad_text;          /* text of this address in list        */
14         struct adr *ad_next;    /* next adr in list                    */
15         char ad_local;          /* text is local (check for expansion) */
16 };
17
18 /*
19 ** incore version of /etc/passwd
20 */
21 struct home {
22         char *h_name;           /* user name                             */
23         uid_t h_uid;            /* user id                               */
24         gid_t h_gid;            /* user's group                          */
25         char *h_home;           /* user's home directory                 */
26         char *h_shell;          /* user's shell                          */
27         int h_ngrps;            /* number of groups this user belongs to */
28         struct home *h_next;    /* next home in list                     */
29 };
30
31 struct home *seek_home(char *);
32
33 /*
34 ** prototypes
35 */
36 int alias(char *);
37 int akvisible(void);
38 void init_pw(void);
39 char *akresult(struct aka *);
40 char *akvalue(char *);
41 char *akerror(int);
42
43 /* codes returned by alias() */
44
45 #define AK_OK       0   /* file parsed ok        */
46 #define AK_NOFILE   1   /* couldn't read file    */
47 #define AK_ERROR    2   /* error parsing file    */
48 #define AK_LIMIT    3   /* memory limit exceeded */
49 #define AK_NOGROUP  4   /* no such group         */