Annotation of coherent/d/bin/uucheck/checkperms/checkperms.h, revision 1.1.1.1

1.1       root        1: /* checkperms.h - extra defines for checkperms parser
                      2:  * part of uucheck.
                      3:  */
                      4: #include "uucheck.h"
                      5: 
                      6: #ifndef EXTERN
                      7: #      ifdef MAIN
                      8: #              define EXTERN
                      9: #              define EQUALS(v)        = v
                     10: #      else
                     11: #              define EXTERN   extern
                     12: #              define EQUALS(v)
                     13: #      endif
                     14: #endif EXTERN
                     15: 
                     16: /* Expression to mask out all but the file mode bits.  */
                     17: #define FMODE(statstuff)       ((statstuff.st_mode)&S_IFMT)
                     18: 
                     19: #define SETFAIL        if(msg_type == ERROR_TOKEN) {error=TRUE;} else {warning = TRUE;}
                     20: 
                     21: /* For token table used by lexer.  */
                     22: struct token_type {
                     23:        char *string;
                     24:        int value;
                     25: };
                     26: 
                     27: #define NUM_TOKENS     12      /* Size of the following table.  */
                     28: 
                     29: #ifdef MAIN
                     30: #include "y.tab.h"
                     31: struct token_type token_table[NUM_TOKENS] = {
                     32:        "foreach", FOREACH,
                     33:        "pathname", PATHNAME,
                     34:        "error", ERROR_TOKEN,
                     35:        "warning", WARNING_TOKEN,
                     36:        "exist", EXIST,
                     37:        "owner", OWNER,
                     38:        "group", GROUP,
                     39:        "file", FILE_TOKEN,
                     40:        "directory", DIRECTORY,
                     41:        "pipe", PIPE,
                     42:        "character", CHARACTER_SPECIAL,
                     43:        "block", BLOCK_SPECIAL
                     44: };
                     45: #else /* not MAIN */
                     46: extern struct token_type token_table[];
                     47: #endif /* MAIN */
                     48: 
                     49: EXTERN char *current_path EQUALS(NULL); /* Name of the file currently being investigated.  */
                     50: EXTERN char *current_host EQUALS(NULL); /* Loop variable for examining all hosts.  */
                     51: EXTERN char *ret_string EQUALS(NULL); /* String for optional return messages.  */
                     52: EXTERN char *chmod_string EQUALS(NULL);        /* String for chmod descriptors.  */
                     53: EXTERN char *id_string EQUALS(NULL);   /* String for user or group names.  */
                     54: EXTERN int major, minor;               /* Major and minor numbers for special files.  */
                     55: EXTERN int ret_number;                 /* Place to put value of NUMBER tokens.  */
                     56: EXTERN struct stat current_stat; /* Stat structure from current file.  */
                     57: EXTERN boolean it_exists;      /* Set if the current file exists.  */
                     58: EXTERN int lineno EQUALS(1);     /* Approximate current line number (input file).  */
                     59: EXTERN boolean host_looping EQUALS(FALSE);
                     60: EXTERN boolean last_host EQUALS(FALSE); /* Loop terminator boolean.  */
                     61: EXTERN boolean ignore_next_indent EQUALS(FALSE); /* Used by lexer in foreach handlineg.  */
                     62: 
                     63: char *str_assign();
                     64: boolean chmod_chk();
                     65: boolean owner_chk();
                     66: boolean group_chk();

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.