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 o

⟦eba820c28⟧ TextFile

    Length: 4314 (0x10da)
    Types: TextFile
    Names: »or.h«

Derivation

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

TextFile

/* or.h: o/r name package */

/*
 * @(#) $Header: /cs/research/pp/hubris/pp-beta/h/RCS/or.h,v 5.0 90/09/20 16:50:44 pp Exp Locker: pp $
 *
 * $Log:	or.h,v $
 * Revision 5.0  90/09/20  16:50:44  pp
 * rcsforce : 5.0 public release
 * 
 *
 */



#ifndef _H_OR
#define _H_OR

#include <isode/psap.h>
#include <isode/cmd_srch.h>

/*
Definitions for OR Name structure

NOTE - that the trees are strucutred with the MOST significant part at the top
*/

/* SEK temp notes:

    OR/STD  will have a matrix of or_part/valid encodings.
    If a Char* is present, this identifies the valid key

    84/88 distinction will be done as address subtyping.
    std2or  needs to have a flag to reflect this.   

    Needs to be a routine to downgrade addresses 88 -> 84.  
    First cut can work by discard.
*/

struct or_part
{
int		   or_type;
#define OR_C		1
#define OR_ADMD		2
#define OR_PRMD		3
#define OR_O		4
#define OR_OU		5
#define OR_X121		6
#define OR_TID		7
#define OR_UAID		8
#define OR_S		9
#define OR_G		10
#define OR_I		11
#define OR_GQ		12
#define OR_CN		13
#define OR_PDSNAME	14
#define OR_PD_C		15
#define OR_POSTCODE	16
#define OR_PDO_NAME	17
#define OR_OR_COMPS	18
#define OR_PD_PN	19
#define OR_PD_O		20
#define OR_PD_COMPS	21
#define OR_UPA_PA	22
#define OR_UPA_TS	23
#define OR_STREET	24
#define OR_PO_BOX	25
#define OR_PRA		26
#define OR_UPN		27
#define OR_LPA		28
#define OR_ENA_N	29
#define OR_ENA_S	30
#define OR_ENA_P	31
#define OR_TT		23
#define OR_DD		99
int		   or_encoding;
#define OR_ENC_PS	1
#define OR_ENC_TTX	2
#define OR_ENC_NUM	3
#define OR_ENC_TTX_AND_OR_PS	4 /* use 987 string encoding */
#define OR_ENC_INT	5
#define OR_ENC_PSAP	6	/* ISODE/SEK string form */			
char		   *or_ddname;
char		   *or_value;
struct or_part	   *or_prev;
struct or_part	   *or_next;
};

#define or_or2rfc(a,b)	or_or2rfc_aux ((a), (b), 0)	/* backwards compat */
#define or_rfc2or(a,b)	or_rfc2or_aux ((a), (b), 0)

#define OR_ISLOCAL	01
#define OR_ISMTA	02

#define CHR_PS		01	 /* Printable String */
#define CHR_NS		02	 /* Numeric String */

typedef struct or_part	*OR_ptr;

#define NULLOR		((OR_ptr)0)

extern char _pstable[];

#define or_isps(c)	(_pstable[c]&CHR_PS)
#define or_isns(c)	(_pstable[c]&CHR_NS)

typedef struct tpstruct {
    char	    *ty_string;
    int		    ty_int;
    int		    ty_charset;
} typestruct;

extern typestruct typetab[];

/* valid DD's */
#define	 OR_DDVALID_RFC822		1
#define	 OR_DDVALID_JNT			2
#define	 OR_DDVALID_UUCP		3
#define	 OR_DDVALID_LIST		4
#define	 OR_DDVALID_ROLE		5
#define	 OR_DDVALID_FAX			6
#define	 OR_DDVALID_ATTN		7
extern CMD_TABLE ortbl_ddvalid[];
extern OR_ptr	loc_ortree;

extern	OR_ptr	pe2or();		/* convert PE to OR struct */
extern	PE	or2pe();		/* convert OR struct to PE */
extern OR_ptr	or_add();		/* add or_part to place in tree */
extern OR_ptr	or_default();		/* add def vals to partial OR Name */
extern OR_ptr	or_dmn2or();		/* OR dmn string -> structure */
extern OR_ptr	or_dup();		/* duplicate or_part */
extern OR_ptr	or_find();		/* find or_part of type in tree */
extern OR_ptr	or_lastpart();		/* point to last component */
extern OR_ptr	or_locate();		/* find 1st part of any component */
extern OR_ptr	or_new();		/* create and fill new or_part */
extern OR_ptr	or_std2or();		/* OR std string -> structure */
extern char	*or_value();		/* find a type and return it's val */
extern char*	or_type2name();		/* get string of part type */
extern int	or_cmp();		/* test if two or_parts are equal */
extern void	or_free();		/* free structure recursively */
extern int	or_init();		/* various global inits */
extern int	or_name2type();		/* get type of string */
extern void	or_or2dmn();		/* structure to OR dmn string */
extern int	or_or2rfc_aux ();
extern int	or_rfc2or_aux ();	/* map 822 form to tree */
extern void	or_or2std();		/* structure to OR std string */
extern int	or_utilinit();		/* various global inits */
extern int	or_blank ();
extern OR_ptr	or_buildpn ();		/* construct a personal name */
extern int	or_getpn ();
extern void	qstrcat ();
extern void	dstrcat ();
extern void	or_myinit ();
extern int	or_ddname_chk ();
extern int	or_ddvalid_chk ();
extern int	or_gettoken ();
extern int	or_isdomsyntax ();
extern void	or_ps2asc ();
extern int	or_or2rbits ();
extern int	rfc_space ();
extern int	or_rbits2or ();
extern int	or_asc2ps ();


#endif