#ifndef _ATTR_H_INCLUDED_ #define _ATTR_H_INCLUDED_ /*++ /* NAME /* attr 3h /* SUMMARY /* attribute list manipulations /* SYNOPSIS /* #include "attr.h" DESCRIPTION .nf /* * System library. */ #include /* * Utility library. */ #include /* * Attribute types. See attr_scan(3) for documentation. */ #define ATTR_TYPE_END 0 /* end of data */ #define ATTR_TYPE_NUM 1 /* Unsigned integer */ #define ATTR_TYPE_STR 2 /* Character string */ #define ATTR_TYPE_HASH 3 /* Hash table */ #define ATTR_TYPE_NV 3 /* Name-value table */ #define ATTR_TYPE_LONG 4 /* Unsigned long */ #define ATTR_TYPE_DATA 5 /* Binary data */ #define ATTR_HASH_LIMIT 1024 /* Size of hash table */ /* * Flags that control processing. See attr_scan(3) for documentation. */ #define ATTR_FLAG_NONE 0 #define ATTR_FLAG_MISSING (1<<0) /* Flag missing attribute */ #define ATTR_FLAG_EXTRA (1<<1) /* Flag spurious attribute */ #define ATTR_FLAG_MORE (1<<2) /* Don't skip or terminate */ #define ATTR_FLAG_STRICT (ATTR_FLAG_MISSING | ATTR_FLAG_EXTRA) #define ATTR_FLAG_ALL (07) #define attr_print attr_print0 #define attr_vprint attr_vprint0 #define attr_scan attr_scan0 #define attr_vscan attr_vscan0 /* * attr_print64.c. */ extern int attr_print64(VSTREAM *, int,...); extern int attr_vprint64(VSTREAM *, int, va_list); /* * attr_scan64.c. */ extern int attr_scan64(VSTREAM *, int,...); extern int attr_vscan64(VSTREAM *, int, va_list); /* * attr_print0.c. */ extern int attr_print0(VSTREAM *, int,...); extern int attr_vprint0(VSTREAM *, int, va_list); /* * attr_scan0.c. */ extern int attr_scan0(VSTREAM *, int,...); extern int attr_vscan0(VSTREAM *, int, va_list); /* * attr_scan_plain.c. */ extern int attr_print_plain(VSTREAM *, int,...); extern int attr_vprint_plain(VSTREAM *, int, va_list); /* * attr_print_plain.c. */ extern int attr_scan_plain(VSTREAM *, int,...); extern int attr_vscan_plain(VSTREAM *, int, va_list); /* * Attribute names for testing the compatibility of the read and write * routines. */ #ifdef TEST #define ATTR_NAME_NUM "number" #define ATTR_NAME_STR "string" #define ATTR_NAME_LONG "long_number" #define ATTR_NAME_DATA "data" #endif /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /*--*/ #endif