[net.eunice] getting 2.10.2 up on Eunice

libes@nbs-amrf.UUCP (Don Libes) (05/18/85)

Last week, I asked if anyone had brought up 2.10.2 news under Eunice and
got no takers, so here's my comments, having brought it up.

My first comment is that the 2.10.2 is far and away better than 2.10.1
and its a lot easier to bring up.  2.10.1 took me 2 weeks of hacking.
This time it only took me 2 days.  Thanks to whoever worked on it.  (But
why isn't there an undigestify in vnews???)

It is apparent that people who added the VMS/Eunice defs were guessing
the behavior of VMS.  The reason I think this is because when I turned
on the code, it didn't even compile!  On the other hand, the changes,
for the most part, were minor.  You are good guessers (or maybe Eunice
is a good emulator).

Ok, now the list of bugs.

In Makefile, the "ln"s must be changed to "cp"s.

You should use the V7 defs, not the 4.1 as I had originally thought.  I
have no idea why but there is a lot of stuff turned on by the 4.1 flags,
that seems like its from 4.2 or SysIII (thanks to Guy for pointing this
out).

You should add 
#define SHELL "/bin/sh"
to defs.h.  The csh does not exit after processing its arguments with
the -c option.  Is this a Eunice-csh bug?

Add the declaration
struct passwd *getpwnam();	to fullname.c

In ifuncs.c, the idlock() has a while loop that changes to an if when
VMS is def'ed.  Unfortunately, there is a corresponding break that now
becomes illegal.  Change it to a goto to just get out of the if
statement.

In lock(), the following line appears:
	fprintf(stderr,"%s: %s\n", Progname, msg);
but neither Progname nor msg are defined.  Change it to:
	fprintf(stderr,"lock(): News system locked up\n");

A very nasty error is the construct:
	for (i=3;i<20;i++) close(i);
which appears in a few places (inews.c, visual.c).  I don't know why but
this does odd things to the environment.  Stick in an fstat(), so you
don't close invalid file descriptors.

localize() had some special Eunice code that was missing some
declarations.
	int f1, f2;
will do fine at the beginning of the for loop where they are used.
In the same special code, "article" appears which should be "ARTICLE"
Several lines later,
	write(f2,afline,r);
should be
	write(fd,afline,e);

rparams.h had BITMAPSIZE commented out.  I don't know why.  Uncomment it.

virtterm.c had MAXPLEN defined to be 24.  This controls the maximum size
of the screen and should be larger for terminals like Suns which are 34.

In vsave, after it is determined that we are going to simply write that
article out to a file, add the following code, to produce VMS compatible
files.

#ifdef VMS
	if (isnew && !isprogram) {
		if (0 >= (fd = creat(fname,0777,"txt"))) {
			msg("Cannot open %s",fname);
			goto out;
		}
		ufp = fdopen(fd,"w");	/* assume this works - DEL */
	} else
#endif VMS
	if (ufp = fopen(fname, ......



Well, I hope someone gets some use out of this.
Don Libes	{seismo,umcp-cs}!nbs-amrf!libes