Deleted Added
full compact
locate.bigram.c (17972) locate.bigram.c (18300)
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * James A. Woods.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 19 unchanged lines hidden (view full) ---

28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
1/*
2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * James A. Woods.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 19 unchanged lines hidden (view full) ---

28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * $Id: locate.bigram.c,v 1.5 1996/08/30 03:06:15 peter Exp $
36 * $Id: locate.bigram.c,v 1.1 1996/09/13 13:23:48 wosch Exp wosch $
37 */
38
39#ifndef lint
40static char copyright[] =
41"@(#) Copyright (c) 1989, 1993\n\
42 The Regents of the University of California. All rights reserved.\n";
43#endif /* not lint */
44

--- 21 unchanged lines hidden (view full) ---

66main(void)
67{
68 register u_char *cp;
69 register u_char *oldpath = buf1, *path = buf2;
70 register u_int i, j;
71
72 while (fgets(path, sizeof(buf2), stdin) != NULL) {
73
37 */
38
39#ifndef lint
40static char copyright[] =
41"@(#) Copyright (c) 1989, 1993\n\
42 The Regents of the University of California. All rights reserved.\n";
43#endif /* not lint */
44

--- 21 unchanged lines hidden (view full) ---

66main(void)
67{
68 register u_char *cp;
69 register u_char *oldpath = buf1, *path = buf2;
70 register u_int i, j;
71
72 while (fgets(path, sizeof(buf2), stdin) != NULL) {
73
74 /* skip empty lines */
75 if (*path == '\n')
76 continue;
74 /*
75 * We don't need remove newline character '\n'.
76 * '\n' is less than ASCII_MIN and will be later
77 * ignored at output.
78 */
77
79
78 /* Squelch characters that would botch the decoding. */
79 for (cp = path; *cp != '\0'; cp++) {
80 /* chop newline */
81 if (*cp == '\n')
82 *cp = '\0';
83 /* range */
84 else if (*cp < ASCII_MIN || *cp > ASCII_MAX)
85 *cp = '?';
86 }
87
88 /* skip longest common prefix */
80
81 /* skip longest common prefix */
89 for (cp = path; *cp == *oldpath && *cp != '\0'; cp++, oldpath++);
82 for (cp = path; *cp == *oldpath; cp++, oldpath++)
83 if (*cp == '\0')
84 break;
90
85
91 while (*cp != '\0' && *(cp+1) != '\0') {
92 bigram[*cp][*(cp+1)]++;
86 while (*cp != '\0' && *(cp + 1) != '\0') {
87 bigram[(u_int)*cp][(u_int)*(cp + 1)]++;
93 cp += 2;
94 }
95
96 /* swap pointers */
97 if (path == buf1) {
98 path = buf2;
99 oldpath = buf1;
100 } else {
101 path = buf1;
102 oldpath = buf2;
103 }
104 }
105
88 cp += 2;
89 }
90
91 /* swap pointers */
92 if (path == buf1) {
93 path = buf2;
94 oldpath = buf1;
95 } else {
96 path = buf1;
97 oldpath = buf2;
98 }
99 }
100
106 /* output, (paranoid) boundary check */
101 /* output, boundary check */
107 for (i = ASCII_MIN; i <= ASCII_MAX; i++)
108 for (j = ASCII_MIN; j <= ASCII_MAX; j++)
109 if (bigram[i][j] != 0)
102 for (i = ASCII_MIN; i <= ASCII_MAX; i++)
103 for (j = ASCII_MIN; j <= ASCII_MAX; j++)
104 if (bigram[i][j] != 0)
110 printf("%4u %c%c\n", bigram[i][j], i, j);
105 (void)printf("%4u %c%c\n", bigram[i][j], i, j);
111
112 exit(0);
113}
106
107 exit(0);
108}