summaryrefslogtreecommitdiff
path: root/tek.patch
blob: 10e0868994997dc08c11cb78b297606a08982a0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Zhang has developed a patch to the "screen" VT100 terminal emulation program
that allows one to perform tektronics "tek40xx" style graphics in a 
screen window.  I've tested it with gnuplot and it works quite well.  

Send flames or technical inquries to the patch author Xiaoguang
Zhang (zhang@gmsds.ms.ornl.gov) and to screen@uni-erlangen.de

=====================================================================

*** ./ansi.h.orig	Fri Jan  2 19:12:05 1970
--- ./ansi.h	Wed Nov 15 19:25:11 1995
***************
*** 56,62 ****
    PRIN,				/* Printer mode */
    PRINESC,			/* ESC seen in printer mode */
    PRINCSI,			/* CSI seen in printer mode */
!   PRIN4				/* CSI 4 seen in printer mode */
  };
  
  enum string_t 
--- 56,65 ----
    PRIN,				/* Printer mode */
    PRINESC,			/* ESC seen in printer mode */
    PRINCSI,			/* CSI seen in printer mode */
!   PRIN4,			/* CSI 4 seen in printer mode */
!   TEK,				/* Tektronix mode */
!   TEKESC,			/* Tektronix escape */
!   TEKEND			/* Tektronix ending sequence */
  };
  
  enum string_t 
*** ./ansi.c.orig	Sun Oct 29 16:01:26 1995
--- ./ansi.c	Wed Nov 15 19:25:11 1995
***************
*** 805,810 ****
--- 805,815 ----
  	    case 'k':
  	      StartString(AKA);
  	      break;
+ 	    case '\014':
+ 	      curr->w_state = TEK;
+ 	      RAW_PUTCHAR('\033');
+ 	      RAW_PUTCHAR(c);
+ 	      break;
  	    default:
  	      if (Special(c))
  	        {
***************
*** 868,873 ****
--- 873,899 ----
  		  goto tryagain;
  		}
  	    }
+ 	  break;
+ 	case TEK:
+ 	  switch (c)
+ 	    {
+ 	    case '@':
+ 	      if ((unsigned char)*(buf - 2) == ' ') /* XXX: Yucc! */
+ 		curr->w_state = TEKESC;
+ 	      /* FALLTHROUGH */
+ 	    default:
+ 	      RAW_PUTCHAR(c);
+ 	      break;
+ 	    }
+ 	  break;
+ 	case TEKESC:
+ 	  curr->w_state = (c == '\037') ? TEKEND : TEK;
+ 	  RAW_PUTCHAR(c);
+ 	  break;
+ 	case TEKEND:
+ 	  if (c == '\030')
+ 	    curr->w_state = LIT;
+ 	  RAW_PUTCHAR(c);
  	  break;
  	case LIT:
  	default:

=====================================================================