|
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: 1570 (0x622) Types: TextFile Names: »or_getpn.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Lib/or/or_getpn.c«
/* or_getpn.c: get personal name out of the tree */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_getpn.c,v 5.0 90/09/20 16:08:07 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_getpn.c,v 5.0 90/09/20 16:08:07 pp Exp Locker: pp $ * * $Log: or_getpn.c,v $ * Revision 5.0 90/09/20 16:08:07 pp * rcsforce : 5.0 public release * */ #include "or.h" #include "util.h" /* --- *** --- Get PN out of tree and put into buf --- *** --- */ int or_getpn (or, buf) OR_ptr or; char *buf; { OR_ptr ptr; PP_DBG (("or_util.c/or_getpn ()")); buf[0] = '\0'; if ((ptr = or_find (or, OR_G, NULLCP)) != NULLOR) { if (strlen (ptr -> or_value) > 1 && index (ptr -> or_value, '.') == NULLCP) { (void) strcat (buf, ptr -> or_value); (void) strcat (buf, "."); } else return FALSE; } if ((ptr = or_find (or, OR_I, NULLCP)) != NULLOR) { char *p, *q; q = &buf[strlen(buf)]; for (p = ptr -> or_value; *p != '\0'; p++) { if (!isalpha (*p)) return FALSE; *q++ = *p; *q++ = '.'; } *q = '\0'; } if ((ptr = or_find (or, OR_S, NULLCP)) != NULLOR) { if (index (ptr -> or_value, '.') != NULLCP) { /* Surname with "." - yuk */ if (buf[0] == '\0' || strlen (ptr -> or_value) < 3 || ptr -> or_value[0] == '.' || ptr -> or_value[1] == '.' ) return FALSE; } (void) strcat (buf, ptr -> or_value); } else return FALSE; PP_DBG (("or_util.c/or_getpn: Got PN '%s'", buf)); return TRUE; }