char *ilnm, *ifnm;
char *first, *last, *middle;
{
- int ends_jr=0, ends_iii=0, ends_iv=0;
+ int ends_jr=0, ends_iii=0, ends_iv=0, ends_ii=0, ends_v=0;
Upcase(ilnm);
Upcase(ifnm);
/* Last name ... */
TrimTrailingSpace(ilnm);
- LookForJrAndIII(ilnm, &ends_jr, &ends_iii, &ends_iv);
+ LookForJrAndIII(ilnm, &ends_jr, &ends_ii, &ends_iii, &ends_iv, &ends_v);
LookForSt(ilnm);
LookForO(ilnm);
FixCase(ilnm);
/* First name & middle initial ... */
TrimTrailingSpace(ifnm);
- LookForJrAndIII(ifnm, &ends_jr, &ends_iii, &ends_iv);
+ LookForJrAndIII(ifnm, &ends_jr, &ends_ii, &ends_iii, &ends_iv, &ends_v);
GetMidInit(ifnm, middle);
FixCase(ifnm);
#ifdef notdef
/* okay, finish up first name */
- AppendJrOrIII(ifnm, &ends_jr, &ends_iii, &ends_iv);
+ AppendJrOrIII(ifnm, &ends_jr, &ends_ii, &ends_iii, &ends_iv, &ends_v);
#endif notdef
strncpy(first, ifnm, FIRST_LEN);
}
-#ifdef notdef
-AppendJrOrIII(nm, phas_jr, phas_iii, phas_iv)
-register char *nm;
-register int *phas_jr;
-register int *phas_iii;
-register int *phas_iv;
-{
- if (*phas_jr) {
- strcat(nm, ", Jr.");
- }
- else if (*phas_iii) {
- strcat(nm, " III");
- }
- else if (*phas_iv) {
- strcat(nm, " IV");
- }
-}
-#endif notdef
+
FixCase(p)
register char *p;
{
/* a space or punctuation mark (e.g., '-') */
for (cflag = 0; *p; p++) {
- if (cflag && isupper(*p)) {
- *p = tolower(*p);
- }
- else if (isspace(*p) || ispunct(*p)) {
- cflag = 0;
- }
- else {
- cflag = 1;
- }
+ if (cflag && isupper(*p))
+ *p = tolower(*p);
+ else if (!cflag && islower(*p))
+ *p = toupper(*p);
+ if (isalpha(*p))
+ cflag = 1;
+ else
+ cflag = 0;
}
}
-LookForJrAndIII(nm, pends_jr, pends_iii, pends_iv)
+LookForJrAndIII(nm, pends_jr, pends_ii, pends_iii, pends_iv, pends_v)
register char *nm;
register int *pends_jr;
+int *pends_ii;
register int *pends_iii;
register int *pends_iv;
+int *pends_v;
{
register int len = strlen(nm);
*pends_iii = 1;
nm[len - 4] = '\0';
}
+ else if (len >= 4 && !strcmp(nm + len - 3, " II")) {
+ *pends_ii = 1;
+ nm[len - 3] = '\0';
+ }
+ else if (len >= 3 && !strcmp(nm + len - 2, " V")) {
+ *pends_v = 1;
+ nm[len - 2] = '\0';
+ }
}
LookForSt(nm) /* ST PIERRE, etc. */