|
|
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 o
Length: 4314 (0x10da)
Types: TextFile
Names: »or.h«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/h/or.h«
/* 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