Subversion Repositories planix.SVN

Rev

Rev 36 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
36 7u83 1
/*-
2
 * Copyright (c) 1983 The Regents of the University of California.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
7
 * are met:
8
 * 1. Redistributions of source code must retain the above copyright
9
 *    notice, this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright
11
 *    notice, this list of conditions and the following disclaimer in the
12
 *    documentation and/or other materials provided with the distribution.
13
 * 3. All advertising materials mentioning features or use of this software
14
 *    must display the following acknowledgement:
15
 *	This product includes software developed by the University of
16
 *	California, Berkeley and its contributors.
17
 * 4. Neither the name of the University nor the names of its contributors
18
 *    may be used to endorse or promote products derived from this software
19
 *    without specific prior written permission.
20
 *
21
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
 * SUCH DAMAGE.
32
 */
33
 
34
#ifndef lint
35
char copyright[] =
36
"@(#) Copyright (c) 1983 The Regents of the University of California.\n\
37
 All rights reserved.\n";
38
#endif /* not lint */
39
 
40
#ifndef lint
41
static char sccsid[] = "@(#)tc3.c	5.4 (Berkeley) 4/12/91";
42
#endif /* not lint */
43
 
44
/*
45
 * tc3 [term]
46
 * Dummy program to test out termlib.  Input two numbers (row and col)
47
 * and it prints out the tgoto string generated.
48
 */
49
#include <stdio.h>
50
char buf[1024];
51
char *getenv(), *tgetstr();
52
char *rdchar();
53
char *tgoto();
54
char *CM;
55
char cmbuff[30];
56
char *x;
57
char *UP;
58
char *tgout;
59
 
60
main(argc, argv) char **argv; {
61
	char *p;
62
	int rc;
63
	int row, col;
64
 
65
	if (argc < 2)
66
		p = getenv("TERM");
67
	else
68
		p = argv[1];
69
	rc = tgetent(buf,p);
70
	x = cmbuff;
71
	UP = tgetstr("up", &x);
72
	printf("UP = %x = ", UP); pr(UP); printf("\n");
73
	if (UP && *UP==0)
74
		UP = 0;
75
	CM = tgetstr("cm", &x);
76
	printf("CM = "); pr(CM); printf("\n");
77
	for (;;) {
78
		if (scanf("%d %d", &row, &col) < 2)
79
			exit(0);
80
		tgout = tgoto(CM, col, row);
81
		pr(tgout);
82
		printf("\n");
83
	}
84
}
85
 
86
pr(p)
87
register char *p;
88
{
89
	for (; *p; p++)
90
		printf("%s", rdchar(*p));
91
}
92
 
93
/*
94
 * rdchar() returns a readable representation of an ASCII character
95
 * using ^ for control, ' for meta.
96
 */
97
#include <ctype.h>
98
char *rdchar(c)
99
char c;
100
{
101
	static char ret[4];
102
	register char *p = ret;
103
 
104
	if ((c&0377) > 0177)
105
		*p++ = '\'';
106
	c &= 0177;
107
	if (!isprint(c))
108
		*p++ = '^';
109
	*p++ = (isprint(c) ?  c  : c^0100);
110
	*p = 0;
111
	return (ret);
112
}