DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T a

⟦237c768d8⟧ TextFile

    Length: 3801 (0xed9)
    Types: TextFile
    Names: »ap.h«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« 
        └─⟦e5a54fb17⟧ 
            └─⟦this⟧ »pp-5.0/h/ap.h« 

TextFile

/* 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