+#ifndef lint
+static char sccsid[] = "@(#)locate.bigram.c 4.1 (Berkeley) %G%";
+#endif not lint
+
+/*
+ * bigram < text > bigrams
+ *
+ * List bigrams for 'find.squeeze' script.
+ * Use 'find.code' to encode a file using this output.
+ */
+
+#include <stdio.h>
+
+#define MAXPATH 1024 /* maximum pathname length */
+
+char path[MAXPATH];
+char oldpath[MAXPATH] = " ";
+
+main ( )
+{
+ register int count, j;
+
+ while ( gets ( path ) != NULL ) {
+
+ count = prefix_length ( oldpath, path );
+ /*
+ output post-residue bigrams only
+ */
+ for ( j = count; path[j] != NULL; j += 2 ) {
+ if ( path[j + 1] == NULL )
+ break;
+ putchar ( path[j] );
+ putchar ( path[j + 1] );
+ putchar ( '\n' );
+ }
+ strcpy ( oldpath, path );
+ }
+}
+
+prefix_length ( s1, s2 ) /* return length of longest common prefix */
+ char *s1, *s2; /* ... of strings s1 and s2 */
+{
+ register char *start;
+
+ for ( start = s1; *s1 == *s2; s1++, s2++ )
+ if ( *s1 == NULL )
+ break;
+ return ( s1 - start );
+}