[alt.sources] STDWIN official patch # 5

guido@cwi.nl (Guido van Rossum) (02/28/91)

Archive-name: stdwin0.9/patch05

This is STDWIN official patch # 5.  You haven't missed patches 1-4 or
the original posting of STDWIN in alt.sources: it was only installed
on wuarchive.wustl.edu (in pub), at patchlevel 4 (the patchlevel is
the third digit of the version number, e.g. 0.9.4).

So far I have received only 5 messages asking that I post STDWIN to
alt.sources.  Given the size (almost a Megabyte) and the flames I got
for posting Python, I won't post it unless I get a lot more fan mail.
In the mean time, try to find a friend with ftp access!

If you have ftp'ed STDWIN version 0.9.4 from wuarchive, this patch
brings you up-to-date to version 0.9.5.  A following message contains
the original STDWIN report, which you can install as Doc/paper.ms for
completeness.  Finally, there is a message containing some shell
commands to remove some files that were inadvertently distributed with
0.9.4 and to move a few files around to more convenient places.

If you have applied the temporary patch to 0.9.4 for Ports/x11/general.c
that I put out here, unpatch it first (or restore general.c.orig)
since this patch will attempt to redo that patch (but different).

I will install 0.9.5 and uninstall 0.9.4 on wuarchive as soon as I
can get to it.  Users in Europe: 0.9.5 will be available from
hp4nl.nluug.nl from tomorrow afternoon.

Good luck!

--Guido van Rossum <guido@cwi.nl>

		*************************************
		* NOTE: use "patch -p <thismessage" *
		*************************************

Prereq: 4
*** ../0.9.4/H/patchlevel.h	Thu Feb 21 13:39:20 1991
--- H/patchlevel.h	Thu Feb 28 10:42:39 1991
***************
*** 1 ****
! #define PATCHLEVEL 4
--- 1 ----
! #define PATCHLEVEL 5
*** ../0.9.4/README	Wed Jan  2 14:51:42 1991
--- README	Thu Feb 28 12:57:44 1991
***************
*** 1,7 ****
  STDWIN INSTALLATION GUIDE
  -------------------------
  
! [last edit: Jan 2 1991]
  
  
  What Is STDWIN
--- 1,7 ----
  STDWIN INSTALLATION GUIDE
  -------------------------
  
! [last edit: Feb 28 1991]
  
  
  What Is STDWIN
***************
*** 10,35 ****
  STDWIN (STanDard Window INterface) is a simple windowing interface for
  which multiple implementations exist; currently, programs using STDWIN
  can be made to run on Unix (using either alphanumeric terminals or the
! X11 Window System, Release 3 or 4), on the Apple Macintosh (using THINK
! C 4.0), or on MS-DOS with a dumb display (using Microsoft C).  If you
! insist, I also have two versions for the Atari ST that need some dusting
! off.
  
  For a longer introduction, read the (slightly outdated) file Doc/ABOUT.
  
  
  Where To Get STDWIN
  ===================
  
! This is a preliminary version.  If you insist, you can get the latest
! version by e-mail from me (Guido van Rossum, <guido@cwi.nl>), but it is
! usually easier to fetch it by anonymous ftp.  I regularly put a recent,
! working version on a dutch anonymous ftp site named hp4nl.nluug.nl (IP
! address 192.16.202.2), in the file "pub/windows/stdwin.tar.Z".  Don't
! forget to issue the ftp command "type image" before attempting to get
! the file (it's in compressed tar format).
  
  
  Getting Started Right Now
  =========================
  
--- 10,48 ----
  STDWIN (STanDard Window INterface) is a simple windowing interface for
  which multiple implementations exist; currently, programs using STDWIN
  can be made to run on Unix (using either alphanumeric terminals or the
! X11 Window System), on the Apple Macintosh (using THINK C or MPW), or
! on MS-DOS with a dumb display (using Microsoft C).  If you insist, I
! also have two versions for the Atari ST that need some dusting off.
  
  For a longer introduction, read the (slightly outdated) file Doc/ABOUT.
+ For more information on the Macintosh version, read Ports/mac/README,
+ for MS-DOS, read Ports/msdos/README.
  
+ This is version 0.9.5.  It is still a beta test version.
  
+ 
  Where To Get STDWIN
  ===================
  
! I regularly put the latest STDWIN distribution on two anonymous ftp
! sites.  As the filename shows, to unpack this you need the programs
! uncompress and tar.
  
+ 	site		hp4nl.nluug.nl (IP address 192.16.202.2)
+ 	directory	pub/windows
+ 	file		stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
  
+ 	site		wuarchive.wustl.edu
+ 	directory	pub
+ 	file		stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
+ 
+ Don't forget to specify binary file transfer mode!  ("type binary")
+ 
+ I can also e-mail you a voluminous bunch of shar files but please try
+ finding a friend with ftp access first -- it's much more convenient
+ for all concerned.
+ 
+ 
  Getting Started Right Now
  =========================
  
***************
*** 41,49 ****
  	DEC VAX, DECstation		Ultrix 2.2 or 3.0
  	Sun3, Sun4			SunOS 4.0 or 4.1
  	Silicon Graphics Personal IRIS	IRIX 3.2 or 3.3
  
  (For other OS versions on these or similar machines, give it a try
! anyway, it may work as well.)  To build STDWIN for X11 on such systems:
  
  	cd Conf
  	./mkmf				# answer all questions with yes
--- 54,65 ----
  	DEC VAX, DECstation		Ultrix 2.2 or 3.0
  	Sun3, Sun4			SunOS 4.0 or 4.1
  	Silicon Graphics Personal IRIS	IRIX 3.2 or 3.3
+ 	Harris HCX-7 (tahoe)		BSD 4.3
  
  (For other OS versions on these or similar machines, give it a try
! anyway, it may work as well, especially if there is a program called
! "arch" or "machine" that prints the machine type.)  To build STDWIN
! for X11 on such systems:
  
  	cd Conf
  	./mkmf				# answer all questions with yes
***************
*** 96,105 ****
  			directory to the compiler in a "-I" option.
  
  	Tools/		Subroutines used by various ports and
! 			applications; not STDWIN-specific.  (Actually,
! 			most of these are not used by the standard
! 			ports; only strdup.c is needed and even that
! 			may be in your standard C library.)
  
  	Gen/		(Almost) generic versions of some STDWIN
  			functions, used by more than one port.  (Some
--- 112,120 ----
  			directory to the compiler in a "-I" option.
  
  	Tools/		Subroutines used by various ports and
! 			applications; not STDWIN-specific.
! 			(This has now been truncated to the bare
! 			minimum.)
  
  	Gen/		(Almost) generic versions of some STDWIN
  			functions, used by more than one port.  (Some
***************
*** 107,114 ****
  			fail.)
  
  	Ports/		Source for various ports.
  
! 	Ports/x11/	Port to X11, for R3 or R4; uses Xlib only.
  	Ports/alfa/	Port for alphanumeric displays using termcap/terminfo.
  	Ports/vtrm/	VTRM (virtual terminal) package used by Ports/alfa.
  	Ports/atrm/	Amoeba support or verion for VTRM (old).
--- 122,130 ----
  			fail.)
  
  	Ports/		Source for various ports.
+ 			Note: not all subdirectories are distributed!
  
! 	Ports/x11/	Port to X11 R4; uses Xlib only.
  	Ports/alfa/	Port for alphanumeric displays using termcap/terminfo.
  	Ports/vtrm/	VTRM (virtual terminal) package used by Ports/alfa.
  	Ports/atrm/	Amoeba support or verion for VTRM (old).
***************
*** 135,141 ****
  			Unfortunately this is terribly out of date.
  
  	Doc/ABOUT	Blurb to be sent to prospective users.
! 	Doc/paper/	The original paper (CWI report CS-R8817) (*troff -ms).
  	(etc)
  
  	Conf/		Configuration scripts and prototype Makefiles.
--- 151,157 ----
  			Unfortunately this is terribly out of date.
  
  	Doc/ABOUT	Blurb to be sent to prospective users.
! 	Doc/paper.ms	The original paper (CWI report CS-R8817) (*troff -ms).
  	(etc)
  
  	Conf/		Configuration scripts and prototype Makefiles.
*** ../0.9.4/Appls/dpv/dpvcontrol.c	Tue Oct 30 17:38:11 1990
--- Appls/dpv/dpvcontrol.c	Thu Feb 28 10:42:40 1991
***************
*** 48,57 ****
  	char *device;	/* Required device, or NULL if N/A */
  	char *command;	/* Shell command to execute */
  } printitems[MAXNPRINT]= {
  	{"Typeset on Harris",		"har",	"lpr -Phar -n %s"},
  	{"Harris emulation on Agfa",	"har",	"toagfa %s"},
  	{"Print on PostScript",		"psc",	"lpr -Ppsc -n %s"},
! 	{"Print on Agfa",		"psc",	"lpr -Phqpsc -n %s"},
  };
  
  int nprint;
--- 48,60 ----
  	char *device;	/* Required device, or NULL if N/A */
  	char *command;	/* Shell command to execute */
  } printitems[MAXNPRINT]= {
+ 	/* XXX This is extremely site-dependent */
  	{"Typeset on Harris",		"har",	"lpr -Phar -n %s"},
  	{"Harris emulation on Agfa",	"har",	"toagfa %s"},
+ 	{"Print on ${PRINTER-psc}",	"psc",	"lpr -P${PRINTER-psc} -n %s"},
+ 	{"Print on Oce",		"psc",	"lpr -Poce -n %s"},
  	{"Print on PostScript",		"psc",	"lpr -Ppsc -n %s"},
! 	{"Print on Agfa",		"psc",	"lpr -Pagfa -n %s"},
  };
  
  int nprint;
*** ../0.9.4/Appls/klok/bsdsetdate.c	Thu Sep  6 10:02:54 1990
--- Appls/klok/bsdsetdate.c	Thu Feb 28 10:42:41 1991
***************
*** 1,6 ****
--- 1,9 ----
  /* Set the date and time -- 4.3 BSD Unix version */
  
+ #ifndef sun
+ /* This is not needed on SunOS 4.03 (what about higher SunOS'es?). */
  #include <time.h>
+ #endif
  #include <sys/time.h>
  
  #define isleap(y) ((y)%4 == 0 && ((y)%100 != 0 || (y)%400 == 0))
*** ../0.9.4/Appls/klok/klok.c	Tue Oct 30 17:38:46 1990
--- Appls/klok/klok.c	Thu Feb 28 10:42:41 1991
***************
*** 801,807 ****
  #endif
  	
  	/* Create the window */
- 	wsetmaxwinsize(400, 400);
  	wsetdefwinsize(120, 120);
  	win = wopen(title == NULL ? progname : title, drawproc);
  	wmenuattach(win, mp);
--- 801,806 ----
*** ../0.9.4/Appls/test/bike.c	Tue Oct 30 17:41:13 1990
--- Appls/test/bike.c	Thu Feb 28 10:34:59 1991
***************
*** 131,137 ****
  	int argc;
  	char **argv;
  {
! 	winitnew(&argc, &argv);
  	calculate();
  	wsetdefwinsize(HSCALE + 4*wcharwidth('0'), (NFRONT+1) * VSTEP);
  	win = wopen("Bike", drawproc);
--- 131,137 ----
  	int argc;
  	char **argv;
  {
! 	winitargs(&argc, &argv);
  	calculate();
  	wsetdefwinsize(HSCALE + 4*wcharwidth('0'), (NFRONT+1) * VSTEP);
  	win = wopen("Bike", drawproc);
*** ../0.9.4/Appls/test/bits.c	Tue Oct 30 17:41:24 1990
--- Appls/test/bits.c	Thu Feb 28 10:34:58 1991
***************
*** 34,40 ****
  	int argc;
  	char **argv;
  {
! 	winitnew(&argc, &argv);
  	setup();
  	mainloop();
  	wdone();
--- 34,40 ----
  	int argc;
  	char **argv;
  {
! 	winitargs(&argc, &argv);
  	setup();
  	mainloop();
  	wdone();
*** ../0.9.4/Appls/test/charset.c	Tue Oct 30 17:41:44 1990
--- Appls/test/charset.c	Thu Feb 28 10:34:58 1991
***************
*** 14,20 ****
  	int *which= &minchar;
  	int i;
  	
! 	winitnew(&argc, &argv);
  	
  	for (i= 1; i < argc; ++i) {
  		if (isnumeric(argv[i])) {
--- 14,20 ----
  	int *which= &minchar;
  	int i;
  	
! 	winitargs(&argc, &argv);
  	
  	for (i= 1; i < argc; ++i) {
  		if (isnumeric(argv[i])) {
*** ../0.9.4/Appls/test/dklok.c	Tue Oct 30 17:42:05 1990
--- Appls/test/dklok.c	Thu Feb 28 10:34:57 1991
***************
*** 107,113 ****
  	int argc;
  	char **argv;
  {
! 	winitnew(&argc, &argv);
  	setup();
  	mainloop();
  	wdone();
--- 107,113 ----
  	int argc;
  	char **argv;
  {
! 	winitargs(&argc, &argv);
  	setup();
  	mainloop();
  	wdone();
*** ../0.9.4/Appls/test/faced.c	Tue Oct 30 17:42:15 1990
--- Appls/test/faced.c	Thu Feb 28 10:34:57 1991
***************
*** 35,41 ****
  {
  	FILE *fp;
  	
! 	winitnew(&argc, &argv);
  	
  	if (argc > 1) {
  		fp= fopen(argv[1], "r");
--- 35,41 ----
  {
  	FILE *fp;
  	
! 	winitargs(&argc, &argv);
  	
  	if (argc > 1) {
  		fp= fopen(argv[1], "r");
*** ../0.9.4/Appls/test/hello.c	Tue Oct 30 17:42:40 1990
--- Appls/test/hello.c	Thu Feb 28 10:34:56 1991
***************
*** 30,36 ****
  	char **argv;
  {
  	WINDOW *win;
! 	winitnew(&argc, &argv);
  	win= wopen("Hello", drawproc);
  	
  	if (win != 0) {
--- 30,36 ----
  	char **argv;
  {
  	WINDOW *win;
! 	winitargs(&argc, &argv);
  	win= wopen("Hello", drawproc);
  	
  	if (win != 0) {
*** ../0.9.4/Appls/test/magic.c	Tue Oct 30 17:43:24 1990
--- Appls/test/magic.c	Thu Feb 28 10:34:55 1991
***************
*** 222,228 ****
  {
  	EVENT e;
  	
! 	winitnew(&argc, &argv);
  	init();
  	wsetdefwinsize(origleft + (DEFSIZE+2)*colwidth,
  			origtop + (DEFSIZE+2)*rowheight);
--- 222,228 ----
  {
  	EVENT e;
  	
! 	winitargs(&argc, &argv);
  	init();
  	wsetdefwinsize(origleft + (DEFSIZE+2)*colwidth,
  			origtop + (DEFSIZE+2)*rowheight);
*** ../0.9.4/Appls/test/multiwin.c	Tue Oct 30 17:43:45 1990
--- Appls/test/multiwin.c	Thu Feb 28 10:34:54 1991
***************
*** 57,63 ****
  	int inew, iquit;
  	int stop= 0;
  	
! 	winitnew(&argc, &argv);
  	
  	mp= wmenucreate(1, "File");
  	inew= wmenuadditem(mp, "New", 'N');
--- 57,63 ----
  	int inew, iquit;
  	int stop= 0;
  	
! 	winitargs(&argc, &argv);
  	
  	mp= wmenucreate(1, "File");
  	inew= wmenuadditem(mp, "New", 'N');
*** ../0.9.4/Appls/test/test0.c	Mon Jun  6 23:19:31 1988
--- Appls/test/test0.c	Thu Feb 28 10:34:53 1991
***************
*** 6,12 ****
  	int argc;
  	char **argv;
  {
! 	winitnew(&argc, &argv);
  	wdone();
  	exit(0);
  }
--- 6,12 ----
  	int argc;
  	char **argv;
  {
! 	winitargs(&argc, &argv);
  	wdone();
  	exit(0);
  }
*** ../0.9.4/Appls/test/test1.c	Mon Jun  6 23:19:02 1988
--- Appls/test/test1.c	Thu Feb 28 10:34:53 1991
***************
*** 7,13 ****
  	char **argv;
  {
  	WINDOW *win;
! 	winitnew(&argc, &argv);
  	win= wopen("Basic test", (void (*)()) 0);
  	wclose(win);
  	wdone();
--- 7,13 ----
  	char **argv;
  {
  	WINDOW *win;
! 	winitargs(&argc, &argv);
  	win= wopen("Basic test", (void (*)()) 0);
  	wclose(win);
  	wdone();
*** ../0.9.4/Appls/test/test2.c	Tue Oct 30 17:44:00 1990
--- Appls/test/test2.c	Thu Feb 28 10:34:52 1991
***************
*** 14,20 ****
  	char **argv;
  {
  	WINDOW *win;
! 	winitnew(&argc, &argv);
  	win= wopen("Hello test", drawproc);
  	for (;;) {
  		EVENT e;
--- 14,20 ----
  	char **argv;
  {
  	WINDOW *win;
! 	winitargs(&argc, &argv);
  	win= wopen("Hello test", drawproc);
  	for (;;) {
  		EVENT e;
*** ../0.9.4/Appls/test/test3.c	Tue Oct 30 17:44:13 1990
--- Appls/test/test3.c	Thu Feb 28 10:34:52 1991
***************
*** 18,24 ****
  	WINDOW *win;
  	int width, height;
  	
! 	winitnew(&argc, &argv);
  	if (argc >= 3) {
  		int h= atoi(argv[1]), v= atoi(argv[2]);
  		wsetdefwinpos(h, v);
--- 18,24 ----
  	WINDOW *win;
  	int width, height;
  	
! 	winitargs(&argc, &argv);
  	if (argc >= 3) {
  		int h= atoi(argv[1]), v= atoi(argv[2]);
  		wsetdefwinpos(h, v);
*** ../0.9.4/Appls/test/test4.c	Tue Oct 30 17:44:28 1990
--- Appls/test/test4.c	Thu Feb 28 10:34:52 1991
***************
*** 20,26 ****
  	int width, height;
  	int stop= 0;
  	
! 	winitnew(&argc, &argv);
  	if (argc >= 3) {
  		int h= atoi(argv[1]), v= atoi(argv[2]);
  		wsetdefwinpos(h, v);
--- 20,26 ----
  	int width, height;
  	int stop= 0;
  	
! 	winitargs(&argc, &argv);
  	if (argc >= 3) {
  		int h= atoi(argv[1]), v= atoi(argv[2]);
  		wsetdefwinpos(h, v);
*** ../0.9.4/Appls/test/test5.c	Tue Oct 30 17:44:42 1990
--- Appls/test/test5.c	Thu Feb 28 10:34:52 1991
***************
*** 46,52 ****
  	char **argv;
  {
  	WINDOW *win;
! 	winitnew(&argc, &argv);
  	win= wopen("Hello test", drawproc);
  	for (;;) {
  		EVENT e;
--- 46,52 ----
  	char **argv;
  {
  	WINDOW *win;
! 	winitargs(&argc, &argv);
  	win= wopen("Hello test", drawproc);
  	for (;;) {
  		EVENT e;
*** ../0.9.4/Appls/test/testpollevent.c	Tue Oct 30 17:45:09 1990
--- Appls/test/testpollevent.c	Thu Feb 28 10:34:51 1991
***************
*** 11,17 ****
  {
  	WINDOW *win;
  	
! 	winitnew(&argc, &argv);
  	win = wopen("Test poll event", drawproc);
  	for (;;) {
  		if (wpollevent(&ev)) {
--- 11,17 ----
  {
  	WINDOW *win;
  	
! 	winitargs(&argc, &argv);
  	win = wopen("Test poll event", drawproc);
  	for (;;) {
  		if (wpollevent(&ev)) {
*** ../0.9.4/Appls/tetris/tetris.c	Tue Oct 30 17:46:09 1990
--- Appls/tetris/tetris.c	Thu Feb 28 10:34:51 1991
***************
*** 726,732 ****
  	
  	time(&t);
  	srand((short)t ^ (short)(t>>16));
! 	winitnew(&argc, &argv);
  	if (wlineheight() == 1) {
  		alfa = 1;
  		sqwidth = 2;
--- 726,732 ----
  	
  	time(&t);
  	srand((short)t ^ (short)(t>>16));
! 	winitargs(&argc, &argv);
  	if (wlineheight() == 1) {
  		alfa = 1;
  		sqwidth = 2;
*** ../0.9.4/Ports/mac/README	Wed Aug  8 16:05:18 1990
--- Ports/mac/README	Thu Feb 28 13:49:37 1991
***************
*** 1,92 ****
! [Last modified on Fri Apr 14 15:02:38 MET DST 1989 by guido]
  
! Getting STDWIN to work on the Macintosh
  
! Revised edition for THINK C 3.01
  
! The following instructions assume you are using THINK C 3.01.  In fact
! the code was once carefully tweaked to work with MPW as well as with
! LightspeedC (most of the development was originally done under MPW, then
! it was ported to LightspeedC 2.15), but this property may be lost.  It
! shouldn't be too hard to fix this, however.  (In case you wondered how
! the sources manage to do '#ifdef macintosh' and '#ifdef LSC', read the
! file "configure.h" which defines them.)
  
! Turn off the <MacHeaders.h> option; the sources know exactly what files
! to include.
  
! Create two projects, stdwin.Proj and textedit.Proj.  (Actually, you may
! use the character `pi' (option-p) instead of Proj, but since I can't
! type that in this ASCII file, I will use Proj here.)  These will be
! the libraries you must include in other projects that use STDWIN.
! There are two libraries because together they are too big to fit in one
! segment.  To stdwin.Proj, add all files from the following directories:
! tools, gen, mac.  To textedit.Proj, add all files from the directory
! textedit.  The two projects should be together in a directory
! (=Folder), and the source directories (also the 'h' directory full of
! include files) should be subdirectories of this directory.
  
! In case you got this together with the Unix sources, here's an
! exhaustive list of the files that go into each project:
  
! Into stdwin.Proj:
! 	From gen:
! 		textbrk.c
! 	From tools:
! 		strdup.c
! 		getopt.c (*)
! 		memcpy.c (*)
! 	From mac:
! 		about.c
! 		argcargv.c
! 		caret.c
! 		cursor.c
! 		dialog.c
! 		dprintf.c
! 		draw.c
! 		event.c
! 		fullpath.c
! 		menu.c
! 		pstring.c
! 		scrap.c
! 		scroll.c
! 		stdwin.c
! 		timer.c
  
! Into textedit.Proj:
! 	From textedit:
! 		editwin.c
! 		textdbg.c
! 		textedit.c
! 		textlow.c
! 
! (*) These files are not used by STDWIN but by some demo and test
! applications; you may leave them out of the library and add them to the
! individual projects that need them.
! 
! "Make" each project (don't attempt to link).
! 
! To create a test application, a primitive editor called "miniedit", make
! a third project called miniedit.Proj, and add to it:
! - the projects you just created: stdwin.Proj and textedit.Proj
! - the LightspeedC libraries stdio, strings, unix, storage, storageu
!   and MacTraps
! - the source file miniedit.c from the test subdirectory.
! You may have to fiddle the segmentation to keep the segments from
! overflowing.
! 
! Running this project should create a simple text editor.  It supports
! multiple windows, cut and paste, and search and replace using regular
! expressions.  (This program has no relation with the MiniEdit demo from
! Inside Mac and the LightspeedC version thereof.  It uses a
! nearly-public-domain regular expression package by Henry Spencer, which
! I slightly modified to allow multi-line matching.)
! 
! Other single-file test programs from the same directory: bits.c (a
! toy bitmap editor); faced.c (a slightly more powerful bitmap editor)
! hello.c (a hello-world program); and klok.c (an analog clock; note that
! it needs the math library).  In fact these examples (except of course
! miniedit) can do without using the textedit project.
! 
! Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam
! guido@cwi.nl or mcvax!guido or guido%cwi.nl@uunet.uu.net
--- 1,35 ----
! Using STDWIN on the Mac
  
! This assumes THINK C 4.0.  I believe you can make it work for THINK C
! 3.0, check for the symbol THINK_C_3_0 (especially in H/stdwconf.h).
! It also works for MPW 2.0, see ../mac_mpw.
  
! Copy the files from the following directories to the Mac:
! 	H
! 	Tools
! 	Gen
! 	Ports/mac
! 	Packs/textedit
! 	Appls/miniedit (for testing)
  
! Make two projects, stdwin.<pi> and textedit.<pi> (<pi> is the letter
! pi, Option-p).  All of STDWIN together is too big for one segment, and
! the textedit module is not used by all applications.
  
! Project stdwin.<pi> receives all sources from Tools, Gen and
! Ports/mac; textedit.<pi> receives those from Packs/textedit.
  
! Turn off <MacHeaders>; the sources know exactly which files to include.
! (To speed up compilation you can rename "macwin.h" and precompile it,
! placing the output in "macwin.h".  This is completely optional.)
  
! Compile the sources in each project.  Don't attempt to link.
  
! To test, make a project miniedit.<pi> and add all sources from
! Appls/miniedit.  Add the ANSI and MacTraps libraries and the
! stdwin.<pi> and textedit.<pi> projects you just created.  (Probably
! everything in its own segment.)  You now have a simple editor with
! regular expression search facility.  Study the source to learn more
! about using stdwin.
  
! Good luck!
*** ../0.9.4/Ports/mac/about.c	Thu Feb 21 13:39:40 1991
--- Ports/mac/about.c	Thu Feb 28 12:48:31 1991
***************
*** 16,22 ****
     Also see your THINK C licence.
  */
  char *about_message=
! 	"STDWIN version 0.9.4 (using THINK C 4.0)\r\r\
  Copyright \251 1988, 1989, 1990 Stichting Mathematisch Centrum, \
  Amsterdam\r\
  Written by Guido van Rossum (guido@cwi.nl)\r\
--- 16,22 ----
     Also see your THINK C licence.
  */
  char *about_message=
! 	"STDWIN version 0.9.5 (using THINK C 4.0)\r\r\
  Copyright \251 1988, 1989, 1990 Stichting Mathematisch Centrum, \
  Amsterdam\r\
  Written by Guido van Rossum (guido@cwi.nl)\r\
*** ../0.9.4/Ports/x11/amtimer.c	Thu Oct 18 13:58:38 1990
--- Ports/x11/amtimer.c	Thu Feb 28 10:42:42 1991
***************
*** 143,149 ****
  	}
  }
  
! semaphore *_wsema; /* Global, used by winitnew() */
  
  /* Interface to specify the semaphore used by XamBlock().
     *** This must be called before calling winit[new]() !!! ***
--- 143,149 ----
  	}
  }
  
! semaphore *_wsema; /* Global, used by winit() */
  
  /* Interface to specify the semaphore used by XamBlock().
     *** This must be called before calling winit[new]() !!! ***
*** ../0.9.4/Ports/x11/general.c	Tue Feb 19 10:47:59 1991
--- Ports/x11/general.c	Thu Feb 28 10:42:43 1991
***************
*** 173,179 ****
     You can also set the environment variable RESOURCE_NAME. */
  
  
! XrmDatabase db = NULL; /* Passed between wargs() and winit() */
  
  /* Part one of the initialization -- process command line arguments */
  
--- 173,180 ----
     You can also set the environment variable RESOURCE_NAME. */
  
  
! static XrmDatabase db = NULL; /* Passed between wargs() and winit() */
! static int wargs_called; /* Set when wargs is called */
  
  /* Part one of the initialization -- process command line arguments */
  
***************
*** 185,190 ****
--- 186,195 ----
  	char **argv= *pargv;
  	char *value;
  	
+ 	if (wargs_called)
+ 		_wfatal("wargs: called more than once");
+ 	wargs_called = 1;
+ 	
  	/* Get the program name (similar to basename(argv[0])) */
  	
  	if (*pargc > 0 && argv[0] != NULL && argv[0][0] != EOS) {
***************
*** 254,260 ****
  
  	/* Call wargs() with dummy arguments if not already called */
  
! 	if (db == NULL) {
  		static char* def_args[]= {"stdwin", (char*)NULL};
  		int argc= 1;
  		char **argv= def_args;
--- 259,265 ----
  
  	/* Call wargs() with dummy arguments if not already called */
  
! 	if (!wargs_called) {
  		static char* def_args[]= {"stdwin", (char*)NULL};
  		int argc= 1;
  		char **argv= def_args;
*** ../0.9.4/Ports/x11/window.c	Tue Feb 19 10:48:05 1991
--- Ports/x11/window.c	Thu Feb 28 10:42:44 1991
***************
*** 256,261 ****
--- 256,265 ----
  			else if (flags & (WidthValue|HeightValue))
  				sizehints.flags |= USSize;
  			
+ #if 1
+ 			/* XXX This doesn't compile in R3.
+ 			   It's safe to take it out. */
+ 			
  			/* Derive the gravity hint from the geometry */
  			
  			if ((flags & XNegative) || (flags & YNegative)) {
***************
*** 272,278 ****
  					sizehints.win_gravity =
  						SouthWestGravity;
  			}
! 			
  			/* XXX Do we need a resource to specify the min
  			   size (or base size), max size and size
  			   increment?  Better to let the application
--- 276,282 ----
  					sizehints.win_gravity =
  						SouthWestGravity;
  			}
! #endif			
  			/* XXX Do we need a resource to specify the min
  			   size (or base size), max size and size
  			   increment?  Better to let the application
*** /dev/null	Thu Feb 28 13:09:24 1991
--- Doc/README	Thu Feb 28 12:56:16 1991
***************
*** 0 ****
--- 1,12 ----
+ Unfortunately the documentation for STDWIN is in a sorry state.
+ There is nothing here that even remotely resembles a user manual;
+ "paper.ms" comes closest to a full description.
+ 
+ ABOUT		the old STDWIN blurb that I used to mail out
+ paper.ms	the original STDWIN report
+ seldoc.ms	describes using X11 Selections and Cut Buffers in STDWIN
+ macros.ms	macrose used by seldoc.ms
+ vtrmdoc.ms	describes the VTRM package used by ../Ports/alfa
+ man/		manpages for dpv, packages and X11 stdwin
+ 
+ --Guido
*** /dev/null	Thu Feb 28 13:09:24 1991
--- Ports/msdos/README	Thu Feb 28 11:30:38 1991
***************
*** 0 ****
--- 1,4 ----
+ Sorry, there is no real STDWIN port for MS-DOS yet.  What you can is
+ to port the alfa version with the help of the file "ptrm.c" in this
+ directory, which is a substitute (using the MS-DOS console driver) for
+ the VTRM module used by the alfa version for all its tty I/O.