home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3468 < prev    next >
Internet Message Format  |  1991-06-07  |  55KB

  1. From: guido@cwi.nl (Guido van Rossum)
  2. Newsgroups: alt.sources
  3. Subject: STDWIN 0.9.6 patches, part 1/5
  4. Message-ID: <3647@charon.cwi.nl>
  5. Date: 7 Jun 91 13:31:50 GMT
  6.  
  7. These patches produce STDWIN version 0.9.6 from version 0.9.5, which
  8. was posted here in March.  See comp.windows.misc for more info about
  9. STDWIN and ftp availability.
  10.  
  11. --Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
  12.  
  13. INSTRUCTIONS: Parts 1-4 should be piped into "patch -p" with the
  14. current directory just *above* the stdwin source directory.  Part 5 is
  15. a shar file containing a new version of a file that was changed so
  16. much that posting diffs would be a waste of bandwidth.  You should
  17. also junk the following files/directories: Ports/vtrm/DIST,
  18. Ports/vtrm/uxtty.c, Ports/vtrm/vtrm.h (especially the latter matters,
  19. it has moved and changed!!)
  20.  
  21. Prereq: 5
  22. *** 0.9.5/H/patchlevel.h    Thu Feb 28 10:42:39 1991
  23. --- stdwin/H/patchlevel.h    Fri Jun  7 13:36:25 1991
  24. ***************
  25. *** 1 ****
  26. ! #define PATCHLEVEL 5
  27. --- 1 ----
  28. ! #define PATCHLEVEL 6
  29. *** 0.9.5/README    Mon Mar  4 12:31:35 1991
  30. --- stdwin/README    Fri Jun  7 13:55:56 1991
  31. ***************
  32. *** 1,40 ****
  33. ! STDWIN INSTALLATION GUIDE
  34. ! -------------------------
  35.   
  36. ! [last edit: 4 March 1991]
  37.   
  38.   
  39.   What Is STDWIN
  40.   ==============
  41.   
  42. ! STDWIN (STanDard Window INterface) is a simple windowing interface for
  43. ! which multiple implementations exist; currently, programs using STDWIN
  44. ! can be made to run on Unix (using either alphanumeric terminals or the
  45. ! X11 Window System), on the Apple Macintosh (using THINK C or MPW), or
  46. ! on MS-DOS with a dumb display (using Microsoft C).  If you insist, I
  47. ! also have two versions for the Atari ST that need some dusting off.
  48.   
  49. ! For a longer introduction, read the (slightly outdated) file Doc/ABOUT.
  50. ! For more information on the Macintosh version, read Ports/mac/README,
  51. ! for MS-DOS, read Ports/msdos/README.
  52.   
  53. - This is version 0.9.5.  It is still a beta test version.
  54.   
  55.   
  56.   Where To Get STDWIN
  57.   ===================
  58.   
  59. ! I regularly put the latest STDWIN distribution on two anonymous ftp
  60. ! sites.  As the filename shows, to unpack this you need the programs
  61. ! uncompress and tar.
  62.   
  63. !     site        hp4nl.nluug.nl (IP address 192.16.202.2)
  64. !     directory    pub/windows
  65. !     file        stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
  66.   
  67. !     site        wuarchive.wustl.edu (IP address 128.252.135.4)
  68. !     directory    pub
  69. !     file        stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
  70.   
  71.   Don't forget to specify binary file transfer mode!  ("type binary")
  72.   
  73. --- 1,115 ----
  74. ! STDWIN ESSENTIAL INFORMATION
  75. ! ****************************
  76.   
  77. ! [last edit: 7 June 1991]
  78.   
  79.   
  80.   What Is STDWIN
  81.   ==============
  82.   
  83. ! STDWIN (STanDard Window INterface -- similar to STDIO) is a simple
  84. ! windowing interface for C programs, that is implemented on various
  85. ! platforms.  The "flagship" implementations support the Macintosh and
  86. ! X11 windowing environments.  The emphasis is on portability between
  87. ! platforms and a simple interface to the application, not on getting
  88. ! the maximum performance or functionality of one particular platform.
  89.   
  90. ! For a longer introduction, read the (still outdated) file Doc/ABOUT.
  91. ! For more information on the Macintosh version, read Ports/mac/README.
  92. ! For MS-DOS, read Ports/msdos/README.
  93.   
  94.   
  95. + Supported Platforms
  96. + ===================
  97.   
  98. + Currently, programs using STDWIN can be made to run on Unix under X11,
  99. + on alphanumeric terminals (using termcap -- obviously with some loss
  100. + of functionality), on the Apple Macintosh (using THINK C 4.0), or on
  101. + MS-DOS with a dumb display (using Microsoft C).  I am working on
  102. + patches to get the Mac port running under MPW 3.x (which is quite
  103. + different in some respects from MPW 2.x); contact me if you need this
  104. + urgently.  If you insist, I also have two versions for the Atari ST
  105. + (one for MWC and one for TurboC) that need a lot of dusting off, and
  106. + haven't been upgraded to all the lovely new features.
  107. + Copyright
  108. + =========
  109. + Copyright 1988, 1989, 1991 by Stichting Mathematisch Centrum,
  110. + Amsterdam, The Netherlands.
  111. +                         All Rights Reserved
  112. + Permission to use, copy, modify, and distribute this software and its 
  113. + documentation for any purpose and without fee is hereby granted, 
  114. + provided that the above copyright notice appear in all copies and that
  115. + both that copyright notice and this permission notice appear in 
  116. + supporting documentation, and that the names of Stichting Mathematisch
  117. + Centrum or CWI not be used in advertising or publicity pertaining to
  118. + distribution of the software without specific, written prior permission.
  119. + STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
  120. + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  121. + FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
  122. + FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  123. + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  124. + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
  125. + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  126. + This is Version 0.9.6
  127. + =====================
  128. + I believe it is a mature product, except for the lack of complete
  129. + documentation.  When I have finished the manual I'll release version
  130. + 1.0, and post it to an appropriate comp.sources group.
  131.   Where To Get STDWIN
  132.   ===================
  133.   
  134. ! STDWIN 0.9.5 was posted to alt.sources in march 1991.  I am posting
  135. ! diffs to get it up to STDWIN 0.9.6 in june 1991.  The postings should
  136. ! still be available from sites that archive this newsgroup, such as
  137. ! wuarchive.wustl.edu (see below).
  138.   
  139. ! STDWIN is also available from a number of ftp sites.  The * in file
  140. ! names is the version number, e.g., 0.9.6 (the last digit is the patch
  141. ! level).
  142.   
  143. ! Sites        hp4nl.nluug.nl (IP address 192.16.202.2)
  144. !         mcsun.eu.net (IP address 192.16.202.1)
  145. ! For whom    users in the Netherlands and the rest of Europe
  146. ! Directory    pub/windows
  147. !     File    stdwin*.tar.Z
  148. ! Directory    pub/programming/languages
  149. !     Files    python*.tar.Z
  150. !         pythondoc[12].ps.Z
  151. ! Directory    pub/comp/mac/compiler
  152. !     File    Python.hqx
  153. ! Site        wuarchive.wustl.edu (IP address 128.252.135.4)
  154. ! For whom    users in North America
  155. ! Directory    usenet/alt.sources
  156. ! Note        Raw alt.sources archive, see README there.  Grep -i the
  157. !         Index file for "stdwin" or "python".
  158. !         
  159. ! Site        gatekeeper.dec.com (IP address 16.1.0.2)
  160. ! For whom    users in North America
  161. ! Directory    pub/misc
  162. !     File    stdwin*.tar.Z
  163. ! Directory    pub/misc/python
  164. !     Files    python*.tar.Z
  165. !         pythondoc[12].ps.Z
  166. !         Python.hqx.Z
  167. ! I'll also try to put compressed tar images on wuarchive in /pub and on
  168. ! uunet in /tmp.
  169.   
  170.   Don't forget to specify binary file transfer mode!  ("type binary")
  171.   
  172. *** 0.9.5/Appls/dpv/Make.proto    Thu Sep  6 10:33:36 1990
  173. --- stdwin/Appls/dpv/Make.proto    Tue May 14 13:33:03 1991
  174. ***************
  175. *** 15,21 ****
  176.           $(DPV)/dpvparse.c \
  177.           $(DPV)/dpvrestart.c
  178.   
  179. ! SRCLIBS=    -lm
  180.   
  181.   all:        dpv choose
  182.   
  183. --- 15,21 ----
  184.           $(DPV)/dpvparse.c \
  185.           $(DPV)/dpvrestart.c
  186.   
  187. ! SRCLIBS=    -$(LIBMATH)
  188.   
  189.   all:        dpv choose
  190.   
  191. *** 0.9.5/Appls/dpv/dpv.c    Thu Oct 18 18:18:12 1990
  192. --- stdwin/Appls/dpv/dpv.c    Tue May 14 13:33:38 1991
  193. ***************
  194. *** 16,21 ****
  195. --- 16,22 ----
  196.       int firstpage;
  197.       
  198.       winitargs(&argc, &argv);
  199. +     wsetdefscrollbars(1, 1);
  200.       
  201.       if (argc > 0 && *argv != NULL && **argv != EOS) {
  202.           progname= rindex(argv[0], '/');
  203. *** 0.9.5/Appls/dpv/dpvoutput.c    Thu Oct 18 18:20:02 1990
  204. --- stdwin/Appls/dpv/dpvoutput.c    Tue May 14 13:35:03 1991
  205. ***************
  206. *** 211,217 ****
  207.               y += dv;
  208.           }
  209.       drawline(dh / 4, dv / 4);
  210. !     if (index(buf, EOL) == NULL) {
  211.           int c;
  212.           /* HIRO: don't know how to do handle this */
  213.           error(WARNING, "rest of very long wiggly line ignored");
  214. --- 211,217 ----
  215.               y += dv;
  216.           }
  217.       drawline(dh / 4, dv / 4);
  218. !     if (strchr(buf, EOL) == NULL) {
  219.           int c;
  220.           /* HIRO: don't know how to do handle this */
  221.           error(WARNING, "rest of very long wiggly line ignored");
  222. *** 0.9.5/Appls/klok/Make.proto    Thu Sep  6 10:03:25 1990
  223. --- stdwin/Appls/klok/Make.proto    Wed Apr  3 22:45:47 1991
  224. ***************
  225. *** 9,15 ****
  226.           $(KLOK)/klok.c \
  227.           $(KLOK)/bsdsetdate.c
  228.   
  229. ! SRCLIBS=    -lm
  230.   
  231.   all:        klok
  232.   
  233. --- 9,15 ----
  234.           $(KLOK)/klok.c \
  235.           $(KLOK)/bsdsetdate.c
  236.   
  237. ! SRCLIBS=    $(LIBMATH)
  238.   
  239.   all:        klok
  240.   
  241. *** 0.9.5/Appls/klok/bsdsetdate.c    Thu Feb 28 10:42:41 1991
  242. --- stdwin/Appls/klok/bsdsetdate.c    Wed Apr  3 22:46:13 1991
  243. ***************
  244. *** 1,9 ****
  245.   /* Set the date and time -- 4.3 BSD Unix version */
  246.   
  247. - #ifndef sun
  248. - /* This is not needed on SunOS 4.03 (what about higher SunOS'es?). */
  249. - #include <time.h>
  250. - #endif
  251.   #include <sys/time.h>
  252.   
  253.   #define isleap(y) ((y)%4 == 0 && ((y)%100 != 0 || (y)%400 == 0))
  254. --- 1,5 ----
  255. *** 0.9.5/Appls/klok/klok.c    Thu Feb 28 10:42:41 1991
  256. --- stdwin/Appls/klok/klok.c    Tue Apr 23 15:41:29 1991
  257. ***************
  258. *** 290,306 ****
  259.       WINDOW *win;
  260.   {
  261.       int i;
  262. !     
  263.       /* Draw the fixed elements of the clock */
  264.   #ifdef UGLY
  265.       drawborder();
  266.       drawoutline();
  267.   #else
  268. - #ifdef macintosh
  269.       wdrawcircle(centh+1, centv+1, radius+1);
  270. - #else
  271. -     wdrawcircle(centh, centv, radius);
  272. - #endif
  273.       for (i = 0; i < 12; ++i)
  274.           drawmark(i*5);            /* Hour marks */
  275.   #endif
  276. --- 290,302 ----
  277.       WINDOW *win;
  278.   {
  279.       int i;
  280.       /* Draw the fixed elements of the clock */
  281.   #ifdef UGLY
  282.       drawborder();
  283.       drawoutline();
  284.   #else
  285.       wdrawcircle(centh+1, centv+1, radius+1);
  286.       for (i = 0; i < 12; ++i)
  287.           drawmark(i*5);            /* Hour marks */
  288.   #endif
  289. ***************
  290. *** 318,324 ****
  291.       drawampm(ampm(&curtime));
  292.       if (alarm >= 0)
  293.           drawalarm();
  294. !         
  295.       /* Invert if the alarm is going */
  296.       if (excited)
  297.           winvert(0, 0, 10000, 10000);
  298. --- 314,320 ----
  299.       drawampm(ampm(&curtime));
  300.       if (alarm >= 0)
  301.           drawalarm();
  302.       /* Invert if the alarm is going */
  303.       if (excited)
  304.           winvert(0, 0, 10000, 10000);
  305. ***************
  306. *** 643,649 ****
  307.       centh = width/2;
  308.       centv = height/2;
  309.       radius = centv - wlineheight();
  310. !     CLIPMAX(radius, centh);
  311.       newtime(TRUE);
  312.   }
  313.   
  314. --- 639,645 ----
  315.       centh = width/2;
  316.       centv = height/2;
  317.       radius = centv - wlineheight();
  318. !     CLIPMAX(radius, centh-2);
  319.       newtime(TRUE);
  320.   }
  321.   
  322. ***************
  323. *** 761,766 ****
  324. --- 757,763 ----
  325.   {
  326.       /* Initialize */
  327.       winitargs(&argc, &argv);
  328. +     wsetdefscrollbars(0, 0);
  329.       buildmenu(); /* Must be done before setalarm is called */
  330.       
  331.       /* Find out program name */
  332. *** 0.9.5/Appls/test/hello.c    Thu Feb 28 10:34:56 1991
  333. --- stdwin/Appls/test/hello.c    Tue Jun  4 14:31:57 1991
  334. ***************
  335. *** 10,15 ****
  336. --- 10,16 ----
  337.   
  338.   int text_h, text_v;
  339.   
  340. + void
  341.   placetext(win)
  342.       WINDOW *win;
  343.   {
  344. ***************
  345. *** 19,24 ****
  346. --- 20,26 ----
  347.       text_h= (width - wtextwidth(string, -1)) / 2;
  348.   }
  349.   
  350. + void
  351.   drawproc(win, left, top, right, bottom)
  352.       WINDOW *win;
  353.   {
  354. ***************
  355. *** 38,47 ****
  356.           for (;;) {
  357.               EVENT e;
  358.               wgetevent(&e);
  359. !             if (e.type == WE_CLOSE ||
  360. !                     e.type == WE_COMMAND &&
  361. !                     (e.u.command == WC_CLOSE ||
  362. !                      e.u.command == WC_CANCEL))
  363.                   break;
  364.               if (e.type == WE_SIZE)
  365.                   placetext(win);
  366. --- 40,46 ----
  367.           for (;;) {
  368.               EVENT e;
  369.               wgetevent(&e);
  370. !             if (e.type == WE_CLOSE)
  371.                   break;
  372.               if (e.type == WE_SIZE)
  373.                   placetext(win);
  374. *** 0.9.5/Appls/tetris/tetris.c    Thu Feb 28 10:34:51 1991
  375. --- stdwin/Appls/tetris/tetris.c    Thu Mar 28 16:33:18 1991
  376. ***************
  377. *** 727,732 ****
  378. --- 727,733 ----
  379.       time(&t);
  380.       srand((short)t ^ (short)(t>>16));
  381.       winitargs(&argc, &argv);
  382. +     wsetdefscrollbars(0, 0);
  383.       if (wlineheight() == 1) {
  384.           alfa = 1;
  385.           sqwidth = 2;
  386. *** 0.9.5/Conf/mkmf    Wed Aug  8 15:29:50 1990
  387. --- stdwin/Conf/mkmf    Mon May 13 18:58:35 1991
  388. ***************
  389. *** 7,12 ****
  390. --- 7,18 ----
  391.       else an application makefile is created."
  392.   
  393.   TOP=`(cd ..; pwd)`
  394. + case $TOP in
  395. + /tmp_mnt/*)    TOP=`
  396. +             echo "$TOP" | sed 's,^/tmp_mnt/,/hosts/,'
  397. +             `
  398. +         ;;
  399. + esac
  400.   
  401.   PORT=x11
  402.   
  403. ***************
  404. *** 22,27 ****
  405. --- 28,37 ----
  406.       vax|mips)    OS=ultrix;;
  407.       tahoe)        OS=bsd;;
  408.       esac
  409. + elif (hp-pa) 2>/dev/null
  410. + then
  411. +     ARCH=hppa
  412. +     OS=hpux
  413.   fi
  414.   
  415.   while :
  416. ***************
  417. *** 44,54 ****
  418.   '')    echo "Sorry, can't guess architecture, use -a" 1>&2; exit 2;;
  419.   esac
  420.   
  421.   # Create top level in the Build tree if necessary
  422.   
  423.   if test ! -d $TOP/Build
  424.   then
  425. !     echo "Create $TOP/Build? [ny]"
  426.       read reply
  427.       case $reply in
  428.       [yY]*)    mkdir $TOP/Build || exit;;
  429. --- 54,71 ----
  430.   '')    echo "Sorry, can't guess architecture, use -a" 1>&2; exit 2;;
  431.   esac
  432.   
  433. + # Check out how to suppress trailing newline with echo
  434. + case `echo -n` in
  435. + -n)    n=; c='\c';;
  436. + '')    n=-n; c=;;
  437. + esac
  438.   # Create top level in the Build tree if necessary
  439.   
  440.   if test ! -d $TOP/Build
  441.   then
  442. !     echo $n "Create $TOP/Build? [ny] $c"
  443.       read reply
  444.       case $reply in
  445.       [yY]*)    mkdir $TOP/Build || exit;;
  446. ***************
  447. *** 58,64 ****
  448.   
  449.   if test ! -d $TOP/Build/$ARCH
  450.   then
  451. !     echo "Create $TOP/Build/$ARCH? [ny]"
  452.       read reply
  453.       case $reply in
  454.       [yY]*)    mkdir $TOP/Build/$ARCH || exit;;
  455. --- 75,81 ----
  456.   
  457.   if test ! -d $TOP/Build/$ARCH
  458.   then
  459. !     echo $n "Create $TOP/Build/$ARCH? [ny] $c"
  460.       read reply
  461.       case $reply in
  462.       [yY]*)    mkdir $TOP/Build/$ARCH || exit;;
  463. ***************
  464. *** 68,74 ****
  465.   
  466.   if test ! -d $TOP/Build/$ARCH/$PORT
  467.   then
  468. !     echo "Create $TOP/Build/$ARCH/$PORT? [ny]"
  469.       read reply
  470.       case $reply in
  471.       [yY]*)    mkdir $TOP/Build/$ARCH/$PORT || exit;;
  472. --- 85,91 ----
  473.   
  474.   if test ! -d $TOP/Build/$ARCH/$PORT
  475.   then
  476. !     echo $n "Create $TOP/Build/$ARCH/$PORT? [ny] $c"
  477.       read reply
  478.       case $reply in
  479.       [yY]*)    mkdir $TOP/Build/$ARCH/$PORT || exit;;
  480. *** /dev/null    Fri Jun  7 14:31:40 1991
  481. --- stdwin/Conf/proto.arch.hppa    Tue Apr 16 16:58:16 1991
  482. ***************
  483. *** 0 ****
  484. --- 1,29 ----
  485. + #
  486. + # Definitions pertaining to HP Precision architecture
  487. + #
  488. + # Define the name of this architecture here.
  489. + # This is used as a subdirectory name where all the objects for this
  490. + # architecture live: $(TOP)/Build/$(ARCH)
  491. + #
  492. + # Note that there is the silent assumption that there is only one O.S.
  493. + # per architecture.  We'll have to invent composite architecture names,
  494. + # or insert an extra level in the build tree, if this becomes false...
  495. + #
  496. + ARCH=        hppa
  497. + # Define the name of the script used to update the dependencies in
  498. + # the Makefile.
  499. + # Choices are:
  500. + #    slowmkdep -- always works (as far as I know)
  501. + #    fastmkdep -- used cc -M, which isn't always available
  502. + #    makedepend -- Todd Brunhoff's superfast tool (comes with X11)
  503. + #                  (This needs -Dunix because of configure.h)
  504. + # You may also place this definition in the proto.os.* file if you
  505. + # know a method works for every architecture supported by that OS.
  506. + #
  507. + #MKDEP=        $(CONF)/slowmkdep
  508. + #MKDEP=        $(CONF)/fastmkdep
  509. + #MKDEP=        makedepend -Dunix
  510. *** /dev/null    Fri Jun  7 14:31:40 1991
  511. --- stdwin/Conf/proto.arch.ibmr2    Tue Apr 16 16:58:27 1991
  512. ***************
  513. *** 0 ****
  514. --- 1,14 ----
  515. + #
  516. + # Definitions pertaining to IBM R2 architecture
  517. + #
  518. + # Define the name of this architecture here.
  519. + # This is used as a subdirectory name where all the objects for this
  520. + # architecture live: $(TOP)/Build/$(ARCH)
  521. + #
  522. + # Note that there is the silent assumption that there is only one O.S.
  523. + # per architecture.  We'll have to invent composite architecture names,
  524. + # or insert an extra level in the build tree, if this becomes false...
  525. + #
  526. + ARCH=        ibmr2
  527. *** 0.9.5/Conf/proto.conf    Thu Oct 18 15:24:30 1990
  528. --- stdwin/Conf/proto.conf    Tue Apr 16 17:00:45 1991
  529. ***************
  530. *** 17,23 ****
  531.   X11=        $(PORTS)/x11
  532.   GEN=        $(TOP)/Gen
  533.   VTRM=        $(PORTS)/vtrm
  534. ! VTRM_ALL=    $(PORTS)/vtrm/uxtty.c $(PORTS)/vtrm/vtrm.c
  535.   
  536.   # Names for subdirectories of $(PACKS)
  537.   TEXTEDIT=    $(TOP)/Packs/textedit
  538. --- 17,23 ----
  539.   X11=        $(PORTS)/x11
  540.   GEN=        $(TOP)/Gen
  541.   VTRM=        $(PORTS)/vtrm
  542. ! VTRM_ALL=    $(PORTS)/vtrm/vtrm.c
  543.   
  544.   # Names for subdirectories of $(PACKS)
  545.   TEXTEDIT=    $(TOP)/Packs/textedit
  546. *** /dev/null    Fri Jun  7 14:31:40 1991
  547. --- stdwin/Conf/proto.os.aix    Tue Apr 16 16:58:40 1991
  548. ***************
  549. *** 0 ****
  550. --- 1,38 ----
  551. + #
  552. + # Definitions pertaining to operating system AIX (IBM)
  553. + #
  554. + # Define the name of this O.S. here.
  555. + #
  556. + OS=        aix
  557. + # Define the name of the script used to update the dependencies in
  558. + # the Makefile.
  559. + # Choices are:
  560. + #    slowmkdep -- always works (as far as I know)
  561. + #    fastmkdep -- uses cc -M, which isn't always available
  562. + #    makedepend -- Todd Brunhoff's superfast tool (comes with X11)
  563. + #                  (This needs -Dunix because of configure.h)
  564. + # You may also place this definition in the proto.arch.* file if no
  565. + # method works for every architecture supported by this OS.
  566. + #
  567. + MKDEP=        $(CONF)/slowmkdep
  568. + #MKDEP=        $(CONF)/fastmkdep
  569. + #MKDEP=        makedepend -Dunix
  570. + # Define the system libraries to link with programs that use termcap and X11
  571. + # (In some cases these are architecture-dependent)
  572. + #
  573. + LIBTERMCAP=    -lcurses
  574. + LIBX11=        -lX11
  575. + # Similar for the math library
  576. + #
  577. + LIBMATH=    -lm
  578. + # Other OS-specific choices (-I flags, -D flags, compiler options)
  579. + #
  580. + OSINCLS=    
  581. + OSDEFS=        
  582. + OSOPTS=        
  583. *** 0.9.5/Conf/proto.os.amoeba    Fri Oct 12 16:14:54 1990
  584. --- stdwin/Conf/proto.os.amoeba    Tue Apr 16 17:00:48 1991
  585. ***************
  586. *** 7,20 ****
  587.   #
  588.   OS=        amoeba
  589.   
  590. - # Choose ONE of the following definitions of RANLIB.
  591. - # BSD-based systems will need ranlib to be called after a library is
  592. - # changed.
  593. - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
  594. - #
  595. - RANLIB=        ranlib            # for BSD
  596. - #RANLIB=    true            # for SYSV
  597.   # Define the name of the script used to update the dependencies in
  598.   # the Makefile.
  599.   # Choices are:
  600. --- 7,12 ----
  601. *** 0.9.5/Conf/proto.os.bsd    Thu Feb 21 10:52:05 1991
  602. --- stdwin/Conf/proto.os.bsd    Tue Apr 16 17:00:50 1991
  603. ***************
  604. *** 4,12 ****
  605.   #
  606.   
  607.   OS=        bsd
  608. - RANLIB=        ranlib
  609.   
  610.   # MKDEP is defined in proto.arch.*
  611.   
  612.   LIBTERMCAP=    -ltermcap
  613.   LIBX11=        -lX11
  614. --- 4,13 ----
  615.   #
  616.   
  617.   OS=        bsd
  618.   
  619.   # MKDEP is defined in proto.arch.*
  620.   
  621.   LIBTERMCAP=    -ltermcap
  622.   LIBX11=        -lX11
  623. + LIBMATH=    -lm
  624. *** /dev/null    Fri Jun  7 14:31:40 1991
  625. --- stdwin/Conf/proto.os.hpux    Tue Apr 16 17:00:52 1991
  626. ***************
  627. *** 0 ****
  628. --- 1,38 ----
  629. + #
  630. + # Definitions pertaining to operating system HP-UX
  631. + #
  632. + # Define the name of this O.S. here.
  633. + #
  634. + OS=        hpux
  635. + # Define the name of the script used to update the dependencies in
  636. + # the Makefile.
  637. + # Choices are:
  638. + #    slowmkdep -- always works (as far as I know)
  639. + #    fastmkdep -- uses cc -M, which isn't always available
  640. + #    makedepend -- Todd Brunhoff's superfast tool (comes with X11)
  641. + #                  (This needs -Dunix because of configure.h)
  642. + # You may also place this definition in the proto.arch.* file if no
  643. + # method works for every architecture supported by this OS.
  644. + #
  645. + MKDEP=        $(CONF)/slowmkdep
  646. + #MKDEP=        $(CONF)/fastmkdep
  647. + #MKDEP=        makedepend -Dunix
  648. + # Define the system libraries to link with programs that use termcap and X11
  649. + # (In some cases these are architecture-dependent)
  650. + #
  651. + LIBTERMCAP=    -ltermcap
  652. + LIBX11=        -lX11
  653. + # Similar for the math library
  654. + #
  655. + LIBMATH=    -lm
  656. + # Other OS-specific choices (-I flags, -D flags, compiler options)
  657. + #
  658. + OSINCLS=    -I/usr/include/X11R4
  659. + OSDEFS=        -DSYSV
  660. + OSOPTS=        
  661. *** /dev/null    Fri Jun  7 14:31:40 1991
  662. --- stdwin/Conf/proto.os.minix    Tue Apr 16 17:00:54 1991
  663. ***************
  664. *** 0 ****
  665. --- 1,38 ----
  666. + #
  667. + # Definitions pertaining to operating system XXX
  668. + #
  669. + # Define the name of this O.S. here.
  670. + #
  671. + OS=        minix
  672. + # Define the name of the script used to update the dependencies in
  673. + # the Makefile.
  674. + # Choices are:
  675. + #    slowmkdep -- always works (as far as I know)
  676. + #    fastmkdep -- uses cc -M, which isn't always available
  677. + #    makedepend -- Todd Brunhoff's superfast tool (comes with X11)
  678. + #                  (This needs -Dunix because of configure.h)
  679. + # You may also place this definition in the proto.arch.* file if no
  680. + # method works for every architecture supported by this OS.
  681. + #
  682. + MKDEP=        $(CONF)/slowmkdep
  683. + #MKDEP=        $(CONF)/fastmkdep
  684. + #MKDEP=        makedepend -Dunix
  685. + # Define the system libraries to link with programs that use termcap and X11
  686. + # (In some cases these are architecture-dependent)
  687. + #
  688. + #LIBTERMCAP=    -ltermcap
  689. + #LIBX11=        -lX11
  690. + # Minix' math library is part of libc
  691. + #
  692. + LIBMATH=    
  693. + # Other OS-specific choices (-I flags, -D flags, compiler options)
  694. + #
  695. + OSINCLS=    -I/usr/cstu10/meulenbr/minix/ack/include
  696. + OSDEFS=        -D_MINIX
  697. + OSOPTS=        -f  -wo -O
  698. *** 0.9.5/Conf/proto.os.sony    Fri Nov 16 12:58:49 1990
  699. --- stdwin/Conf/proto.os.sony    Tue Apr 16 17:00:55 1991
  700. ***************
  701. *** 7,18 ****
  702.   #
  703.   OS=        sony
  704.   
  705. - # Choose ONE of the following definitions of RANLIB.
  706. - # BSD-based systems will need ranlib to be called after a library is
  707. - # changed.
  708. - #
  709. - RANLIB=        ranlib            # for BSD
  710.   # Define the name of the script used to update the dependencies in
  711.   # the Makefile.
  712.   # Choices are:
  713. --- 7,12 ----
  714. ***************
  715. *** 32,37 ****
  716. --- 26,35 ----
  717.   #
  718.   LIBTERMCAP=    -ltermcap
  719.   LIBX11=        -lX11
  720. + # Similar for the math library
  721. + #
  722. + LIBMATH=    -lm
  723.   
  724.   # Other OS-specific choices (-I flags, -D flags, compiler options)
  725.   #
  726. *** 0.9.5/Conf/proto.os.sunos    Wed Aug  8 15:27:56 1990
  727. --- stdwin/Conf/proto.os.sunos    Tue Apr 16 17:00:56 1991
  728. ***************
  729. *** 7,17 ****
  730.   #
  731.   OS=        sunos
  732.   
  733. - # BSD-based systems will need ranlib to be called after a library is
  734. - # changed.
  735. - #
  736. - RANLIB=        ranlib            # for BSD-based systems
  737.   # The mkdep using cc -M will work for any architecture (I hope)
  738.   #
  739.   MKDEP=        $(CONF)/fastmkdep
  740. --- 7,12 ----
  741. ***************
  742. *** 20,23 ****
  743. --- 15,22 ----
  744.   #
  745.   LIBTERMCAP=    -ltermcap
  746.   LIBX11=        -lX11
  747. + # Similar for the math library
  748. + #
  749. + LIBMATH=    -lm
  750.   
  751. *** 0.9.5/Conf/proto.os.sysv    Wed Aug  8 15:27:56 1990
  752. --- stdwin/Conf/proto.os.sysv    Tue Apr 16 17:00:57 1991
  753. ***************
  754. *** 1,6 ****
  755.   
  756.   #
  757. ! # Definitions pertaining to (modern versions of) System V
  758.   #
  759.   # Disclaimer: this was only tested on a Silicon Graphics under IRIX 3.2
  760.   #
  761. --- 1,6 ----
  762.   
  763.   #
  764. ! # Definitions pertaining to generic System V
  765.   #
  766.   # Disclaimer: this was only tested on a Silicon Graphics under IRIX 3.2
  767.   #
  768. ***************
  769. *** 9,29 ****
  770.   #
  771.   OS=        sysv
  772.   
  773. - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
  774. - #
  775. - RANLIB=        true            # for SYSV
  776.   # Defines to make various bits of code happy:
  777.   #    -DSYSV is the general test for System V.
  778.   #    -Datt is used at least by some X internal headers (and what else?)
  779. - #    And, of course, index and rindex are called strchr and strrchr.
  780.   #
  781. ! OSDEFS=        -DSYSV -Datt -Dindex=strchr -Drindex=strrchr
  782.   
  783. ! # The mkdep using cc -M will work for any architecture (I hope)
  784.   #
  785. ! MKDEP=        $(CONF)/fastmkdep
  786.   
  787.   # The system libraries to link with programs that use termcap and X11
  788.   # are in proto.arch.* instead.
  789.   
  790. --- 9,28 ----
  791.   #
  792.   OS=        sysv
  793.   
  794.   # Defines to make various bits of code happy:
  795.   #    -DSYSV is the general test for System V.
  796.   #    -Datt is used at least by some X internal headers (and what else?)
  797.   #
  798. ! OSDEFS=        -DSYSV -Datt
  799.   
  800. ! # The mkdep using /lib/cpp | sed ... is the safest to try...
  801.   #
  802. ! MKDEP=        $(CONF)/slowmkdep
  803.   
  804.   # The system libraries to link with programs that use termcap and X11
  805.   # are in proto.arch.* instead.
  806. + # Similar for the math library
  807. + #
  808. + LIBMATH=    -lm
  809.   
  810. *** 0.9.5/Conf/proto.os.ultrix    Wed Aug  8 13:53:10 1990
  811. --- stdwin/Conf/proto.os.ultrix    Tue Apr 16 17:00:59 1991
  812. ***************
  813. *** 4,13 ****
  814.   #
  815.   
  816.   OS=        ultrix
  817. - RANLIB=        ranlib
  818.   
  819.   # MKDEP is defined in proto.arch.{vax,mips}
  820.   
  821.   LIBTERMCAP=    -ltermcap
  822.   LIBX11=        -lX11
  823. --- 4,12 ----
  824.   #
  825.   
  826.   OS=        ultrix
  827.   
  828.   # MKDEP is defined in proto.arch.{vax,mips}
  829.   
  830.   LIBTERMCAP=    -ltermcap
  831.   LIBX11=        -lX11
  832. ! LIBMATH=    -lm
  833. *** 0.9.5/Conf/proto.os.xxx    Thu Oct 11 15:15:17 1990
  834. --- stdwin/Conf/proto.os.xxx    Tue Apr 16 17:01:00 1991
  835. ***************
  836. *** 7,20 ****
  837.   #
  838.   OS=        XXX
  839.   
  840. - # Choose ONE of the following definitions of RANLIB.
  841. - # BSD-based systems will need ranlib to be called after a library is
  842. - # changed.
  843. - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
  844. - #
  845. - RANLIB=        ranlib            # for BSD
  846. - RANLIB=        true            # for SYSV
  847.   # Define the name of the script used to update the dependencies in
  848.   # the Makefile.
  849.   # Choices are:
  850. --- 7,12 ----
  851. ***************
  852. *** 29,39 ****
  853.   MKDEP=        $(CONF)/fastmkdep
  854.   MKDEP=        makedepend -Dunix
  855.   
  856. ! # Define the system libraries to link with programs that use termcap and X11
  857.   # (In some cases these are architecture-dependent)
  858.   #
  859.   LIBTERMCAP=    -ltermcap
  860.   LIBX11=        -lX11
  861.   
  862.   # Other OS-specific choices (-I flags, -D flags, compiler options)
  863.   #
  864. --- 21,36 ----
  865.   MKDEP=        $(CONF)/fastmkdep
  866.   MKDEP=        makedepend -Dunix
  867.   
  868. ! # Define the system libraries to link with programs that use termcap and X11.
  869. ! # (On SYSV it is often safer to link with -lcurses instead of -ltermcap.)
  870.   # (In some cases these are architecture-dependent)
  871.   #
  872.   LIBTERMCAP=    -ltermcap
  873.   LIBX11=        -lX11
  874. + # Similar for the math library
  875. + #
  876. + LIBMATH=    -lm
  877.   
  878.   # Other OS-specific choices (-I flags, -D flags, compiler options)
  879.   #
  880. *** 0.9.5/Conf/putlibmf    Mon Aug 13 13:00:28 1990
  881. --- stdwin/Conf/putlibmf    Tue Apr 16 17:02:45 1991
  882. ***************
  883. *** 23,29 ****
  884.   echo
  885.   echo "$TARGET: \$(OBJS)"
  886.   echo "    ar cr @$TARGET \$(OBJS)"
  887. ! echo "    \$(RANLIB) @$TARGET"
  888.   echo "    mv @$TARGET $TARGET"
  889.   #     ^^these are tabs!
  890.   echo
  891. --- 23,30 ----
  892.   echo
  893.   echo "$TARGET: \$(OBJS)"
  894.   echo "    ar cr @$TARGET \$(OBJS)"
  895. ! echo "    @echo never mind if ranlib does not exist -- probably SYSV"
  896. ! echo "    -ranlib @$TARGET"
  897.   echo "    mv @$TARGET $TARGET"
  898.   #     ^^these are tabs!
  899.   echo
  900. *** 0.9.5/Doc/ABOUT    Fri Nov 16 13:36:07 1990
  901. --- stdwin/Doc/ABOUT    Fri Jun  7 13:56:07 1991
  902. ***************
  903. *** 1,14 ****
  904. ! [Last modified on Sat Apr 15 20:19:00 MET DST 1989 by guido]
  905.   
  906.   
  907.   0. Copyright Notice
  908.   
  909. ! STDWIN is copyrighted: Copyright (c) 1988, 1989 by Stichting Mathematisch
  910. ! Centrum, Amsterdam, The Netherlands.  STDWIN is available for
  911. ! noncommercial use only, free of charge, and with no guarantees.  It can
  912. ! be freely used and distributed provided these restrictions are honoured.
  913.   
  914.   
  915.   1. Target systems
  916.   
  917.   STDWIN is aimed at C programs.  It consists of a few header files (of
  918. --- 1,33 ----
  919. ! [Last modified on Wed Apr 17 10:37:36 MET DST 1991 by frank (Chapters 0, 1, 2)]
  920. ! [     modified on Sat Apr 15 20:19:00 MET DST 1989 by guido]
  921.   
  922.   
  923.   0. Copyright Notice
  924.   
  925. ! /***********************************************************
  926. ! Copyright 1988, 1989, 1991 by Stichting Mathematisch Centrum,
  927. ! Amsterdam, The Netherlands.
  928.   
  929. +                         All Rights Reserved
  930.   
  931. + Permission to use, copy, modify, and distribute this software and its 
  932. + documentation for any purpose and without fee is hereby granted, 
  933. + provided that the above copyright notice appear in all copies and that
  934. + both that copyright notice and this permission notice appear in 
  935. + supporting documentation, and that the names of Stichting Mathematisch
  936. + Centrum or CWI not be used in advertising or publicity pertaining to
  937. + distribution of the software without specific, written prior permission.
  938. + STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
  939. + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  940. + FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
  941. + FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  942. + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  943. + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
  944. + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  945. + ******************************************************************/
  946.   1. Target systems
  947.   
  948.   STDWIN is aimed at C programs.  It consists of a few header files (of
  949. ***************
  950. *** 22,37 ****
  951.   functionality may be added, but the basic framework isn't going to
  952.   change much.)
  953.   
  954. ! *       X version 11, release 3 (should still work with release 2)
  955. ! *       Apple Macintosh, using either THINK C (3.01) or MPW C (2.02)
  956. ! *       Atari ST, using Mark Williams C (2.1)
  957.   
  958.   You may volunteer to create a version for your favourite system, or to
  959. ! port it to your favourite C compiler for one of the mentioned micros.
  960. ! (The micro versions are rather compiler-dependent, due to the many
  961. ! differences between compilers and especially libraries.  Expect
  962. ! difficulties if you have another compiler or version than the ones
  963. ! mentioned.  Especially the Atari version is flakey.)
  964.   
  965.   A subset, emulating most of STDWIN's functionality on an alphanumeric
  966.   display (excluding line drawing, but including multiple (non-overlapping)
  967. --- 41,51 ----
  968.   functionality may be added, but the basic framework isn't going to
  969.   change much.)
  970.   
  971. ! *       X version 11, release 4 (should still work with release 2 and 3)
  972. ! *       Apple Macintosh, using either THINK C (4.02) or MPW C (2.02)
  973.   
  974.   You may volunteer to create a version for your favourite system, or to
  975. ! port it to your favourite C compiler for the mentioned micro.
  976.   
  977.   A subset, emulating most of STDWIN's functionality on an alphanumeric
  978.   display (excluding line drawing, but including multiple (non-overlapping)
  979. ***************
  980. *** 41,50 ****
  981.   *       MS-DOS, using the Microsoft C compiler (4.0)
  982.   
  983.   Sorry, there are no versions yet for SunTools, SunView, NeWS, X10,
  984. ! MS-Windows, Presentation Manager or the Amiga.  A hacker might be able
  985. ! to turn the Atari ST version into a general GEM version.  The code is
  986. ! remarkably portable to different processor types and various Unix
  987. ! flavors, as long as they are derived from 4.xBSD.
  988.   
  989.   
  990.   2. Getting the full scoop
  991. --- 55,63 ----
  992.   *       MS-DOS, using the Microsoft C compiler (4.0)
  993.   
  994.   Sorry, there are no versions yet for SunTools, SunView, NeWS, X10,
  995. ! MS-Windows, Presentation Manager, Atari ST or the Amiga.
  996. ! The code is remarkably portable to different processor types and
  997. ! various Unix flavors, as long as they are derived from 4.xBSD.
  998.   
  999.   
  1000.   2. Getting the full scoop
  1001. ***************
  1002. *** 54,67 ****
  1003.   Interface.  Centre for Mathematics and Computer Science, report
  1004.   CS-R8817.  Amsterdam, 1988).
  1005.   
  1006. ! You can also get a source version for any or all of the above-mentioned
  1007. ! systems.  This is essentially a directory dump of my working version,
  1008. ! until I have the time or get some help to prepare a real distribution.
  1009. ! It is available through anonymous ftp access from uunet.uu.net.
  1010. ! The directory is amiga-sources/stdwin (thanks to the moderator, Peter
  1011. ! da Silva) get the file README.txt for further instructions.  A version
  1012. ! of this file is in ABOUT.txt.  (The version on gatekeeper no longer
  1013. ! exists, although it may be revived in the near future).
  1014.   
  1015.   Distribution to to non-ftp-users is solely by electronic mail.  Be
  1016.   prepared to receive up to half a megabyte (in 32K pieces in "shar"
  1017. --- 67,95 ----
  1018.   Interface.  Centre for Mathematics and Computer Science, report
  1019.   CS-R8817.  Amsterdam, 1988).
  1020.   
  1021. ! STDWIN was posted to alt.sources around february 1991.
  1022. ! It should be available from sites that archive this newsgroup, but I
  1023. ! have no information on that.  I also post patches to this group.  (I
  1024. ! will post the entire source to comp.sources.misc when I think the
  1025. ! product is a little bit more finished.)
  1026. ! STDWIN is available from a number of ftp sites.
  1027. ! The * in file names is the version number, e.g., 0.9.5 (the last digit
  1028. ! is the patch level).
  1029. ! Current version number is 0.9.6 .
  1030. ! site        hp4nl.nluug.nl (IP address 192.16.202.2)
  1031. ! for whom    users in the Netherlands and the rest of Europe
  1032. ! file        pub/windows/stdwin*.tar.Z
  1033. ! site        wuarchive.wustl.edu (IP address 128.252.135.4)
  1034. ! for whom    users in North America
  1035. ! file        pub/stdwin*.tar.Z
  1036. !         
  1037. ! site        gatekeeper.dec.com (IP address 16.1.0.2)
  1038. ! for whom    users in North America
  1039. ! file        pub/misc/stdwin*.tar.Z
  1040.   
  1041.   Distribution to to non-ftp-users is solely by electronic mail.  Be
  1042.   prepared to receive up to half a megabyte (in 32K pieces in "shar"
  1043. *** 0.9.5/Doc/README    Thu Feb 28 12:56:16 1991
  1044. --- stdwin/Doc/README    Fri Jun  7 12:58:18 1991
  1045. ***************
  1046. *** 2,7 ****
  1047. --- 2,8 ----
  1048.   There is nothing here that even remotely resembles a user manual;
  1049.   "paper.ms" comes closest to a full description.
  1050.   
  1051. + WHATSNEW    summary of changes in version 0.9.6 since 0.9.5
  1052.   ABOUT        the old STDWIN blurb that I used to mail out
  1053.   paper.ms    the original STDWIN report
  1054.   seldoc.ms    describes using X11 Selections and Cut Buffers in STDWIN
  1055. *** /dev/null    Fri Jun  7 14:31:40 1991
  1056. --- stdwin/Doc/WHATSNEW    Fri Jun  7 13:24:12 1991
  1057. ***************
  1058. *** 0 ****
  1059. --- 1,284 ----
  1060. + What's New in STDWIN 0.9.6
  1061. + ==========================
  1062. + This release is a temporary measure, needed primarily to support the
  1063. + upcoming release 0.9.2 of the Python programming language.  It is
  1064. + still lacking complete and up-to-date documentation.
  1065. + For those who are familiar with STDWIN 0.9.5, here is a summary of the
  1066. + main changes in version 0.9.6 (of course, a number of bugs were also
  1067. + fixed).
  1068. + Overview of the changes
  1069. + -----------------------
  1070. + - Initialization is now separated in argument processing and actual
  1071. +   initialization.
  1072. + - Scroll bars can be turned off with an option at window creation time.
  1073. + - More inquiry functions, e.g., document size, window position.
  1074. + - Filled and XOR mode drawing of circles and elliptical arcs.
  1075. + - Polygon drawing (filled, outline and XOR).
  1076. + - Color drawing.
  1077. + - Modifier keys (control, shift, meta etc.) are passed in mouse events.
  1078. + - Closing a window is now indicated by a separate event, WE_CLOSE.
  1079. + - New event type WE_KEY reports non-ASCII keys and keys with modifiers.
  1080. + The new calls are documented the following sections.
  1081. + New Initialization Calls
  1082. + ------------------------
  1083. + Some window systems (like X11) have a standard set of command line
  1084. + options that support overriding defaults by the end user.  The new
  1085. + function wargs() parses the command line options and saves them for
  1086. + later use by winit() and wopen().
  1087. + void wargs(int *p_argc, char ***p_argv);
  1088. + This function should be called before winit(), as early as possible
  1089. + during the execution of main(), passing it the addresses of main's
  1090. + arguments argc and argv.  It may modify argc and argv to reflect the
  1091. + extraction of recognized options.
  1092. + The application's argument parser does not have to worry about
  1093. + conflicting options, as long as it uses the getopt() interface to
  1094. + parse its own options.  On the Mac, this function initializes argc and
  1095. + argv from the program arguments passed by the Finder; if the
  1096. + application is called from the Finder's Print menu entry, the first
  1097. + argument will be the string "-p".
  1098. + If the application decides not to call winit() after it has called
  1099. + wargs(), it need not call wdone() before exiting.  If wargs() has not
  1100. + been called when winit() is called, system-defined defaults are
  1101. + assumed.  On X11, resources can still be specified for such
  1102. + applications; the program name is assumed to be "stdwin" and its class
  1103. + "Stdwin", unless the RESOURCE_NAME environment variable is set.
  1104. + void winitargs(int *p_argc, char ***p_argv);
  1105. + This is equivalent to a call to wargs(p_argc, p_argv) followed by a
  1106. + call to winit().
  1107. + Scroll Bars Made Optional
  1108. + -------------------------
  1109. + It is now possible to specify whether a window should have scroll
  1110. + bars.  This must be specified before the window is created and cannot
  1111. + be changed once it is created.  By default, windows will have a
  1112. + vertical scroll bar but no horizontal scroll bar.
  1113. + void wsetdefscrollbars(int need_hbar, int need_vbar);
  1114. + Specifies which scroll bars will be present on subsequently created
  1115. + windows.  If need_hbar is nonzero, new windows will be created with
  1116. + horizontal scroll bars; if need_vbar is nonzero, new windows will be
  1117. + created with vertical scroll bars.
  1118. + void wgetdefscrollbars(int *need_hbar_return, *need_vbar_return);
  1119. + Returns the current status of the scroll bar creation flags set by
  1120. + wsetdefscrollbars() through its arguments.
  1121. + Note that even if they are present, scroll bars are only activated
  1122. + when the document size in their direction is set to a value larger
  1123. + than the window size.
  1124. + More Inquiry Functions
  1125. + ----------------------
  1126. + void wgetdefwinsize(int *width_return, int *height_return);
  1127. + Return the default initial size for new windows, as set by
  1128. + wsetdefwinsize().  Zero or negative values mean that a
  1129. + system-dependent default method is used to find an initial size for
  1130. + the window, e.g., interactive sizing.
  1131. + void wgetdefwinpos(int *h_return, int *v_return);
  1132. + Return the default initial position for new windows, as set by
  1133. + wsetdefwinpos().  Zero or negative values mean that a system-dependent
  1134. + default method is used to find an initial position for the window,
  1135. + e.g., interactive placement.
  1136. + void wgetwinpos(WINDOW *win, int *h_return, int *v_return);
  1137. + Return the current window position on the screen.  Together with
  1138. + wgetwinsize() this can be used to save a window's geometry and
  1139. + recreate it in the same state at a later time.
  1140. + Color Drawing
  1141. + -------------
  1142. + It is now possible to draw images in multiple colors, if the display
  1143. + hardware allows this.  The model uses the notion of current foreground
  1144. + and background colors.  Because different color hardware operates very
  1145. + differently, the number of different colors and the way they are
  1146. + selected is left unspecified by STDWIN.
  1147. + A type COLOR is defined, which is some kind of (long) integer
  1148. + representing a color value; suitable values can be extracted by name
  1149. + from an external color database.  Applications that know on which
  1150. + hardware they run may cheat, as the values of type COLOR will be
  1151. + indexes into the color table or directly encode RGB value, but this
  1152. + obviously restricts the application's portability.
  1153. + Applications can only assume the presence of colors named white and
  1154. + black; on monochrome displays, these are all there is.  Otherwise,
  1155. + some standard colors are supposed to be available everywhere: gray25
  1156. + (dark grey), gray50 (middle gray), gray75 (light gray), red, green,
  1157. + blue, yellow, magenta, cyan.  There are also some pseudo color names
  1158. + that may be assigned defaults by the end user: foreground, background,
  1159. + primary, secondary, selection, hilight.  Some monochrome
  1160. + implementations (especially the Mac) attempt to simulate a few gray
  1161. + levels with fill patterns, but only as foreground color.  On X11,
  1162. + color names are looked up in the server's color database; the notation
  1163. + #RGB, #RRGGBB (etc.) is also recognized.
  1164. + Each window has default foreground and background colors, which are in
  1165. + effect immediately after wbegindrawing() and initially in draw
  1166. + procedures.  These default colors are specified by calling
  1167. + wsetfgcolor() and wsetbgcolor() outside drawing mode before creating a
  1168. + window.  These colors may also be used to draw a window's
  1169. + ornamentation such as scroll bars and menus; before a draw procedure
  1170. + is called, the update area is cleared to the window's default
  1171. + background color.
  1172. + Two drawing functions are unsafe when color is used: winvert() and
  1173. + wxorline().  For all affected pixels, these are guaranteed to
  1174. + correctly swap the current foreground and background colors, but other
  1175. + colors are swapped with arbitrary colors, giving an undefined effect.
  1176. + Inverting the pixels once more (with the same foreground and
  1177. + background colors in effect!) will return them to their original
  1178. + colors, however.
  1179. + Swapping the foreground and background colors has the effect of
  1180. + drawing in inverse video; HOWEVER, this is not supported by the
  1181. + termcap (alphanumeric) version of STDWIN, which bluntly ignores all
  1182. + color requests.
  1183. + typedef ... COLOR;
  1184. + This type represents a color value.  It is one of C's integral types,
  1185. + so it is possible (and useful!) to declare variables of type COLOR.
  1186. + COLOR wfetchcolor(char *colorname);
  1187. + Look the color name up in the external database of color definitions
  1188. + and return a color value for it, if possible.  If the color is not
  1189. + found in the database or no more color values are available (this
  1190. + happens easily on systems with small color tables), the color value
  1191. + for the default foreground is returned.
  1192. + void wsetfgcolor(COLOR color);
  1193. + Set the current foreground color.  In drawing mode, set the foreground
  1194. + color used for drawing; outside drawing mode, set the default
  1195. + foreground color for windows created subsequently.
  1196. + void wsetbgcolor(COLOR color);
  1197. + Set the current background color.  Similar to wsetfgcolor().
  1198. + COLOR wgetfgcolor();
  1199. + Return the current foreground color, as set by wsetfgcolor() or from a
  1200. + system-defined default.
  1201. + COLOR wgetbgcolor().
  1202. + Return the current background color.  Similar to wgetfgcolor().
  1203. + Filled and Xor'ed Circles and Arcs
  1204. + ----------------------------------
  1205. + void wfillcircle(int h, int v, int radius);
  1206. + Fills a circle with given center and radius.
  1207. + void wxorcircle(int h, int v, int radius);
  1208. + Inverts a circle with given center and radius.
  1209. + void wfillelarc(int h, int v, int hrad, int vrad, int angle1, int angle2);
  1210. + Fills a segment of an elliptical arc defined by the parameters as for
  1211. + wdrawelarc.
  1212. + void wxorelarc(int h, int v, int hrad, int vrad, int angle1, int  angle2);
  1213. + Inverts an elliptical arc defined by the parameters as for wdrawelarc.
  1214. + Polygons
  1215. + --------
  1216. + There is a way to draw arbitrary polygon shapes.
  1217. + typedef struct { short h, v; } POINT;
  1218. + This type is used to pass an array of points to the polygon routines.  
  1219. + Coordinates are specified as shorts so certain STDWIN versions 
  1220. + (especially the X11 version) can pass arrays of coordinates to routines 
  1221. + of the underlying window system without copying them.
  1222. + void wdrawpoly(int n, POINT points[]);
  1223. + Draws n-1 line segments given by n points: from points[0] to points[1], 
  1224. + from points[1] to points[2], etc., and finally from points[n-2] to 
  1225. + points[n-1].
  1226. + void wfillpoly(int n, POINT points[]);
  1227. + Fills polygon defined by n points.  If points[n-1] does not equal 
  1228. + points[0], an additional line segment closing the polygon shape from 
  1229. + points[n-1] to points[0] is implied.  The polygon may intersect itself.
  1230. + void wxorpoly(int n, POINT points[]);
  1231. + Inverts a filled polygon.  The polygon is defined as for wfillpoly().
  1232. + Modifier Keys in Mouse Events
  1233. + -----------------------------
  1234. + The u.where.mask member of the EVENT structure now has a different
  1235. + meaning.  It reports the modifier keys that were pressed at the time
  1236. + the event was generated.  The following constants define bit masks for
  1237. + various modifier keys:
  1238. + #define WM_SHIFT    (1 << 0)
  1239. + #define WM_LOCK        (1 << 1)
  1240. + #define WM_CONTROL    (1 << 2)
  1241. + #define WM_META        (1 << 3)
  1242. + #define WM_OPTION    (1 << 4)
  1243. + #define WM_NUM        (1 << 5)
  1244. + On the Mac, WM_META corresponds to the Command modifier.  In X11,
  1245. + WM_META is really "Modifier 3", commonly bound to the Meta or Alt key;
  1246. + WM_OPTION and WM_NUM are not normally reported in X11 so their use is
  1247. + not portable.
  1248. + The WE_CLOSE Event
  1249. + ------------------
  1250. + To simplify event decoding somewhat, a user's close request is now
  1251. + reported as an event (WE_CLOSE) rather than a subcode (WC_CLOSE) of
  1252. + the WE_COMMAND event.  All WE_COMMAND subcodes now report special
  1253. + keys.
  1254. + The WE_KEY Event
  1255. + ----------------
  1256. + If a key is pressed together with the Meta key that is not a menu
  1257. + shortcut, it is reported as a WE_KEY event.  This event uses the union
  1258. + member u.key which has members code and mask.  The member u.key.code
  1259. + specifies the ASCII code of the key; u.key.mask specifies the
  1260. + modifiers that were pressed with the key.
  1261. *** 0.9.5/Gen/waskfile.c    Mon Oct 22 10:31:09 1990
  1262. --- stdwin/Gen/waskfile.c    Tue May 14 13:02:26 1991
  1263. ***************
  1264. *** 10,15 ****
  1265. --- 10,17 ----
  1266.      and if it already exists confirmation is asked;
  1267.      if 'new' is FALSE, it should exist. */
  1268.   
  1269. + /* XXX This should also refuse to open directories */
  1270.   bool
  1271.   waskfile(prompt, buf, len, new)
  1272.       char *prompt;
  1273. ***************
  1274. *** 23,36 ****
  1275.           if (new) {
  1276.               if (access(buf, NOMODE) >= 0) {    /* Existing file */
  1277.                   if (access(buf, WMODE) >= 0) {
  1278. !                     switch (waskync("Overwrite? [ny]", 0)) {
  1279.                       case -1:    return FALSE;
  1280.                       case 1:        return TRUE;
  1281.                       }
  1282. -                     wmessage("Try again.");
  1283.                   }
  1284.                   else
  1285. !                     wmessage("No write permission.");
  1286.               }
  1287.               else {
  1288.                   char *p= strrchr(buf, SEP);
  1289. --- 25,38 ----
  1290.           if (new) {
  1291.               if (access(buf, NOMODE) >= 0) {    /* Existing file */
  1292.                   if (access(buf, WMODE) >= 0) {
  1293. !                     switch (waskync(
  1294. !                         "Overwrite existing file?", 0)) {
  1295.                       case -1:    return FALSE;
  1296.                       case 1:        return TRUE;
  1297.                       }
  1298.                   }
  1299.                   else
  1300. !                     wmessage("No write permission");
  1301.               }
  1302.               else {
  1303.                   char *p= strrchr(buf, SEP);
  1304. ***************
  1305. *** 45,59 ****
  1306.                           return TRUE;
  1307.                       }
  1308.                   }
  1309. !                 wmessage("Can't create file.");
  1310.               }
  1311.           }
  1312.           else {
  1313.               if (access(buf, RMODE) >= 0)
  1314.                   return TRUE;
  1315. !             wmessage("File not found.");
  1316.           }
  1317. -         wfleep();
  1318.           break;
  1319.       }
  1320.       return FALSE;
  1321. --- 47,60 ----
  1322.                           return TRUE;
  1323.                       }
  1324.                   }
  1325. !                 wmessage("Can't create file");
  1326.               }
  1327.           }
  1328.           else {
  1329.               if (access(buf, RMODE) >= 0)
  1330.                   return TRUE;
  1331. !             wmessage("File not found");
  1332.           }
  1333.           break;
  1334.       }
  1335.       return FALSE;
  1336. *** 0.9.5/H/stdwin.h    Tue Feb 19 10:45:40 1991
  1337. --- stdwin/H/stdwin.h    Tue May 28 22:52:30 1991
  1338. ***************
  1339. *** 52,57 ****
  1340. --- 52,59 ----
  1341.           } where;
  1342.       /* case WE_LOST_SEL: */
  1343.           int sel;
  1344. +     /* case WE_KEY: */
  1345. +         struct { int code; int mask; } key;
  1346.       } u;
  1347.   };
  1348.   
  1349. ***************
  1350. *** 75,81 ****
  1351.   #define WE_TIMER    11    /* Window's timer went off */
  1352.   #define WE_DEACTIVATE    12    /* Window became inactive */
  1353.   #define WE_EXTERN    13    /* Externally generated event (Amoeba) */
  1354. ! #define WE_KEY        14    /* Low-level key event (reserved) */
  1355.   #define WE_LOST_SEL    15    /* Lost selection */
  1356.   #define WE_CLOSE    16    /* User wants to close window */
  1357.   
  1358. --- 77,83 ----
  1359.   #define WE_TIMER    11    /* Window's timer went off */
  1360.   #define WE_DEACTIVATE    12    /* Window became inactive */
  1361.   #define WE_EXTERN    13    /* Externally generated event (Amoeba) */
  1362. ! #define WE_KEY        14    /* Non-ASCII key event */
  1363.   #define WE_LOST_SEL    15    /* Lost selection */
  1364.   #define WE_CLOSE    16    /* User wants to close window */
  1365.   
  1366. ***************
  1367. *** 83,89 ****
  1368.   /* Special keys reported by WE_COMMAND */
  1369.   /* XXX Should become key events */
  1370.   
  1371. ! #define WC_CLOSE    1    /* Now a separate event! */
  1372.   /* The following four are arrow keys */
  1373.   #define WC_LEFT        2
  1374.   #define WC_RIGHT    3
  1375. --- 85,91 ----
  1376.   /* Special keys reported by WE_COMMAND */
  1377.   /* XXX Should become key events */
  1378.   
  1379. ! #define WC_CLOSE    1    /* Obsolete */
  1380.   /* The following four are arrow keys */
  1381.   #define WC_LEFT        2
  1382.   #define WC_RIGHT    3
  1383. ***************
  1384. *** 119,124 ****
  1385. --- 121,146 ----
  1386.   #define WS_SECONDARY    2
  1387.   
  1388.   
  1389. + /* Masks for EVENT->u.where.mask and EVENT->u.key.mask.
  1390. +    Some of these happen to be the same as the X11 masks (which are cast
  1391. +    in stone for eternity); the implementation relies on that.
  1392. +    (It is merely a convention that Meta is bit 3, and Option/Num aren't
  1393. +    normally used in X11.) */
  1394. + #define WM_SHIFT    (1 << 0)
  1395. + #define WM_LOCK        (1 << 1)
  1396. + #define WM_CONTROL    (1 << 2)
  1397. + #define WM_META        (1 << 3)
  1398. + #define WM_OPTION    (1 << 4)
  1399. + #define WM_NUM        (1 << 5)
  1400. + #define WM_BUTTON1    (1 << 8)
  1401. + #define WM_BUTTON2    (1 << 9)
  1402. + #define WM_BUTTON3    (1 << 10)
  1403. + #define WM_BUTTON4    (1 << 11)
  1404. + #define WM_BUTTON5    (1 << 12)
  1405.   /* TEXTATTR struct */
  1406.   
  1407.   /* The contents of a text attributes struct are disclosed here because
  1408. ***************
  1409. *** 134,139 ****
  1410. --- 156,174 ----
  1411.   #define TEXTATTR struct _textattr
  1412.   
  1413.   
  1414. + /* Color */
  1415. + #define COLOR long
  1416. + /* Point type for wdrawpoly and wfillpoly -- compatible with X */
  1417. + struct _point {
  1418. +     short h, v;
  1419. + };
  1420. + #define POINT struct _point
  1421.   /*************************************/
  1422.   /* Section 2.  Function declarations */
  1423.   /*************************************/
  1424. ***************
  1425. *** 146,157 ****
  1426.   
  1427.   void wgetscrsize _ARGS((int *pwidth, int *pheight));
  1428.   void wgetscrmm _ARGS((int *pmmwidth, int *pmmheight));
  1429.   
  1430.   void wsetmaxwinsize _ARGS((int width, int height));
  1431.   void wsetdefwinsize _ARGS((int width, int height));
  1432. - void wsetdefwinpos _ARGS((int h, int v));
  1433.   void wgetdefwinsize _ARGS((int *pwidth, int *pheight));
  1434.   void wgetdefwinpos _ARGS((int *ph, int *pv));
  1435.   
  1436.   WINDOW *wopen _ARGS((char *title,
  1437.           void (*drawproc)(/*WINDOW *win,
  1438. --- 181,195 ----
  1439.   
  1440.   void wgetscrsize _ARGS((int *pwidth, int *pheight));
  1441.   void wgetscrmm _ARGS((int *pmmwidth, int *pmmheight));
  1442. + int wgetmouseconfig _ARGS((void));
  1443.   
  1444.   void wsetmaxwinsize _ARGS((int width, int height));
  1445.   void wsetdefwinsize _ARGS((int width, int height));
  1446.   void wgetdefwinsize _ARGS((int *pwidth, int *pheight));
  1447. + void wsetdefwinpos _ARGS((int h, int v));
  1448.   void wgetdefwinpos _ARGS((int *ph, int *pv));
  1449. + void wsetdefscrollbars _ARGS((/*bool*/int hbar, /*bool*/int vbar));
  1450. + void wgetdefscrollbars _ARGS((/*bool*/int *phbar, /*bool*/int *pvbar));
  1451.   
  1452.   WINDOW *wopen _ARGS((char *title,
  1453.           void (*drawproc)(/*WINDOW *win,
  1454. ***************
  1455. *** 162,167 ****
  1456. --- 200,206 ----
  1457.   void wsetactive _ARGS((WINDOW *win));
  1458.   WINDOW *wgetactive _ARGS((void));
  1459.   void wgetwinsize _ARGS((WINDOW *win, int *width, int *height));
  1460. + void wgetwinpos _ARGS((WINDOW *win, int *h, int *v));
  1461.   void wsetdocsize _ARGS((WINDOW *win, int width, int height));
  1462.   void wgetdocsize _ARGS((WINDOW *win, int *width, int *height));
  1463.   void wsettitle _ARGS((WINDOW *win, char *title));
  1464. ***************
  1465. *** 210,223 ****
  1466.   
  1467.   void wdrawline _ARGS((int h1, int v1, int h2, int v2));
  1468.   void wxorline _ARGS((int h1, int v1, int h2, int v2));
  1469. ! void wdrawcircle _ARGS((int h, int v, int radius));
  1470. ! void wdrawelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
  1471.   void wdrawbox _ARGS((int left, int top, int right, int bottom));
  1472. - void werase _ARGS((int left, int top, int right, int bottom));
  1473.   void wpaint _ARGS((int left, int top, int right, int bottom));
  1474.   void winvert _ARGS((int left, int top, int right, int bottom));
  1475.   void wshade _ARGS((int left, int top, int right, int bottom, int percent));
  1476.   
  1477.   void wcliprect _ARGS((int left, int top, int right, int bottom));
  1478.   void wnoclip _ARGS((void));
  1479.   
  1480. --- 249,273 ----
  1481.   
  1482.   void wdrawline _ARGS((int h1, int v1, int h2, int v2));
  1483.   void wxorline _ARGS((int h1, int v1, int h2, int v2));
  1484.   void wdrawbox _ARGS((int left, int top, int right, int bottom));
  1485.   void wpaint _ARGS((int left, int top, int right, int bottom));
  1486.   void winvert _ARGS((int left, int top, int right, int bottom));
  1487. + void werase _ARGS((int left, int top, int right, int bottom));
  1488.   void wshade _ARGS((int left, int top, int right, int bottom, int percent));
  1489.   
  1490. + void wdrawcircle _ARGS((int h, int v, int radius));
  1491. + void wfillcircle _ARGS((int h, int v, int radius));
  1492. + void wxorcircle _ARGS((int h, int v, int radius));
  1493. + void wdrawelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
  1494. + void wfillelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
  1495. + void wxorelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
  1496. + void wdrawpoly _ARGS((int n, POINT points[]));
  1497. + void wfillpoly _ARGS((int n, POINT points[]));
  1498. + void wxorpoly _ARGS((int n, POINT points[]));
  1499.   void wcliprect _ARGS((int left, int top, int right, int bottom));
  1500.   void wnoclip _ARGS((void));
  1501.   
  1502. ***************
  1503. *** 244,249 ****
  1504. --- 294,306 ----
  1505.   
  1506.   void wsetfont _ARGS((char *fontname));
  1507.   void wsetsize _ARGS((int pointsize));
  1508. + /* Colors */
  1509. + COLOR wfetchcolor _ARGS((char *colorname));
  1510. + void wsetfgcolor _ARGS((COLOR color));
  1511. + COLOR wgetfgcolor _ARGS((void));
  1512. + void wsetbgcolor _ARGS((COLOR color));
  1513. + COLOR wgetbgcolor _ARGS((void));
  1514.   
  1515.   /* Setting the mouse cursor for a window */
  1516.   CURSOR *wfetchcursor _ARGS((char *name));
  1517. *** 0.9.5/H/stdwtext.h    Tue Feb 19 10:45:44 1991
  1518. --- stdwin/H/stdwtext.h    Tue May 28 22:53:37 1991
  1519. ***************
  1520. *** 18,23 ****
  1521. --- 18,26 ----
  1522.   void temovenew _ARGS((TEXTEDIT *tp,
  1523.       int left, int top, int right, int bottom));
  1524.   
  1525. + void tesetview _ARGS((TEXTEDIT *tp, int left, int top, int right, int bottom));
  1526. + void tenoview _ARGS((TEXTEDIT *tp));
  1527.   void tesetfocus _ARGS((TEXTEDIT *tp, int foc1, int foc2));
  1528.   void tereplace _ARGS((TEXTEDIT *tp, char *str));
  1529.   void tesetbuf _ARGS((TEXTEDIT *tp, char *buf, int buflen));
  1530. *** 0.9.5/H/tools.h    Tue Feb 19 10:45:51 1991
  1531. --- stdwin/H/tools.h    Sun Apr  7 16:59:13 1991
  1532. ***************
  1533. *** 29,35 ****
  1534. --- 29,42 ----
  1535.   #define VOID_PTR
  1536.   #endif
  1537.   
  1538. + #ifdef AMOEBA
  1539. + /* Amoeba has its own way of telling which one we want: */
  1540. + #ifndef VOIDSTAR
  1541. + #define VOID_PTR
  1542. + #endif
  1543. + #endif
  1544.   
  1545.   /*********************/
  1546.   /* Universal pointer */
  1547.   /*********************/
  1548. ***************
  1549. *** 80,85 ****
  1550. --- 87,94 ----
  1551.   #include <stdlib.h>
  1552.   
  1553.   #else
  1554. + #include <sys/types.h> /* For size_t -- hope it doesn't break other things */
  1555.   
  1556.   UNIVPTR malloc _ARGS((size_t));
  1557.   UNIVPTR calloc _ARGS((size_t, size_t));
  1558. *** 0.9.5/H/vtrm.h    Thu Oct 18 13:55:08 1990
  1559. --- stdwin/H/vtrm.h    Tue Apr 23 15:59:43 1991
  1560. ***************
  1561. *** 1,3 ****
  1562. --- 1,5 ----
  1563. + /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1991. */
  1564.   /*
  1565.    * Terminal capabilities.  These correspond to bits set by trmstart in its
  1566.    * parameter flags parameter.
  1567. ***************
  1568. *** 6,12 ****
  1569.   #define HAS_STANDOUT    1    /* Terminal has inverse video or underline */
  1570.   #define CAN_SCROLL    2    /* Terminal can insert/delete lines */
  1571.   #define CAN_OPTIMISE    4    /* Terminal can insert/delete characters */
  1572. - #define CAN_SENSE    8    /* Terminal can send cursor position */
  1573.   
  1574.   /*
  1575.    * Error codes returned by trmstart.
  1576. --- 8,13 ----
  1577. ***************
  1578. *** 17,22 ****
  1579.   #define TE_NOTERM    2    /* $TERM not set or empty */
  1580.   #define TE_BADTERM    3    /* $TERM not found in termcap database */
  1581.   #define TE_DUMB        4    /* Terminal too dumb */
  1582. ! #define TE_NOTTY    5    /* Stdout not a tty device */
  1583.   #define TE_NOMEM    6    /* Can't get enough memory */
  1584. ! #define TE_OTHER    7    /* This and higher are reserved errors */
  1585. --- 18,32 ----
  1586.   #define TE_NOTERM    2    /* $TERM not set or empty */
  1587.   #define TE_BADTERM    3    /* $TERM not found in termcap database */
  1588.   #define TE_DUMB        4    /* Terminal too dumb */
  1589. ! #define TE_NOTTY    5    /* Stdin not a tty or cannot open "/dev/tty" */
  1590.   #define TE_NOMEM    6    /* Can't get enough memory */
  1591. ! #define TE_BADSCREEN    7    /* Bad $SCREEN */
  1592. ! #define TE_OTHER    8    /* This and higher are reserved errors */
  1593. ! /*
  1594. !  * Possible modes; only standout is currently implemented.
  1595. !  */
  1596. ! #define PLAIN           0       /* normal characters */
  1597. ! #define STANDOUT        1       /* in inverse video */
  1598. ! #define UNDERLINE       2       /* underlined */
  1599.