|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 3801 (0xed9)
Types: TextFile
Names: »ap.h«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/h/ap.h«
/* ap.h: RFC-822 address parser definitions */
/*
* @(#) $Header: /cs/research/pp/hubris/pp-beta/h/RCS/ap.h,v 5.0 90/09/20 16:49:33 pp Exp Locker: pp $
*
* $Log: ap.h,v $
* Revision 5.0 90/09/20 16:49:33 pp
* rcsforce : 5.0 public release
*
*
*/
#ifndef _H_AP
#define _H_AP
#include "util.h"
struct ap_node
{
char ap_obtype; /* parsing type of this object */
#define AP_NIL 0
#define AP_COMMENT 1 /* comment (...) */
#define AP_DATA_TYPE 2 /* "data-type" (e.g., :include:...,) */
#define AP_DOMAIN 3 /* host-part of address */
#define AP_DOMAIN_LITERAL 4 /* domain literal */
#define AP_GENERIC_WORD 5 /* generic word */
#define AP_GROUP_END 6 /* end of group list */
#define AP_GROUP_NAME 7 /* name of group */
#define AP_GROUP_START 8 /* start of group address list x:.. ; */
#define AP_MAILBOX 9 /* mailbox-part of address */
#define AP_PERSON_END 10 /* end of personal address list */
#define AP_PERSON_NAME 11 /* name of perrson */
#define AP_PERSON_START 12 /* start of personal addr list <...> */
char ap_ptrtype; /* next node is continuation of this */
/* address, start of new, or null */
#define AP_PTR_NIL 0 /* there is no next node */
#define AP_PTR_NXT 1 /* next is start of new address */
#define AP_PTR_MORE 2 /* next is part of this address */
char *ap_obvalue; /* ptr to str value of object */
struct ap_node *ap_next; /* pointer to next node */
};
typedef struct ap_node *AP_ptr;
#define NULLAP ((AP_ptr)0)
#define BADAP ((AP_ptr) -1)
/*
Environment for the address parser
*/
#define AP_PARSE_SAME 0000 /* do not transorm the address */
#define AP_PARSE_733 0001 /* follow RFC #733 rules */
#define AP_PARSE_822 0002 /* follow RFC #822 rules */
#define AP_PARSE_BIG 0010 /* Use Big-endian domains, FLAG */
/*
For use when getting indirect input
*/
struct ap_prevstruct
{
FILE *ap_curfp; /* handle on current file input */
int (*ap_prvgfunc) (); /* getchar function for that input */
int ap_opeek; /* with this as peek-ahead char for it*/
int ap_ogroup; /* nesting level of group list */
int ap_operson; /* nesting level of personal list */
struct ap_prevstruct *ap_next;
};
extern AP_ptr ap_1delete();
extern AP_ptr ap_add();
extern AP_ptr ap_alloc();
extern AP_ptr ap_append();
extern AP_ptr ap_move();
extern AP_ptr ap_new();
extern AP_ptr ap_normalize();
extern AP_ptr ap_pcur;
extern AP_ptr ap_pinit();
extern AP_ptr ap_pstrt;
extern AP_ptr ap_s2t();
extern AP_ptr ap_sqdelete();
extern AP_ptr ap_sqinsert();
extern AP_ptr ap_sqmove();
extern AP_ptr ap_t2p();
extern AP_ptr ap_t2s();
extern char ap_llex;
extern char* ap_dmflip();
extern char* ap_p2s();
extern char* ap_p2s_nc();
extern char* ap_s2p();
extern int ap_1adr();
extern int ap_dmnormalize();
extern int ap_flget();
extern int ap_fpush();
extern int ap_lex();
extern int ap_ppush();
extern void ap_7to8 ();
extern void ap_ninit ();
extern void ap_palloc ();
extern void ap_pfill ();
extern void ap_clear ();
extern void ap_pappend ();
extern void ap_sqtfix ();
extern void ap_insert ();
extern void ap_fllnode ();
extern void ap_free ();
extern void ap_iinit ();
extern void ap_delete ();
extern void ap_pnsrt ();
extern void ap_val2str ();
extern void ap_use_percent();
#endif