/* $Header: CHstrtoname.c,v 2.1 87/03/10 17:22:06 jqj Exp $ */
/* $Log: CHstrtoname.c,v $
* Revision 2.1 87/03/10 17:22:06 jqj
* Revision 2.0 85/11/21 07:22:34 jqj
* 4.3BSD standard release
* Revision 1.1 85/03/26 06:27:02 jqj
* Revision 1.1 85/03/26 06:27:02 jqj
#include <xnscourier/Clearinghouse2.h>
* Given an ObjectName, produce a string in standard format.
* N.B. should escape ":" in the components!
CH_NameToString(chs_name
)
Clearinghouse2_ObjectName chs_name
;
return sprintf(buf
,"%.40s:%.20s:%.20s",
* Given a string in standard format, return an ObjectName.
* If the string is incomplete, e.g. "jqj" or "::cornell-univ", fill
* in default values from defaults.
* N.B. should handle escaped ":" in the compenents.
Clearinghouse2_ObjectName
CH_StringToName(str
,defaults
)
Clearinghouse2_ObjectName
*defaults
;
register Clearinghouse2_ObjectName result
;
s1
= result
.object
= (str
? copy(str
) : "");
if (s1
= index(s1
,':')) {
if (s1
= index(s1
,':')) {
result
.organization
= ++s1
;
result
.organization
= "";
result
.organization
= result
.domain
= "";
/* now fill in defaults if any */
if (defaults
== (Clearinghouse2_ObjectName
*) NULL
)
if (*result
.object
== '\0' && defaults
->object
!= NULL
)
result
.object
= copy(defaults
->object
);
if (*result
.domain
== '\0' && defaults
->domain
!= NULL
)
result
.domain
= copy(defaults
->domain
);
if (*result
.organization
== '\0' && defaults
->organization
!= NULL
)
result
.organization
= copy(defaults
->organization
);
if ((p
= malloc(strlen(s
) + 1)) == NULL
) {