I backed out some of the changes, but it should compile and run on VMS.
I removed the changes that guarantee that the scratch files get unique
names; I did this because the resulting filenames would not work on
some systems, and because if this is a problem I feel the correct
solution would be to make sure each user is actually running in the
correct unique directory, rather than changing the names of all of the
temporary files that dvips might create.   -tgr

Original message:

From: "Edward J. Groth" <groth@PUPGG.PRINCETON.EDU>
To: doyle@mmm.lanl.gov, rokicki@CS.Stanford.EDU
CC: groth@PUPGG.PRINCETON.EDU
Message-ID: <009A5364.5D7EC83B.21977@PUPGG.PRINCETON.EDU>
Subject: vms port and mods of hyper dvips 5.58
Content-Type: text
Content-Length: 155227
Status: RO

To: Mark Doyle and Tomas Rokicki

I've picked up dvips version 5.58 from LANL, with Mark's hps
modifications. I've ported (reported?) this to VMS. Below is a
summary of my changes, followed by a copy of each changed
routine (all changes are annotated with EJG). 

(It looks like whoever was keeping the vms port going hasn't
worked on it for a while.)

Thanks for the good work!

				- Ed





EJG 08-Jul-1996

This directory contains dvips 5.58 hacked by Mark Doyle to put in
mods for hyperps and hacked by me to make sure it ports to VMS.

This was obtained by following links from http://xxx.lanl.gov/hypertex
in early July, 1996.

Dvips has been made for vms v6.2 (alpha and vax) using DEC C
v5.0.

Main changes I made:

******
dvips.c

include subdirectory [.vms] where vmscli.c is included.

get process id and use in constructing file names
dvips_h_pidxxxxx.tmp and dvips_b_pidxxxxx.tmp to replace head.tmp
and body.tmp, so we don't get a name collision if two users are
using the same scratch space. Change all references to these
names to reference the variables holding the new names.

******
hps.c

replace head.tmp and body.tmp as above.

replace ERROR with ERROR_HPS to avoid collision with error()
function. Question: why us a boolean variable to represent a
constant?

after the former head.tmp and body.tmp files are copied to the
output, they are deleted. (neatness)


******
output.c

replace head.tmp and body.tmp as above. Required a little bit of
extra logic when testing to see if the output file is the former
head.tmp (so we don't put in a \n). Don't want to do the test if
the HPS_FLAG hasn't been set.

******
dvips.h

include subdirectory [.vms] where vms.h is included.

******
[.vms]vmscli.c

add qualifiers for new options since this file was last updated.

fix up some bugs in qualifiers.

******
[.vms]dvips.cld

add qualifiers for new options since this file was last updated.

fix up some bugs in qualifiers.

******
[.vms]dvips.hlp

add help for new qualifiers added above.

make help agree with what the qualifiers actually do. For
example, the /filter qualifier, sends the output to stdout, but
still requires an input file (it will not read from stdin).

******
[.vms]newmake.com

Made from [.vms]make.com. Don't prompt for options - all
hardwired as defaults, except fontlib is turned off. HPS is
defined in all cc's, and /standard=vaxc is added to all cc's. 

hps.c is included in the compile and link steps

options file is removed from the link steps.

/----------------------------------------------------------------------\
| Edward J. Groth            | Phone: 609-258-4361   Fax: 609-258-6853 |
| Physics Dept., Jadwin Hall | URL: http://pupgg.princeton.edu/~groth/ |
| Princeton University       | SPAN/HEPNET:  PUPGG::GROTH=44117::GROTH |
| Princeton, NJ 08544        | Internet:     groth@pupgg.princeton.edu |
\----------------------------------------------------------------------/

