6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
9 * Revision 1.2 1987-09-03 03:21:34 wesommer
10 * upped string lengths to reasonable levels.
12 * Revision 1.1 87/08/22 17:14:30 wesommer
18 static char *rcsid_fixname_c = "$Header$";
27 void FixName(ilnm, ifnm, last, first, middle)
29 char *first, *last, *middle;
31 int ends_jr=0, ends_iii=0, ends_iv=0;
38 TrimTrailingSpace(ilnm);
39 LookForJrAndIII(ilnm, &ends_jr, &ends_iii, &ends_iv);
43 strncpy(last, ilnm, LAST_LEN);
45 /* First name & middle initial ... */
47 TrimTrailingSpace(ifnm);
48 LookForJrAndIII(ifnm, &ends_jr, &ends_iii, &ends_iv);
50 GetMidInit(ifnm, middle);
54 /* okay, finish up first name */
55 AppendJrOrIII(ifnm, &ends_jr, &ends_iii, &ends_iv);
57 strncpy(first, ifnm, FIRST_LEN);
60 AppendJrOrIII(nm, phas_jr, phas_iii, phas_iv)
62 register int *phas_jr;
63 register int *phas_iii;
64 register int *phas_iv;
80 register int cflag; /* convert to lcase, unless at start or following */
81 /* a space or punctuation mark (e.g., '-') */
83 for (cflag = 0; *p; p++) {
84 if (cflag && isupper(*p)) {
87 else if (isspace(*p) || ispunct(*p)) {
96 LookForJrAndIII(nm, pends_jr, pends_iii, pends_iv)
98 register int *pends_jr;
99 register int *pends_iii;
100 register int *pends_iv;
102 register int len = strlen(nm);
104 if (len >= 4 && !strcmp(nm + len - 3, " JR")) {
108 else if (len >= 4 && !strcmp(nm + len - 3, " IV")) {
112 else if (len >= 5 && !strcmp(nm + len - 4, " JR.")) {
116 else if (len >= 5 && !strcmp(nm + len - 4, " III")) {
122 LookForSt(nm) /* ST PIERRE, etc. */
127 if (!strcmp(nm,"ST ")) {
128 strcpy(temp, nm + 3);
134 LookForO(nm) /* O BRIEN, etc. */
137 if (!strcmp(nm, "O ") && isalpha(nm[2])) {
142 TrimTrailingSpace(ip)
146 for (p = ip + strlen(ip) - 1; p >= ip && isspace(*p); p--) {
156 for ( ; c= *cp; cp++)
157 if (islower(c)) *cp = toupper(c);
161 register char *nm; /* truncate at first space, if any such */
162 register char *mi; /* set to first char after first space, if any such */
164 while (*nm && !isspace(*nm)) {
170 while (*nm && isspace(*nm)) {