v16i016: Gnuplot 2.0 patch 2, 6 of 7
Russell Lang
rjl at monu1.cc.monash.edu.au
Sat Jan 5 15:08:35 AEST 1991
Submitted-by: Russell Lang <rjl at monu1.cc.monash.edu.au>
Posting-number: Volume 16, Issue 16
Archive-name: gnuplot2.02/patch6
Patch-To: gnuplot2.0: Volume 11, Issue 65-79
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: patch2e
# Wrapped by eln272v at monu1 on Wed Dec 19 11:58:05 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f patch2e -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"patch2e\"
else
echo shar: Extracting \"patch2e\" \(50691 characters\)
sed "s/^X//" >patch2e <<'END_OF_patch2e'
Xdiff -cr ./term.c ../gnuplot2.02/term.c
X*** ./term.c Tue Sep 18 14:59:25 1990
X--- ../gnuplot2.02/term.c Mon Dec 10 10:08:24 1990
X***************
X*** 29,34
X
X #include <stdio.h>
X #include "plot.h"
X #include "term.h"
X
X /* for use by all drivers */
X
X--- 29,35 -----
X
X #include <stdio.h>
X #include "plot.h"
X+ #include "setshow.h"
X #include "term.h"
X #include "bitmap.h"
X
X***************
X*** 30,35
X #include <stdio.h>
X #include "plot.h"
X #include "term.h"
X
X /* for use by all drivers */
X #define sign(x) ((x) >= 0 ? 1 : -1)
X
X--- 31,37 -----
X #include "plot.h"
X #include "setshow.h"
X #include "term.h"
X+ #include "bitmap.h"
X
X /* for use by all drivers */
X #define sign(x) ((x) >= 0 ? 1 : -1)
X***************
X*** 61,78
X #ifdef __TURBOC__
X char *turboc_init();
X #endif
X!
X! #ifdef vms
X! /* these are needed to sense a regis terminal and
X! * to do a SET TERM/NOWRAP */
X! #include <descrip.h>
X! #include <dvidef.h>
X! #include <iodef.h>
X! #include <ttdef.h>
X! #include <tt2def.h>
X! static unsigned short chan;
X! static int old_char_buf[3], new_char_buf[3];
X! $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
X char *vms_init();
X #endif
X
X
X--- 63,72 -----
X #ifdef __TURBOC__
X char *turboc_init();
X #endif
X! #ifdef PC
X! void reopen_binary();
X! #endif
X! #ifdef VMS
X char *vms_init();
X void vms_reset();
X void term_mode_tek();
X***************
X*** 74,79
X static int old_char_buf[3], new_char_buf[3];
X $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
X char *vms_init();
X #endif
X
X
X
X--- 68,80 -----
X #endif
X #ifdef VMS
X char *vms_init();
X+ void vms_reset();
X+ void term_mode_tek();
X+ void term_mode_native();
X+ void term_pasthru();
X+ void term_nopasthru();
X+ void reopen_binary();
X+ void fflush_binary();
X #endif
X
X /* This is needed because the unixplot library only writes to stdout. */
X***************
X*** 76,82
X char *vms_init();
X #endif
X
X-
X /* This is needed because the unixplot library only writes to stdout. */
X #ifdef UNIXPLOT
X FILE save_stdout;
X
X--- 77,82 -----
X void fflush_binary();
X #endif
X
X /* This is needed because the unixplot library only writes to stdout. */
X #ifdef UNIXPLOT
X FILE save_stdout;
X***************
X*** 225,235
X
X }
X
X- #ifdef PC
X- #ifndef __TURBOC__
X- #define FONT57
X- #endif
X- #endif
X
X #ifdef NEC
X #ifndef EPSON
X
X--- 225,230 -----
X
X }
X
X
X #ifdef PC /* all PC types */
X #include "term/pc.trm"
X***************
X*** 231,279
X #endif
X #endif
X
X- #ifdef NEC
X- #ifndef EPSON
X- #define EPSON
X- #endif
X- #endif
X-
X- #ifdef PROPRINTER
X- #ifndef EPSON
X- #define EPSON
X- #endif
X- #endif
X-
X- #ifdef STARC
X- #ifndef EPSON
X- #define EPSON
X- #endif
X- #endif
X-
X- #ifdef TANDY60
X- #ifndef EPS60
X- #define EPS60
X- #endif
X- #endif
X-
X- #ifdef EPS60
X- #ifndef EPSON
X- #define EPSON
X- #endif
X- #endif
X-
X- #ifdef EPSON
X- #define FONT57
X- #endif
X-
X- #ifdef UNIXPC
X- #define FONT57
X- #endif
X-
X- #ifdef FONT57
X- #include "term/font5x7.trm"
X- #endif /* FONT57 */
X-
X-
X #ifdef PC /* all PC types */
X #include "term/pc.trm"
X #endif
X
X--- 226,231 -----
X }
X
X
X #ifdef PC /* all PC types */
X #include "term/pc.trm"
X #endif
X***************
X*** 279,285
X #endif
X
X /*
X! all TEK types (TEK,BITGRAPH,KERMIT,SELANAR) are ifdef'd in tek.trm,
X but most require various TEK routines. Hence TEK must be defined for
X the others to compile.
X */
X
X--- 231,237 -----
X #endif
X
X /*
X! all TEK types (TEK,BITGRAPH,KERMIT,VTTEK,SELANAR) are ifdef'd in tek.trm,
X but most require various TEK routines. Hence TEK must be defined for
X the others to compile.
X */
X***************
X*** 301,306
X # endif
X #endif
X
X #ifdef T410X /* Tektronix 4106, 4107, 4109 and 420x terminals */
X #include "term/t410x.trm"
X #endif
X
X--- 253,264 -----
X # endif
X #endif
X
X+ #ifdef VTTEK
X+ # ifndef TEK
X+ # define TEK
X+ # endif
X+ #endif
X+
X #ifdef T410X /* Tektronix 4106, 4107, 4109 and 420x terminals */
X #include "term/t410x.trm"
X #endif
X***************
X*** 305,311
X #include "term/t410x.trm"
X #endif
X
X! #ifdef TEK /* all TEK types, TEK, BBN, SELANAR, KERMIT */
X #include "term/tek.trm"
X #endif
X
X
X--- 263,269 -----
X #include "term/t410x.trm"
X #endif
X
X! #ifdef TEK /* all TEK types, TEK, BBN, SELANAR, KERMIT, VTTEK */
X #include "term/tek.trm"
X #endif
X
X***************
X*** 313,320
X #include "term/epson.trm"
X #endif
X
X! #ifdef EPS60 /* old-style EPSON 60-dpi */
X! #include "term/eps60.trm"
X #endif
X
X #ifdef FIG /* Fig 1.4FS Interactive graphics program */
X
X--- 271,278 -----
X #include "term/epson.trm"
X #endif
X
X! #ifdef HPLJII /* HP LaserJet II */
X! #include "term/hpljii.trm"
X #endif
X
X #ifdef FIG /* Fig 1.4FS Interactive graphics program */
X***************
X*** 346,351
X #include "term/post.trm"
X #endif
X
X #ifdef HPLJET /* hplaserjet */
X #include "term/hpljet.trm"
X #endif
X
X--- 304,313 -----
X #include "term/post.trm"
X #endif
X
X+ #ifdef PRESCRIBE /* PRESCRIBE type */
X+ #include "term/kyo.trm"
X+ #endif
X+
X #ifdef HPLJET /* hplaserjet */
X #include "term/hpljet.trm"
X #endif
X***************
X*** 358,363
X #include "term/aed.trm"
X #endif /* AED */
X
X #ifdef HP2648
X /* also works for HP2647 */
X #include "term/hp2648.trm"
X
X--- 320,329 -----
X #include "term/aed.trm"
X #endif /* AED */
X
X+ #ifdef CGI
X+ #include "term/cgi.trm"
X+ #endif /* CGI */
X+
X #ifdef HP2648
X /* also works for HP2647 */
X #include "term/hp2648.trm"
X***************
X*** 594,599
X null_justify_text, line_and_point, do_arrow}
X #endif
X
X #ifdef DXY800A
X ,{"dxy800a", "Roland DXY800A plotter",
X DXY_XMAX, DXY_YMAX, DXY_VCHAR, DXY_HCHAR,
X
X--- 560,581 -----
X null_justify_text, line_and_point, do_arrow}
X #endif
X
X+ #ifdef CGI
X+ ,{"cgi", "SCO CGI drivers (requires CGIDISP or CGIPRNT env variable)",
X+ CGI_XMAX, CGI_YMAX, 0, 0,
X+ CGI_VTIC, 0, CGI_init, CGI_reset,
X+ CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector,
X+ CGI_linetype, CGI_put_text, CGI_text_angle,
X+ CGI_justify_text, CGI_point, do_arrow}
X+
X+ ,{"hcgi", "SCO CGI drivers (hardcopy, requires CGIPRNT env variable)",
X+ CGI_XMAX, CGI_YMAX, 0, 0,
X+ CGI_VTIC, 0, HCGI_init, CGI_reset,
X+ CGI_text, null_scale, CGI_graphics, CGI_move, CGI_vector,
X+ CGI_linetype, CGI_put_text, CGI_text_angle,
X+ CGI_justify_text, CGI_point, do_arrow}
X+ #endif
X+
X #ifdef DXY800A
X ,{"dxy800a", "Roland DXY800A plotter",
X DXY_XMAX, DXY_YMAX, DXY_VCHAR, DXY_HCHAR,
X***************
X*** 625,632
X #ifdef EPS60
X ,{"epson_60dpi", "Epson-style 60-dot per inch printers",
X EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
X! EPSONVTIC, EPSONHTIC, EPS60init, EPSONreset,
X! EPS60text, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
X EPSONlinetype, EPSONput_text, EPSON_text_angle,
X null_justify_text, do_point, do_arrow}
X #endif
X
X--- 607,614 -----
X #ifdef EPS60
X ,{"epson_60dpi", "Epson-style 60-dot per inch printers",
X EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
X! EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
X! EPS60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
X EPSONlinetype, EPSONput_text, EPSON_text_angle,
X null_justify_text, do_point, do_arrow}
X #endif
X***************
X*** 632,638
X #endif
X
X #ifdef EPSON
X! ,{"epson_lx800", "Epson LX-800, Star NL-10, NX-1000 and lots of others",
X EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR,
X EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
X EPSONtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
X
X--- 614,620 -----
X #endif
X
X #ifdef EPSON
X! ,{"epson_lx800", "Epson LX-800, Star NL-10, NX-1000, PROPRINTER ...",
X EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR,
X EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
X EPSONtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
X***************
X*** 685,709
X null_justify_text, do_point, do_arrow}
X #endif
X
X! #ifdef HPLJET
X! ,{"laserjet1", "HP Laserjet, smallest size",
X! HPLJETXMAX, HPLJETYMAX, HPLJET1VCHAR, HPLJET1HCHAR,
X! HPLJETVTIC, HPLJETHTIC, HPLJET1init, HPLJETreset,
X! HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector,
X! HPLJETlinetype, HPLJETput_text, null_text_angle,
X! null_justify_text, line_and_point, do_arrow}
X! ,{"laserjet2", "HP Laserjet, medium size",
X! HPLJETXMAX, HPLJETYMAX, HPLJET2VCHAR, HPLJET2HCHAR,
X! HPLJETVTIC, HPLJETHTIC, HPLJET2init, HPLJETreset,
X! HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector,
X! HPLJETlinetype, HPLJETput_text, null_text_angle,
X! null_justify_text, line_and_point, do_arrow}
X! ,{"laserjet3", "HP Laserjet, largest size",
X! HPLJETXMAX, HPLJETYMAX, HPLJET3VCHAR, HPLJET3HCHAR,
X! HPLJETVTIC, HPLJETHTIC, HPLJET3init, HPLJETreset,
X! HPLJETtext, null_scale, HPLJETgraphics, HPLJETmove, HPLJETvector,
X! HPLJETlinetype, HPLJETput_text, null_text_angle,
X! null_justify_text, line_and_point, do_arrow}
X #endif
X
X #ifdef IMAGEN
X
X--- 667,701 -----
X null_justify_text, do_point, do_arrow}
X #endif
X
X! #ifdef HPLJII
X! ,{"hpljii_300ppi", "HP Laserjet series II with 300 pixels per inch",
X! HPLJII_300PPI_XMAX, HPLJII_300PPI_YMAX, HPLJII_300PPI_VCHAR,
X! HPLJII_300PPI_HCHAR, HPLJII_300PPI_VTIC, HPLJII_300PPI_HTIC,
X! HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
X! HPLJII_300PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
X! HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
X! do_arrow}
X! ,{"hpljii_150ppi", "HP Laserjet series II with 150 pixels per inch",
X! HPLJII_150PPI_XMAX, HPLJII_150PPI_YMAX, HPLJII_150PPI_VCHAR,
X! HPLJII_150PPI_HCHAR, HPLJII_150PPI_VTIC, HPLJII_150PPI_HTIC,
X! HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
X! HPLJII_150PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
X! HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
X! do_arrow}
X! ,{"hpljii_100ppi", "HP Laserjet series II with 100 pixels per inch",
X! HPLJII_100PPI_XMAX, HPLJII_100PPI_YMAX, HPLJII_100PPI_VCHAR,
X! HPLJII_100PPI_HCHAR, HPLJII_100PPI_VTIC, HPLJII_100PPI_HTIC,
X! HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
X! HPLJII_100PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
X! HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
X! do_arrow}
X! ,{"hpljii_75ppi", "HP Laserjet series II with 75 pixels per inch",
X! HPLJII_75PPI_XMAX, HPLJII_75PPI_YMAX, HPLJII_75PPI_VCHAR,
X! HPLJII_75PPI_HCHAR, HPLJII_75PPI_VTIC, HPLJII_75PPI_HTIC,
X! HPLJIIinit, HPLJIIreset, HPLJIItext, null_scale,
X! HPLJII_75PPIgraphics, HPLJIImove, HPLJIIvector, HPLJIIlinetype,
X! HPLJIIput_text, HPLJIItext_angle, null_justify_text, line_and_point,
X! do_arrow}
X #endif
X
X #ifdef IMAGEN
X***************
X*** 749,755
X #endif
X
X #ifdef NEC
X! ,{"nec_cp6m", "NEC printer CP6 Monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X NECVTIC, NECHTIC, NECMinit, NECreset,
X NECtext, null_scale, NECgraphics, NECmove, NECvector,
X
X--- 741,747 -----
X #endif
X
X #ifdef NEC
X! ,{"nec_cp6m", "NEC printer CP6, Epson LQ-800 Monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X NECVTIC, NECHTIC, NECinit, NECreset,
X NECtext, null_scale, NECMgraphics, NECmove, NECvector,
X***************
X*** 751,758
X #ifdef NEC
X ,{"nec_cp6m", "NEC printer CP6 Monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECMinit, NECreset,
X! NECtext, null_scale, NECgraphics, NECmove, NECvector,
X NECMlinetype, NECput_text, NEC_text_angle,
X null_justify_text, line_and_point, do_arrow}
X ,{"nec_cp6c", "NEC printer CP6 Color",
X
X--- 743,750 -----
X #ifdef NEC
X ,{"nec_cp6m", "NEC printer CP6, Epson LQ-800 Monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECinit, NECreset,
X! NECtext, null_scale, NECMgraphics, NECmove, NECvector,
X NECMlinetype, NECput_text, NEC_text_angle,
X null_justify_text, line_and_point, do_arrow}
X ,{"nec_cp6c", "NEC printer CP6 Color",
X***************
X*** 757,764
X null_justify_text, line_and_point, do_arrow}
X ,{"nec_cp6c", "NEC printer CP6 Color",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECCinit, NECreset,
X! NECtext, null_scale, NECgraphics, NECmove, NECvector,
X NECClinetype, NECput_text, NEC_text_angle,
X null_justify_text, do_point, do_arrow}
X ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
X
X--- 749,756 -----
X null_justify_text, line_and_point, do_arrow}
X ,{"nec_cp6c", "NEC printer CP6 Color",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECinit, NECreset,
X! NECtext, null_scale, NECCgraphics, NECmove, NECvector,
X NECClinetype, NECput_text, NEC_text_angle,
X null_justify_text, do_point, do_arrow}
X ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
X***************
X*** 761,767
X NECtext, null_scale, NECgraphics, NECmove, NECvector,
X NECClinetype, NECput_text, NEC_text_angle,
X null_justify_text, do_point, do_arrow}
X! ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X NECVTIC, NECHTIC, NECMinit, NECreset,
X NECdraft_text, null_scale, NECgraphics, NECmove, NECvector,
X
X--- 753,759 -----
X NECtext, null_scale, NECCgraphics, NECmove, NECvector,
X NECClinetype, NECput_text, NEC_text_angle,
X null_justify_text, do_point, do_arrow}
X! ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X NECVTIC, NECHTIC, NECinit, NECreset,
X NECdraft_text, null_scale, NECMgraphics, NECmove, NECvector,
X***************
X*** 763,770
X null_justify_text, do_point, do_arrow}
X ,{"nec_cp6d", "NEC printer CP6 Draft monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECMinit, NECreset,
X! NECdraft_text, null_scale, NECgraphics, NECmove, NECvector,
X NECMlinetype, NECput_text, NEC_text_angle,
X null_justify_text, line_and_point, do_arrow}
X #endif
X
X--- 755,762 -----
X null_justify_text, do_point, do_arrow}
X ,{"nec_cp6d", "NEC printer CP6, Epson LQ-800 Draft monochrome",
X NECXMAX, NECYMAX, NECVCHAR, NECHCHAR,
X! NECVTIC, NECHTIC, NECinit, NECreset,
X! NECdraft_text, null_scale, NECMgraphics, NECmove, NECvector,
X NECMlinetype, NECput_text, NEC_text_angle,
X null_justify_text, line_and_point, do_arrow}
X #endif
X***************
X*** 796,809
X PS_justify_text, PS_point, do_arrow}
X #endif
X
X! #ifdef PROPRINTER
X! ,{"proprinter", "IBM Proprinter",
X! EPSONXMAX, EPSONYMAX, EPSONVCHAR, EPSONHCHAR,
X! EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
X! PROPRINTERtext, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
X! EPSONlinetype, EPSONput_text, EPSON_text_angle,
X! null_justify_text, line_and_point, do_arrow}
X! #endif
X
X #ifdef QMS
X ,{"qms", "QMS/QUIC Laser printer (also Talaris 1200 and others)",
X
X--- 788,807 -----
X PS_justify_text, PS_point, do_arrow}
X #endif
X
X! #ifdef PRESCRIBE
X! ,{"prescribe", "Prescribe - for the Kyocera Laser Printer",
X! PRE_XMAX, PRE_YMAX, PRE_VCHAR, PRE_HCHAR,
X! PRE_VTIC, PRE_HTIC, PRE_init, PRE_reset,
X! PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
X! PRE_linetype, PRE_put_text, null_text_angle,
X! PRE_justify_text, line_and_point, do_arrow}
X! ,{"kyo", "Kyocera Laser Printer with Courier font",
X! PRE_XMAX, PRE_YMAX, KYO_VCHAR, KYO_HCHAR,
X! PRE_VTIC, PRE_HTIC, KYO_init, PRE_reset,
X! PRE_text, null_scale, PRE_graphics, PRE_move, PRE_vector,
X! PRE_linetype, PRE_put_text, null_text_angle,
X! PRE_justify_text, line_and_point, do_arrow}
X! #endif /* PRESCRIBE */
X
X #ifdef QMS
X ,{"qms", "QMS/QUIC Laser printer (also Talaris 1200 and others)",
X***************
X*** 854,861
X #ifdef TANDY60
X ,{"tandy_60dpi", "Tandy DMP-130 series 60-dot per inch graphics",
X EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
X! EPSONVTIC, EPSONHTIC, EPS60init, EPSONreset,
X! TANDY60text, null_scale, EPSONgraphics, EPSONmove, EPSONvector,
X EPSONlinetype, EPSONput_text, EPSON_text_angle,
X null_justify_text, do_point, do_arrow}
X #endif
X
X--- 852,859 -----
X #ifdef TANDY60
X ,{"tandy_60dpi", "Tandy DMP-130 series 60-dot per inch graphics",
X EPS60XMAX, EPS60YMAX, EPSONVCHAR, EPSONHCHAR,
X! EPSONVTIC, EPSONHTIC, EPSONinit, EPSONreset,
X! TANDY60text, null_scale, EPS60graphics, EPSONmove, EPSONvector,
X EPSONlinetype, EPSONput_text, EPSON_text_angle,
X null_justify_text, do_point, do_arrow}
X #endif
X***************
X*** 905,910
X null_justify_text, do_point, do_arrow}
X #endif
X
X #ifdef X11
X ,{"x11", "X11 Window System",
X X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR,
X
X--- 903,917 -----
X null_justify_text, do_point, do_arrow}
X #endif
X
X+ #ifdef VTTEK
X+ ,{"vttek", "VT-like tek40xx terminal emulator",
X+ TEK40XMAX,TEK40YMAX,TEK40VCHAR, TEK40HCHAR,
X+ TEK40VTIC, TEK40HTIC, VTTEK40init, VTTEK40reset,
X+ TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
X+ VTTEK40linetype, VTTEK40put_text, null_text_angle,
X+ null_justify_text, line_and_point, do_arrow}
X+ #endif
X+
X #ifdef X11
X ,{"x11", "X11 Window System",
X X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR,
X***************
X*** 1014,1020
X {
X char *term_name = NULL;
X int t;
X- #ifdef SUN /* turbo C doesn't like unused variables */
X char *term = NULL; /* from TERM environment var */
X #endif
X char *gnuterm = NULL;
X
X--- 1021,1026 -----
X {
X char *term_name = NULL;
X int t;
X char *term = NULL; /* from TERM environment var */
X #ifdef X11
X char *display = NULL;
X***************
X*** 1016,1021
X int t;
X #ifdef SUN /* turbo C doesn't like unused variables */
X char *term = NULL; /* from TERM environment var */
X #endif
X char *gnuterm = NULL;
X
X
X--- 1022,1029 -----
X char *term_name = NULL;
X int t;
X char *term = NULL; /* from TERM environment var */
X+ #ifdef X11
X+ char *display = NULL;
X #endif
X char *gnuterm = NULL;
X
X***************
X*** 1026,1031
X else {
X #ifdef __TURBOC__
X term_name = turboc_init();
X #endif
X
X #ifdef vms
X
X--- 1034,1040 -----
X else {
X #ifdef __TURBOC__
X term_name = turboc_init();
X+ term = (char *)NULL; /* shut up turbo C */
X #endif
X
X #ifdef vms
X***************
X*** 1039,1044
X term_name = "sun";
X #endif /* sun */
X
X #ifdef UNIXPC
X if (iswind() == 0) {
X term_name = "unixpc";
X
X--- 1048,1063 -----
X term_name = "sun";
X #endif /* sun */
X
X+ #ifdef X11
X+ term = getenv("TERM"); /* try $TERM */
X+ if (term_name == (char *)NULL
X+ && term != (char *)NULL && strcmp(term, "xterm") == 0)
X+ term_name = "x11";
X+ display = getenv("DISPLAY");
X+ if (term_name == (char *)NULL && display != (char *)NULL)
X+ term_name = "x11";
X+ #endif /* x11 */
X+
X #ifdef UNIXPC
X if (iswind() == 0) {
X term_name = "unixpc";
X***************
X*** 1044,1049
X term_name = "unixpc";
X }
X #endif /* unixpc */
X }
X
X /* We have a name, try to set term type */
X
X--- 1063,1073 -----
X term_name = "unixpc";
X }
X #endif /* unixpc */
X+
X+ #ifdef CGI
X+ if (getenv("CGIDISP") || getenv("CGIPRNT"))
X+ term_name = "cgi";
X+ #endif /*CGI */
X }
X
X /* We have a name, try to set term type */
X***************
X*** 1103,1109
X }
X #endif /* __TURBOC__ */
X
X- #ifdef vms
X /*
X * Determine if we have a regis terminal.
X * and do a SET TERM/NOWRAP
X
X--- 1127,1132 -----
X }
X #endif /* __TURBOC__ */
X
X /*
X This is always defined so we don't have to have command.c know if it
X is there or not.
X***************
X*** 1105,1178
X
X #ifdef vms
X /*
X- * Determine if we have a regis terminal.
X- * and do a SET TERM/NOWRAP
X- */
X- char *
X- vms_init()
X- {
X- char *term_str="tt:";
X- typedef struct
X- {
X- short cond_value;
X- short count;
X- int info;
X- } status_block;
X- typedef struct
X- {
X- short buffer_len;
X- short item_code;
X- int buffer_addr;
X- int ret_len_addr;
X- } item_desc;
X- struct {
X- item_desc dev_type;
X- int terminator;
X- } dvi_list;
X- int status, dev_type, zero=0;
X- char buffer[255];
X- $DESCRIPTOR(term_desc, term_str);
X-
X- /* This does the equivalent of a SET TERM/NOWRAP command */
X- int i;
X- sys$assign(&sysoutput_desc,&chan,0,0);
X- sys$qiow(0,chan,IO$_SENSEMODE,0,0,0,old_char_buf,12,0,0,0,0);
X- for (i = 0 ; i < 3 ; ++i) new_char_buf[i] = old_char_buf[i];
X- new_char_buf[1] &= ~(TT$M_WRAP);
X- sys$qiow(0,chan,IO$_SETMODE,0,0,0,new_char_buf,12,0,0,0,0);
X- sys$dassgn(chan);
X-
X- /* set up dvi item list */
X- dvi_list.dev_type.buffer_len = 4;
X- dvi_list.dev_type.item_code = DVI$_TT_REGIS;
X- dvi_list.dev_type.buffer_addr = &dev_type;
X- dvi_list.dev_type.ret_len_addr = 0;
X-
X- dvi_list.terminator = 0;
X-
X- /* See what type of terminal we have. */
X- status = SYS$GETDVIW (0, 0, &term_desc, &dvi_list, 0, 0, 0, 0);
X- if ((status & 1) && dev_type) {
X- return("regis");
X- }
X- return(NULL);
X- }
X-
X-
X-
X- /*
X- * vms_reset
X- */
X- vms_reset()
X- {
X- /* set wrap back to original state */
X- sys$assign(&sysoutput_desc,&chan,0,0);
X- sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
X- sys$dassgn(chan);
X- }
X- #endif /* VMS */
X-
X- /*
X This is always defined so we don't have to have command.c know if it
X is there or not.
X */
X
X--- 1128,1133 -----
X #endif /* __TURBOC__ */
X
X /*
X This is always defined so we don't have to have command.c know if it
X is there or not.
X */
X***************
X*** 1237,1242
X register struct termentry *t = &term_tbl[term];
X char *str;
X int x,y, xl,yl, i;
X char label[MAX_ID_LEN];
X
X if (!term_init) {
X
X--- 1192,1198 -----
X register struct termentry *t = &term_tbl[term];
X char *str;
X int x,y, xl,yl, i;
X+ unsigned int xmax, ymax;
X char label[MAX_ID_LEN];
X
X if (!term_init) {
X***************
X*** 1244,1249
X term_init = TRUE;
X }
X screen_ok = FALSE;
X (*t->graphics)();
X /* border linetype */
X (*t->linetype)(-2);
X
X--- 1200,1208 -----
X term_init = TRUE;
X }
X screen_ok = FALSE;
X+ (void)(*t->scale)(xsize, ysize);
X+ xmax = (unsigned int)(t->xmax * xsize);
X+ ymax = (unsigned int)(t->ymax * ysize);
X (*t->graphics)();
X /* border linetype */
X (*t->linetype)(-2);
X***************
X*** 1248,1256
X /* border linetype */
X (*t->linetype)(-2);
X (*t->move)(0,0);
X! (*t->vector)(t->xmax-1,0);
X! (*t->vector)(t->xmax-1,t->ymax-1);
X! (*t->vector)(0,t->ymax-1);
X (*t->vector)(0,0);
X (void) (*t->justify_text)(LEFT);
X (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
X
X--- 1207,1215 -----
X /* border linetype */
X (*t->linetype)(-2);
X (*t->move)(0,0);
X! (*t->vector)(xmax-1,0);
X! (*t->vector)(xmax-1,ymax-1);
X! (*t->vector)(0,ymax-1);
X (*t->vector)(0,0);
X (void) (*t->justify_text)(LEFT);
X (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
X***************
X*** 1253,1259
X (*t->vector)(0,t->ymax-1);
X (*t->vector)(0,0);
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
X /* axis linetype */
X (*t->linetype)(-1);
X (*t->move)(t->xmax/2,0);
X
X--- 1212,1218 -----
X (*t->vector)(0,ymax-1);
X (*t->vector)(0,0);
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
X /* axis linetype */
X (*t->linetype)(-1);
X (*t->move)(xmax/2,0);
X***************
X*** 1256,1265
X (*t->put_text)(t->h_char*5,t->ymax-t->v_char*3,"Terminal Test");
X /* axis linetype */
X (*t->linetype)(-1);
X! (*t->move)(t->xmax/2,0);
X! (*t->vector)(t->xmax/2,t->ymax-1);
X! (*t->move)(0,t->ymax/2);
X! (*t->vector)(t->xmax-1,t->ymax/2);
X /* test width and height of characters */
X (*t->linetype)(-2);
X (*t->move)( t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
X
X--- 1215,1224 -----
X (*t->put_text)(t->h_char*5,ymax-t->v_char*3,"Terminal Test");
X /* axis linetype */
X (*t->linetype)(-1);
X! (*t->move)(xmax/2,0);
X! (*t->vector)(xmax/2,ymax-1);
X! (*t->move)(0,ymax/2);
X! (*t->vector)(xmax-1,ymax/2);
X /* test width and height of characters */
X (*t->linetype)(-2);
X (*t->move)( xmax/2-t->h_char*10,ymax/2+t->v_char/2);
X***************
X*** 1262,1273
X (*t->vector)(t->xmax-1,t->ymax/2);
X /* test width and height of characters */
X (*t->linetype)(-2);
X! (*t->move)( t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
X! (*t->vector)(t->xmax/2+t->h_char*10,t->ymax/2+t->v_char/2);
X! (*t->vector)(t->xmax/2+t->h_char*10,t->ymax/2-t->v_char/2);
X! (*t->vector)(t->xmax/2-t->h_char*10,t->ymax/2-t->v_char/2);
X! (*t->vector)(t->xmax/2-t->h_char*10,t->ymax/2+t->v_char/2);
X! (*t->put_text)(t->xmax/2-t->h_char*10,t->ymax/2,
X "12345678901234567890");
X /* test justification */
X (void) (*t->justify_text)(LEFT);
X
X--- 1221,1232 -----
X (*t->vector)(xmax-1,ymax/2);
X /* test width and height of characters */
X (*t->linetype)(-2);
X! (*t->move)( xmax/2-t->h_char*10,ymax/2+t->v_char/2);
X! (*t->vector)(xmax/2+t->h_char*10,ymax/2+t->v_char/2);
X! (*t->vector)(xmax/2+t->h_char*10,ymax/2-t->v_char/2);
X! (*t->vector)(xmax/2-t->h_char*10,ymax/2-t->v_char/2);
X! (*t->vector)(xmax/2-t->h_char*10,ymax/2+t->v_char/2);
X! (*t->put_text)(xmax/2-t->h_char*10,ymax/2,
X "12345678901234567890");
X /* test justification */
X (void) (*t->justify_text)(LEFT);
X***************
X*** 1271,1277
X "12345678901234567890");
X /* test justification */
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(t->xmax/2,t->ymax/2+t->v_char*6,"left justified");
X str = "centre+d text";
X if ((*t->justify_text)(CENTRE))
X (*t->put_text)(t->xmax/2,
X
X--- 1230,1236 -----
X "12345678901234567890");
X /* test justification */
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(xmax/2,ymax/2+t->v_char*6,"left justified");
X str = "centre+d text";
X if ((*t->justify_text)(CENTRE))
X (*t->put_text)(xmax/2,
X***************
X*** 1274,1281
X (*t->put_text)(t->xmax/2,t->ymax/2+t->v_char*6,"left justified");
X str = "centre+d text";
X if ((*t->justify_text)(CENTRE))
X! (*t->put_text)(t->xmax/2,
X! t->ymax/2+t->v_char*5,str);
X else
X (*t->put_text)(t->xmax/2-strlen(str)*t->h_char/2,
X t->ymax/2+t->v_char*5,str);
X
X--- 1233,1240 -----
X (*t->put_text)(xmax/2,ymax/2+t->v_char*6,"left justified");
X str = "centre+d text";
X if ((*t->justify_text)(CENTRE))
X! (*t->put_text)(xmax/2,
X! ymax/2+t->v_char*5,str);
X else
X (*t->put_text)(xmax/2-strlen(str)*t->h_char/2,
X ymax/2+t->v_char*5,str);
X***************
X*** 1277,1284
X (*t->put_text)(t->xmax/2,
X t->ymax/2+t->v_char*5,str);
X else
X! (*t->put_text)(t->xmax/2-strlen(str)*t->h_char/2,
X! t->ymax/2+t->v_char*5,str);
X str = "right justified";
X if ((*t->justify_text)(RIGHT))
X (*t->put_text)(t->xmax/2,
X
X--- 1236,1243 -----
X (*t->put_text)(xmax/2,
X ymax/2+t->v_char*5,str);
X else
X! (*t->put_text)(xmax/2-strlen(str)*t->h_char/2,
X! ymax/2+t->v_char*5,str);
X str = "right justified";
X if ((*t->justify_text)(RIGHT))
X (*t->put_text)(xmax/2,
X***************
X*** 1281,1288
X t->ymax/2+t->v_char*5,str);
X str = "right justified";
X if ((*t->justify_text)(RIGHT))
X! (*t->put_text)(t->xmax/2,
X! t->ymax/2+t->v_char*4,str);
X else
X (*t->put_text)(t->xmax/2-strlen(str)*t->h_char,
X t->ymax/2+t->v_char*4,str);
X
X--- 1240,1247 -----
X ymax/2+t->v_char*5,str);
X str = "right justified";
X if ((*t->justify_text)(RIGHT))
X! (*t->put_text)(xmax/2,
X! ymax/2+t->v_char*4,str);
X else
X (*t->put_text)(xmax/2-strlen(str)*t->h_char,
X ymax/2+t->v_char*4,str);
X***************
X*** 1284,1291
X (*t->put_text)(t->xmax/2,
X t->ymax/2+t->v_char*4,str);
X else
X! (*t->put_text)(t->xmax/2-strlen(str)*t->h_char,
X! t->ymax/2+t->v_char*4,str);
X /* test text angle */
X str = "rotated ce+ntred text";
X if ((*t->text_angle)(1)) {
X
X--- 1243,1250 -----
X (*t->put_text)(xmax/2,
X ymax/2+t->v_char*4,str);
X else
X! (*t->put_text)(xmax/2-strlen(str)*t->h_char,
X! ymax/2+t->v_char*4,str);
X /* test text angle */
X str = "rotated ce+ntred text";
X if ((*t->text_angle)(1)) {
X***************
X*** 1291,1297
X if ((*t->text_angle)(1)) {
X if ((*t->justify_text)(CENTRE))
X (*t->put_text)(t->v_char,
X! t->ymax/2,str);
X else
X (*t->put_text)(t->v_char,
X t->ymax/2-strlen(str)*t->h_char/2,str);
X
X--- 1250,1256 -----
X if ((*t->text_angle)(1)) {
X if ((*t->justify_text)(CENTRE))
X (*t->put_text)(t->v_char,
X! ymax/2,str);
X else
X (*t->put_text)(t->v_char,
X ymax/2-strlen(str)*t->h_char/2,str);
X***************
X*** 1294,1300
X t->ymax/2,str);
X else
X (*t->put_text)(t->v_char,
X! t->ymax/2-strlen(str)*t->h_char/2,str);
X }
X else {
X (void) (*t->justify_text)(LEFT);
X
X--- 1253,1259 -----
X ymax/2,str);
X else
X (*t->put_text)(t->v_char,
X! ymax/2-strlen(str)*t->h_char/2,str);
X }
X else {
X (void) (*t->justify_text)(LEFT);
X***************
X*** 1298,1304
X }
X else {
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(t->h_char*2,t->ymax/2-t->v_char*2,"Can't rotate text");
X }
X (void) (*t->justify_text)(LEFT);
X (void) (*t->text_angle)(0);
X
X--- 1257,1263 -----
X }
X else {
X (void) (*t->justify_text)(LEFT);
X! (*t->put_text)(t->h_char*2,ymax/2-t->v_char*2,"Can't rotate text");
X }
X (void) (*t->justify_text)(LEFT);
X (void) (*t->text_angle)(0);
X***************
X*** 1303,1313
X (void) (*t->justify_text)(LEFT);
X (void) (*t->text_angle)(0);
X /* test tic size */
X! (*t->move)(t->xmax/2+t->h_tic*2,0);
X! (*t->vector)(t->xmax/2+t->h_tic*2,t->v_tic);
X! (*t->move)(t->xmax/2,t->v_tic*2);
X! (*t->vector)(t->xmax/2+t->h_tic,t->v_tic*2);
X! (*t->put_text)(t->xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
X /* test line and point types */
X x = t->xmax - t->h_char*4 - t->h_tic*4;
X y = t->ymax - t->v_char;
X
X--- 1262,1272 -----
X (void) (*t->justify_text)(LEFT);
X (void) (*t->text_angle)(0);
X /* test tic size */
X! (*t->move)(xmax/2+t->h_tic*2,0);
X! (*t->vector)(xmax/2+t->h_tic*2,t->v_tic);
X! (*t->move)(xmax/2,t->v_tic*2);
X! (*t->vector)(xmax/2+t->h_tic,t->v_tic*2);
X! (*t->put_text)(xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
X /* test line and point types */
X x = xmax - t->h_char*4 - t->h_tic*4;
X y = ymax - t->v_char;
X***************
X*** 1309,1316
X (*t->vector)(t->xmax/2+t->h_tic,t->v_tic*2);
X (*t->put_text)(t->xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
X /* test line and point types */
X! x = t->xmax - t->h_char*4 - t->h_tic*4;
X! y = t->ymax - t->v_char;
X for ( i = -2; y > t->v_char; i++ ) {
X (*t->linetype)(i);
X (void) sprintf(label,"%d",i);
X
X--- 1268,1275 -----
X (*t->vector)(xmax/2+t->h_tic,t->v_tic*2);
X (*t->put_text)(xmax/2+t->h_tic*2,t->v_tic*2+t->v_char/2,"test tics");
X /* test line and point types */
X! x = xmax - t->h_char*4 - t->h_tic*4;
X! y = ymax - t->v_char;
X for ( i = -2; y > t->v_char; i++ ) {
X (*t->linetype)(i);
X (void) sprintf(label,"%d",i);
X***************
X*** 1326,1333
X }
X /* test some arrows */
X (*t->linetype)(0);
X! x = t->xmax/4;
X! y = t->ymax/4;
X xl = t->h_tic*5;
X yl = t->v_tic*5;
X (*t->arrow)(x,y,x+xl,y);
X
X--- 1285,1292 -----
X }
X /* test some arrows */
X (*t->linetype)(0);
X! x = xmax/4;
X! y = ymax/4;
X xl = t->h_tic*5;
X yl = t->v_tic*5;
X (*t->arrow)(x,y,x+xl,y);
X***************
X*** 1341,1343
X /* and back into text mode */
X (*t->text)();
X }
X
X--- 1300,1519 -----
X /* and back into text mode */
X (*t->text)();
X }
X+
X+
X+ #ifdef PC
X+ /* output for some terminal types must be binary to stop non Unix computers
X+ changing \n to \r\n.
X+ If the output is not STDOUT, the following code reopens outfile
X+ with binary mode. */
X+ void
X+ reopen_binary()
X+ {
X+ char filename[MAX_ID_LEN+1];
X+
X+ if (strcmp(outstr,"STDOUT")) {
X+ (void) fclose(outfile);
X+ (void) strcpy(filename,outstr+1); /* remove quotes */
X+ filename[strlen(filename)-1] = '\0';
X+ if ( (outfile = fopen(filename,"wb")) == (FILE *)NULL ) {
X+ if ( (outfile = fopen(filename,"w")) == (FILE *)NULL ) {
X+ os_error("cannot reopen file with binary type; output unknown",
X+ NO_CARET);
X+ }
X+ else {
X+ os_error("cannot reopen file with binary type; output reset to ascii",
X+ NO_CARET);
X+ }
X+ }
X+ }
X+ }
X+ #endif
X+
X+ #ifdef VMS
X+ /* these are needed to modify terminal characteristics */
X+ #include <descrip.h>
X+ #include <iodef.h>
X+ #include <ttdef.h>
X+ #include <tt2def.h>
X+ #include <dcdef.h>
X+ #include <ssdef.h>
X+ #include <stat.h>
X+ #include <fab.h>
X+ static unsigned short chan;
X+ static int old_char_buf[3], cur_char_buf[3];
X+ $DESCRIPTOR(sysoutput_desc,"SYS$OUTPUT");
X+
X+ char *vms_init()
X+ /*
X+ * Determine if we have a regis terminal
X+ * and save terminal characteristics
X+ */
X+ {
X+ /* Save terminal characteristics in old_char_buf and
X+ initialise cur_char_buf to current settings. */
X+ int i;
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ sys$qiow(0,chan,IO$_SENSEMODE,0,0,0,old_char_buf,12,0,0,0,0);
X+ for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
X+ sys$dassgn(chan);
X+
X+ /* Test if terminal is regis */
X+ if ((cur_char_buf[2] & TT2$M_REGIS) == TT2$M_REGIS) return("regis");
X+ return(NULL);
X+ }
X+
X+ void
X+ vms_reset()
X+ /* set terminal to original state */
X+ {
X+ int i;
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
X+ for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
X+ sys$dassgn(chan);
X+ }
X+
X+ void
X+ term_mode_tek()
X+ /* set terminal mode to tektronix */
X+ {
X+ long status;
X+ if (outfile != stdout) return; /* don't modify if not stdout */
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ cur_char_buf[0] = 0x004A0000 | DC$_TERM | (TT$_TEK401X<<8);
X+ cur_char_buf[1] = (cur_char_buf[1] & 0x00FFFFFF) | 0x18000000;
X+
X+ cur_char_buf[1] &= ~TT$M_CRFILL;
X+ cur_char_buf[1] &= ~TT$M_ESCAPE;
X+ cur_char_buf[1] &= ~TT$M_HALFDUP;
X+ cur_char_buf[1] &= ~TT$M_LFFILL;
X+ cur_char_buf[1] &= ~TT$M_MECHFORM;
X+ cur_char_buf[1] &= ~TT$M_NOBRDCST;
X+ cur_char_buf[1] &= ~TT$M_NOECHO;
X+ cur_char_buf[1] &= ~TT$M_READSYNC;
X+ cur_char_buf[1] &= ~TT$M_REMOTE;
X+ cur_char_buf[1] |= TT$M_LOWER;
X+ cur_char_buf[1] |= TT$M_TTSYNC;
X+ cur_char_buf[1] |= TT$M_WRAP;
X+ cur_char_buf[1] &= ~TT$M_EIGHTBIT;
X+ cur_char_buf[1] &= ~TT$M_MECHTAB;
X+ cur_char_buf[1] &= ~TT$M_SCOPE;
X+ cur_char_buf[1] |= TT$M_HOSTSYNC;
X+
X+ cur_char_buf[2] &= ~TT2$M_APP_KEYPAD;
X+ cur_char_buf[2] &= ~TT2$M_BLOCK;
X+ cur_char_buf[2] &= ~TT2$M_DECCRT3;
X+ cur_char_buf[2] &= ~TT2$M_LOCALECHO;
X+ cur_char_buf[2] &= ~TT2$M_PASTHRU;
X+ cur_char_buf[2] &= ~TT2$M_REGIS;
X+ cur_char_buf[2] &= ~TT2$M_SIXEL;
X+ cur_char_buf[2] |= TT2$M_BRDCSTMBX;
X+ cur_char_buf[2] |= TT2$M_EDITING;
X+ cur_char_buf[2] |= TT2$M_INSERT;
X+ cur_char_buf[2] |= TT2$M_PRINTER;
X+ cur_char_buf[2] &= ~TT2$M_ANSICRT;
X+ cur_char_buf[2] &= ~TT2$M_AVO;
X+ cur_char_buf[2] &= ~TT2$M_DECCRT;
X+ cur_char_buf[2] &= ~TT2$M_DECCRT2;
X+ cur_char_buf[2] &= ~TT2$M_DRCS;
X+ cur_char_buf[2] &= ~TT2$M_EDIT;
X+ cur_char_buf[2] |= TT2$M_FALLBACK;
X+
X+ status = sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
X+ if (status == SS$_BADPARAM) {
X+ /* terminal fallback utility not installed on system */
X+ cur_char_buf[2] &= ~TT2$M_FALLBACK;
X+ sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
X+ }
X+ else {
X+ if (status != SS$_NORMAL)
X+ lib$signal(status,0,0);
X+ }
X+ sys$dassgn(chan);
X+ }
X+
X+ void
X+ term_mode_native()
X+ /* set terminal mode back to native */
X+ {
X+ int i;
X+ if (outfile != stdout) return; /* don't modify if not stdout */
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ sys$qiow(0,chan,IO$_SETMODE,0,0,0,old_char_buf,12,0,0,0,0);
X+ for (i = 0 ; i < 3 ; ++i) cur_char_buf[i] = old_char_buf[i];
X+ sys$dassgn(chan);
X+ }
X+
X+ void
X+ term_pasthru()
X+ /* set terminal mode pasthru */
X+ {
X+ if (outfile != stdout) return; /* don't modify if not stdout */
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ cur_char_buf[2] |= TT2$M_PASTHRU;
X+ sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
X+ sys$dassgn(chan);
X+ }
X+
X+ void
X+ term_nopasthru()
X+ /* set terminal mode nopasthru */
X+ {
X+ if (outfile != stdout) return; /* don't modify if not stdout */
X+ sys$assign(&sysoutput_desc,&chan,0,0);
X+ cur_char_buf[2] &= ~TT2$M_PASTHRU;
X+ sys$qiow(0,chan,IO$_SETMODE,0,0,0,cur_char_buf,12,0,0,0,0);
X+ sys$dassgn(chan);
X+ }
X+
X+ void
X+ reopen_binary()
X+ /* close the file outfile outfile and reopen it with binary type
X+ if not already done or outfile == stdout */
X+ {
X+ stat_t stat_buf;
X+ char filename[MAX_ID_LEN+1];
X+ if (outfile != stdout) { /* don't modify if not stdout */
X+ if (!fstat(fileno(outfile),&stat_buf)) {
X+ if (stat_buf.st_fab_rfm != FAB$C_FIX) {
X+ /* modify only if not already done */
X+ (void) fclose(outfile);
X+ (void) strcpy(filename,outstr+1); /* remove quotes */
X+ filename[strlen(filename)-1] = '\0';
X+ (void) delete(filename);
X+ if ((outfile = fopen(filename,"wb","rfm=fix","bls=512","mrs=512"))
X+ == (FILE *)NULL ) {
X+ if ( (outfile = fopen(filename,"w")) == (FILE *)NULL ) {
X+ os_error("cannot reopen file with binary type; output unknown",
X+ NO_CARET);
X+ }
X+ else {
X+ os_error("cannot reopen file with binary type; output reset to ascii",
X+ NO_CARET);
X+ }
X+ }
X+ }
X+ }
X+ else{
X+ os_error("cannot reopen file with binary type; output remains ascii",
X+ NO_CARET);
X+ }
X+ }
X+ }
X+
X+ void
X+ fflush_binary()
X+ {
X+ typedef short int INT16; /* signed 16-bit integers */
X+ register INT16 k; /* loop index */
X+ if (outfile != stdout) {
X+ /* Stupid VMS fflush() raises error and loses last data block
X+ unless it is full for a fixed-length record binary file.
X+ Pad it here with NULL characters. */
X+ for (k = (INT16)((*outfile)->_cnt); k > 0; --k)
X+ putc('\0',outfile);
X+ fflush(outfile);
X+ }
X+ }
X+ #endif
Xdiff -cr ./term.h ../gnuplot2.02/term.h
X*** ./term.h Tue Sep 18 14:59:21 1990
X--- ../gnuplot2.02/term.h Tue Dec 11 16:41:23 1990
X***************
X*** 39,45
X
X #define AED /* AED 512 and AED 767 */
X #define BITGRAPH /* BBN BitGraph */
X! #define HPLJET /* HP Laserjet */
X /* #define IRIS4D /* IRIS4D series computer */
X #define KERMIT /* MS-Kermit Tektronix 4010 emulator */
X /* #define FIG /* Fig graphics language (requires object.h from TransFig) */
X
X--- 39,45 -----
X
X #define AED /* AED 512 and AED 767 */
X #define BITGRAPH /* BBN BitGraph */
X! /* #define CGI /* SCO CGI */
X /* #define IRIS4D /* IRIS4D series computer */
X #define KERMIT /* MS-Kermit Tektronix 4010 emulator */
X /* #define FIG /* Fig graphics language (requires object.h from TransFig) */
X***************
X*** 50,55
X #define TEK /* Tektronix 4010, and probably others */
X /* #define UNIXPC /* unixpc (ATT 3b1 or ATT 7300) */
X /* #define UNIXPLOT /* unixplot */
X /* #define X11 /* X11R4 window system */
X
X #endif
X
X--- 50,56 -----
X #define TEK /* Tektronix 4010, and probably others */
X /* #define UNIXPC /* unixpc (ATT 3b1 or ATT 7300) */
X /* #define UNIXPLOT /* unixplot */
X+ #define VTTEK /* VT-like tek40xx emulators */
X /* #define X11 /* X11R4 window system */
X
X #endif
X***************
X*** 64,69
X #define HP26 /* HP2623A and maybe others */
X #define HP75 /* HP7580, and probably other HPs */
X #define HPGL /* HP7475, HP7220 plotters, and (hopefully) lots of others */
X #define IMAGEN /* Imagen laser printers (300dpi) (requires -Iterm also) */
X #define LATEX /* LATEX picture environment */
X #define NEC /* NEC CP6 pinwriter printer */
X
X--- 65,71 -----
X #define HP26 /* HP2623A and maybe others */
X #define HP75 /* HP7580, and probably other HPs */
X #define HPGL /* HP7475, HP7220 plotters, and (hopefully) lots of others */
X+ #define HPLJII /* HP LaserJet II */
X #define IMAGEN /* Imagen laser printers (300dpi) (requires -Iterm also) */
X #define LATEX /* LATEX picture environment */
X #define NEC /* NEC CP6 pinwriter printer */
X***************
X*** 68,74
X #define LATEX /* LATEX picture environment */
X #define NEC /* NEC CP6 pinwriter printer */
X #define POSTSCRIPT /* Postscript */
X! #define PROPRINTER /* IBM Proprinter */
X #define QMS /* QMS/QUIC laserprinter (Talaris 1200 and others) */
X #define STARC /* Star Color Printer */
X #define TANDY60 /* Tandy DMP-130 series 60-dot per inch graphics */
X
X--- 70,76 -----
X #define LATEX /* LATEX picture environment */
X #define NEC /* NEC CP6 pinwriter printer */
X #define POSTSCRIPT /* Postscript */
X! #define PRESCRIBE /* Kyocera Laser printer */
X #define QMS /* QMS/QUIC laserprinter (Talaris 1200 and others) */
X #define STARC /* Star Color Printer */
X #define TANDY60 /* Tandy DMP-130 series 60-dot per inch graphics */
XCommon subdirectories: ./translate and ../gnuplot2.02/translate
Xdiff -cr ./util.c ../gnuplot2.02/util.c
X*** ./util.c Tue Mar 27 09:02:13 1990
X--- ../gnuplot2.02/util.c Tue Dec 4 12:09:17 1990
X***************
X*** 324,329
X }
X int_error("unknown type in real()",NO_CARET);
X /* NOTREACHED */
X }
X
X
X
X--- 324,330 -----
X }
X int_error("unknown type in real()",NO_CARET);
X /* NOTREACHED */
X+ return((double)0.0);
X }
X
X
X***************
X*** 339,344
X }
X int_error("unknown type in real()",NO_CARET);
X /* NOTREACHED */
X }
X
X
X
X--- 340,346 -----
X }
X int_error("unknown type in real()",NO_CARET);
X /* NOTREACHED */
X+ return((double)0.0);
X }
X
X
X***************
X*** 360,365
X }
X int_error("unknown type in magnitude()",NO_CARET);
X /* NOTREACHED */
X }
X
X
X
X--- 362,368 -----
X }
X int_error("unknown type in magnitude()",NO_CARET);
X /* NOTREACHED */
X+ return((double)0.0);
X }
X
X
X***************
X*** 385,390
X }
X int_error("unknown type in angle()",NO_CARET);
X /* NOTREACHED */
X }
X
X
X
X--- 388,394 -----
X }
X int_error("unknown type in angle()",NO_CARET);
X /* NOTREACHED */
X+ return((double)0.0);
X }
X
X
Xdiff -cr ./version.c ../gnuplot2.02/version.c
X*** ./version.c Tue Sep 18 14:47:22 1990
X--- ../gnuplot2.02/version.c Wed Dec 19 09:24:06 1990
X***************
X*** 1,6
X! char version[] = "2.0";
X! char patchlevel[] = "1";
X! char date[] = "Tue Sep 18 14:46:32 EST 1990";
X
X /* override in Makefile */
X #ifndef CONTACT
X
X--- 1,6 -----
X! char version[] = "2.0 ";
X! char patchlevel[] = "2";
X! char date[] = "Wed Dec 19 09:23:59 EST 1990";
X
X /* override in Makefile */
X #ifndef CONTACT
Xdiff -cr ./demo/param.demo ../gnuplot2.02/demo/param.demo
X*** ./demo/param.demo Fri Nov 23 17:50:22 1990
X--- ../gnuplot2.02/demo/param.demo Fri Nov 23 16:52:51 1990
X***************
X*** 0
X
X--- 1,46 -----
X+ #
X+ # Show some of the new parametric capabilities.
X+ #
X+ set parametric
X+ set dummy t
X+ set autoscale
X+ set samples 160
X+ set title ""
X+ plot t,sin(t)/t title "t,sin(t)/t or sin(x)/x"
X+ pause -1 "Hit return"
X+
X+ plot sin(t)/t,t
X+ pause -1 "Hit return"
X+
X+ plot sin(t),cos(t)
X+ pause -1 "Hit return"
X+
X+ set xrange [-3:3]
X+ set yrange [-3:3]
X+ set title "Parametric Conic Sections"
X+ plot -t,t,cos(t),cos(2*t),2*cos(t),sin(t),-cosh(t),sinh(t)
X+ set title ""
X+ pause -1 "Hit return"
X+
X+ set xrange [-5:5]
X+ set yrange [-5:5]
X+ plot tan(t),t,t,tan(t)
X+ pause -1 "Hit return"
X+
X+ set trange [-3:3]
X+ plot t,log(t),-t,log(t),sin(t),t**2
X+ pause -1 "Hit return"
X+
X+ set autoscale x
X+ set yrange [-1.5:1.5]
X+ set trange [0:10*pi]
X+ plot sin(t)/t,cos(t)/t
X+ pause -1 "Hit return"
X+
X+ # undo what we've done above
X+ set noparametric
X+ set samples 160
X+ set autoscale xy
X+ set title ""
X+ set offset 0,0,0,0
X+ set key
Xdiff -cr ./demo/using.dat ../gnuplot2.02/demo/using.dat
X*** ./demo/using.dat Tue Nov 27 09:19:54 1990
X--- ../gnuplot2.02/demo/using.dat Mon Nov 26 02:15:31 1990
X***************
X*** 0
X
X--- 1,168 -----
X+ 891101 00 1.00 14 8.6 94.0
X+ 891101 01 1.04 10 17.5 94.4
X+ 891101 02 1.08 9 9.7 97.1
X+ 891101 03 1.13 9 10.1 94.3
X+ 891101 04 1.17 9 5.7 98.3
X+ 891101 05 1.21 8 8.1 99.7
X+ 891101 06 1.25 7 3.2 99.6
X+ 891101 07 1.29 6 2.5 99.8
X+ 891101 08 1.33 20 2.3 99.4
X+ 891101 09 1.38 30 3.5 96.1
X+ 891101 10 1.42 37 7.7 96.4
X+ 891101 11 1.46 36 9.8 97.4
X+ 891101 12 1.50 30 8.8 97.4
X+ 891101 13 1.54 32 9.1 96.5
X+ 891101 14 1.58 37 6.3 97.0
X+ 891101 15 1.63 35 6.1 97.3
X+ 891101 16 1.67 41 8.6 97.2
X+ 891101 17 1.71 28 7.6 97.3
X+ 891101 18 1.75 16 4.3 97.6
X+ 891101 19 1.79 21 4.2 97.5
X+ 891101 20 1.83 20 5.6 96.9
X+ 891101 21 1.88 24 6.6 96.2
X+ 891101 22 1.92 19 5.8 97.1
X+ 891101 23 1.96 16 7.4 97.1
X+ 891102 00 2.00 13 7.4 96.4
X+ 891102 01 2.04 8 6.6 95.6
X+ 891102 02 2.08 6 7.4 94.1
X+ 891102 03 2.13 6 6.4 95.9
X+ 891102 04 2.17 7 6.4 95.5
X+ 891102 05 2.21 6 6.7 95.5
X+ 891102 06 2.25 6 6.3 94.6
X+ 891102 07 2.29 7 6.5 93.1
X+ 891102 08 2.33 15 6.5 92.8
X+ 891102 09 2.38 22 7.2 93.2
X+ 891102 10 2.42 31 9.1 93.9
X+ 891102 11 2.46 37 11.0 95.6
X+ 891102 12 2.50 40 9.8 98.7
X+ 891102 13 2.54 45 9.5 97.3
X+ 891102 14 2.58 46 11.4 98.5
X+ 891102 15 2.63 46 11.9 99.1
X+ 891102 16 2.67 43 13.0 98.8
X+ 891102 17 2.71 28 14.5 99.1
X+ 891102 18 2.75 25 13.4 99.1
X+ 891102 19 2.79 24 9.9 99.7
X+ 891102 20 2.83 25 8.1 99.5
X+ 891102 21 2.88 24 10.3 99.4
X+ 891102 22 2.92 24 12.0 98.7
X+ 891102 23 2.96 23 18.2 98.7
X+ 891103 00 3.00 20 16.8 99.0
X+ 891103 01 3.04 16 14.8 99.2
X+ 891103 02 3.08 17 15.5 98.0
X+ 891103 03 3.13 17 14.4 99.4
X+ 891103 04 3.17 16 14.4 99.4
X+ 891103 05 3.21 14 11.3 99.4
X+ 891103 06 3.25 13 8.0 99.7
X+ 891103 07 3.29 13 6.1 99.9
X+ 891103 08 3.33 18 6.4 99.8
X+ 891103 09 3.38 31 6.5 98.9
X+ 891103 10 3.42 39 7.5 99.0
X+ 891103 11 3.46 37 9.1 98.8
X+ 891103 12 3.50 33 9.0 99.2
X+ 891103 13 3.54 40 10.4 98.7
X+ 891103 14 3.58 45 12.9 98.3
X+ 891103 15 3.63 45 13.8 98.5
X+ 891103 16 3.67 37 16.1 98.9
X+ 891103 17 3.71 29 16.0 99.3 57
X+ 891103 18 3.75 21 17.4 97.9 55
X+ 891103 19 3.79 14 14.6 97.7
X+ 891103 20 3.83 11 14.3 97.8 57
X+ 891103 21 3.88 15 14.7 96.2 59
X+ 891103 22 3.92 10 12.8 95.1 57
X+ 891103 23 3.96 8 10.2 97.6
X+ 891104 00 4.00 6 7.3 98.6
X+ 891104 01 4.04 4 4.7 99.8
X+ 891104 02 4.08 3 3.4 98.0
X+ 891104 03 4.13 4 2.9 99.6
X+ 891104 04 4.17 4 2.1 99.8
X+ 891104 05 4.21 4 11.7 99.9
X+ 891104 06 4.25 4 4.5 99.9
X+ 891104 07 4.29 4 1.6 88.4
X+ 891104 08 4.33 4 1.3 65.2
X+ 891104 09 4.38 7 1.4 71.4
X+ 891104 10 4.42 9 1.3 70.7
X+ 891104 11 4.46 14 8.1 99.5
X+ 891104 12 4.50 12 4.2 75.3
X+ 891104 13 4.54 18 10.9 95.3
X+ 891104 14 4.58 16 7.1 87.6
X+ 891104 15 4.63 18 3.3 98.9
X+ 891104 16 4.67 15 3.4 99.6
X+ 891104 17 4.71 8 2.4 99.9
X+ 891104 18 4.75 8 2.2 99.8
X+ 891104 19 4.79 11 2.2 99.7
X+ 891104 20 4.83 14 2.3 99.7
X+ 891104 21 4.88 13 2.5 99.7
X+ 891104 22 4.92 10 3.1 99.8
X+ 891104 23 4.96 12 4.5 99.7
X+ 891105 00 5.00 9 4.8 99.7
X+ 891105 01 5.04 8 4.9 99.8
X+ 891105 02 5.08 5 5.7 97.5
X+ 891105 03 5.13 5 5.2 97.6
X+ 891105 04 5.17 4 3.3 85.9
X+ 891105 05 5.21 5 1.2 71.4
X+ 891105 06 5.25 5 1.1 61.8
X+ 891105 07 5.29 5 1.0 71.8
X+ 891105 08 5.33 5 1.0 55.7
X+ 891105 09 5.38 6 1.0 62.2
X+ 891105 10 5.42 7 1.1 61.9
X+ 891105 11 5.46 9 1.4 65.6
X+ 891105 12 5.50 14 2.8 99.6
X+ 891105 13 5.54 16 2.1 94.0
X+ 891105 14 5.58 16 2.2 85.1
X+ 891105 15 5.63 17 2.5 99.7
X+ 891105 16 5.67 19 2.2 90.8
X+ 891105 17 5.71 16 1.5 61.3
X+ 891105 18 5.75 12 1.6 71.8
X+ 891105 19 5.79 16 2.8 98.3
X+ 891105 20 5.83 17 3.3 88.8
X+ 891105 21 5.88 18 1.3 56.5
X+ 891105 22 5.92 20 0.9 38.8
X+ 891105 23 5.96 12 1.1 50.8
X+ 891106 00 6.00 10 2.2 68.4
X+ 891106 01 6.04 8 1.2 54.4
X+ 891106 02 6.08 8 1.6 58.4
X+ 891106 03 6.13 7 1.1 52.2
X+ 891106 04 6.17 6 1.1 56.4
X+ 891106 05 6.21 6 1.2 55.7
X+ 891106 06 6.25 6 1.0 46.2
X+ 891106 07 6.29 7 0.5 7.2
X+ 891106 08 6.33 17 0.7 13.8
X+ 891106 09 6.38 31 1.1 41.5
X+ 891106 10 6.42 37 1.5 52.7
X+ 891106 11 6.46 36 3.1 83.7
X+ 891106 12 6.50 29 2.0 70.0
X+ 891106 13 6.54 28 1.6 71.4
X+ 891106 14 6.58 38 3.1 99.1
X+ 891106 15 6.63 39 5.6 98.2
X+ 891106 16 6.67 43 5.7 98.7 59
X+ 891106 17 6.71 27 5.7 99.4
X+ 891106 18 6.75 15 4.3 99.8
X+ 891106 19 6.79 17 4.1 99.7
X+ 891106 20 6.83 20 2.9 99.3
X+ 891106 21 6.88 16 3.1 96.3
X+ 891106 22 6.92 16 2.8 86.1
X+ 891106 23 6.96 16 3.3 96.5
X+ 891107 00 7.00 12 3.2 98.2
X+ 891107 01 7.04 12 1.6 77.7
X+ 891107 02 7.08 10 3.0 98.7
X+ 891107 03 7.13 8 1.7 71.1
X+ 891107 04 7.17 8 2.8 81.4
X+ 891107 05 7.21 8 5.4 92.4
X+ 891107 06 7.25 9 5.3 87.7
X+ 891107 07 7.29 11 5.6 94.0
X+ 891107 08 7.33 15 2.0 74.0
X+ 891107 09 7.38 25 2.7 84.3
X+ 891107 10 7.42 32 3.0 92.9
X+ 891107 11 7.46 41 5.5 97.4
X+ 891107 12 7.50 39 6.5 97.5
X+ 891107 13 7.54 31 4.4 95.9
X+ 891107 14 7.58 35 7.3 98.6
X+ 891107 15 7.63 37 8.3 96.3
X+ 891107 16 7.67 34 9.2 97.6
X+ 891107 17 7.71 20 7.5 99.3
X+ 891107 18 7.75 14 7.1 99.5
X+ 891107 19 7.79 15 7.1 99.7
X+ 891107 20 7.83 16 4.9 99.7
X+ 891107 21 7.88 18 4.3 99.7
X+ 891107 22 7.92 15 3.1 99.7
X+ 891107 23 7.96 11 3.3 99.6
END_OF_patch2e
if test 50691 -ne `wc -c <patch2e`; then
echo shar: \"patch2e\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of shell archive.
exit 0
exit 0 # Just in case...
--
Kent Landfield INTERNET: kent at sparky.IMD.Sterling.COM
Sterling Software, IMD UUCP: uunet!sparky!kent
Phone: (402) 291-8300 FAX: (402) 291-4362
Please send comp.sources.misc-related mail to kent at uunet.uu.net.
More information about the Comp.sources.misc
mailing list