|
|
1.1 ! root 1: # include "stdio.h" ! 2: # include "assert.h" ! 3: # include "ctype.h" ! 4: prsum(fn) ! 5: char *fn; ! 6: { ! 7: char line[100], *s; ! 8: FILE *fl; ! 9: int k; ! 10: if (fn[0]=='\0') ! 11: return; ! 12: fl = fopen(fn, "r"); ! 13: if (fl==NULL) return; ! 14: printf("(%s): ", fn); ! 15: while (fgets(line, 100, fl)) ! 16: if (line[0]=='\t') break; ! 17: for(s=line; *s==' '|| *s=='\t'; s++) ! 18: ; ! 19: ctset(12); ! 20: do { ! 21: trimnl(s); ! 22: k = sentend(s); ! 23: ctput(s); ! 24: if (k>0) break; ! 25: } while (fgets(s=line, 100, fl)); ! 26: ctout(); ! 27: fclose(fl); ! 28: } ! 29: sentend(s) ! 30: char *s; ! 31: { ! 32: for( s+=2; *s; s++) ! 33: if (s[0]=='.') ! 34: { ! 35: char *p = s; ! 36: if (s[-2]=='.' || s[-2]==' ') ! 37: continue; ! 38: if (s[-3]==' ' &&strncase(s-2, "st", 2)==0) ! 39: continue; ! 40: if (strncase(s-2, "Mr", 2)==0) ! 41: continue; ! 42: if (strncase(s-3, "Mrs", 3)==0) ! 43: continue; ! 44: if (strncase(s-2, "Ms", 2)==0) ! 45: continue; ! 46: if (strncase(s-3, "Sen", 3)==0) ! 47: continue; ! 48: if (strncase(s-4, "Capt", 4)==0) ! 49: continue; ! 50: if (strncase(s-3, "Col", 3)==0) ! 51: continue; ! 52: if (strncase(s-3, "Rep", 3)==0) ! 53: continue; ! 54: if (strncase(s-2, "Co", 2)==0) ! 55: continue; ! 56: if (strncase (s-3, "Rev", 3)==0) ! 57: continue; ! 58: while (*++p ==' ' || *p == '\t'); ! 59: if (p[0]=='\'' && p[1]=='\'') ! 60: { ! 61: p[2]=0; ! 62: return(1); ! 63: } ! 64: if (*p==0 || isupper(*p) ) ! 65: { ! 66: s[1]=0; ! 67: return(1); ! 68: } ! 69: } ! 70: return(0); ! 71: } ! 72: static int col= 0; ! 73: ctset(n) ! 74: { ! 75: col=n; ! 76: } ! 77: ctput(s) ! 78: char *s; ! 79: { ! 80: int k, m; ! 81: m = strlen(s); ! 82: if (m>72-col) ! 83: { ! 84: for (k=72-col; k>0 && s[k]!=' '; k--) ! 85: ; ! 86: if (k>0) ! 87: { ! 88: s[k++]=0; ! 89: printf("%s\n ", s); ! 90: } ! 91: else ! 92: printf("\n "); ! 93: col=4; ! 94: } ! 95: else ! 96: k= 0; ! 97: s += k; ! 98: printf("%s ", s); ! 99: col += strlen(s); ! 100: } ! 101: ctout() ! 102: { ! 103: printf("\n"); ! 104: } ! 105: strncase(s, t, n) ! 106: char *s, *t; ! 107: { ! 108: while (n--) ! 109: { ! 110: if ( (*s ^ *t) & 0337) ! 111: return(1); ! 112: if (*s==0) return(0); ! 113: s++; t++; ! 114: } ! 115: return(0); ! 116: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.