|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)bigram.c 4.2 (Berkeley) 7/21/83"; ! 3: #endif not lint ! 4: ! 5: /* ! 6: * bigram < text > bigrams ! 7: * ! 8: * List bigrams for 'updatedb' script. ! 9: * Use 'code' to encode a file using this output. ! 10: */ ! 11: ! 12: #include <stdio.h> ! 13: ! 14: #define MAXPATH 1024 /* maximum pathname length */ ! 15: ! 16: char path[MAXPATH]; ! 17: char oldpath[MAXPATH] = " "; ! 18: ! 19: main ( ) ! 20: { ! 21: register int count, j; ! 22: ! 23: while ( gets ( path ) != NULL ) { ! 24: ! 25: count = prefix_length ( oldpath, path ); ! 26: /* ! 27: output post-residue bigrams only ! 28: */ ! 29: for ( j = count; path[j] != NULL; j += 2 ) { ! 30: if ( path[j + 1] == NULL ) ! 31: break; ! 32: putchar ( path[j] ); ! 33: putchar ( path[j + 1] ); ! 34: putchar ( '\n' ); ! 35: } ! 36: strcpy ( oldpath, path ); ! 37: } ! 38: } ! 39: ! 40: prefix_length ( s1, s2 ) /* return length of longest common prefix */ ! 41: char *s1, *s2; /* ... of strings s1 and s2 */ ! 42: { ! 43: register char *start; ! 44: ! 45: for ( start = s1; *s1 == *s2; s1++, s2++ ) ! 46: if ( *s1 == NULL ) ! 47: break; ! 48: return ( s1 - start ); ! 49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.