rjl@monu1.cc.monash.edu.au (Russell Lang) (01/05/91)
Submitted-by: Russell Lang <rjl@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@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@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@uunet.uu.net.