Stuff for ctwm: (By Peter Chang - peterc@v2.ph.man.ac.uk 3/5/94)
===============

Differences: No xwd colour bitmaps, no m4 preparsing, nor other Unix things,
             such as sound, pipes, etc.


Apart from getting the things compiled the following was changed:

in several files replaced strdup()
got rid of environ stuff
used lib$wait instead of select() for timing routines

[ A lot of things had to be declared to compile with no warning at all when
  you compile with DEC C				/Richard Levitte ]

ctwm.c:
- PIXMAP_DIRECTORY changed to "DECW$BITMAPS:"
- changed home to "[]" if getenv("HOME"); returns NULL
- hopefully Done() should exit gracefully from ctwm (by running
  decw$endsession)
  [ I have changed this to be optional.  Either DECW$ENDSESSION.EXE is
    run, or ctwm exits with the status code 20.  This is correctly handled
    by CTWM.COM						/Richard Levitte ]
- still no restart code
  [ This is no longer true.  See my comment below.	/Richard Levitte ]

events.c:
- changed CtwmNextEvent to wait for an event flag set by the
  AnimateHandler(). Bit of a hack, won't handle X events until the flags is
  set. Question: have I done this properly? See util.c.

menus.c:
- still no restart code
  [ This is no longer true.  ctwm will simply exit with status code 1.
    Since CTWM.COM checks for exactly that code to restart, things are
    nicely taken care of				/Richard Levitte ]

parse.c:
- SYSTEM_INIT_FILE changed to "DECW$SYSTEM_DEFAULTS:SYSTEM.CTWMRC"
- user config files should reside in "DECW$USER_DEFAULTS" (not "HOME")
  and now called ctwm.rc, ctwm.rc_(screen no), etc.

util.c:
- ExpandPixmapPath() now looks for "~foo.bar" = file at home or sys$login,
  "/disk$users:[joe]foo.bar" = absolute filename and any other "foo.bar" =
  a file in the directory defined by PixmapDirectory in config file.
- Animate*() now use system calls such as sys$setimr() to do the timing.
  Use two local events flag for the timing - a) for the sys$setimr()
  b) when the timer is sprung, the second flag is set.
  There are two variations, I tried to use:
      1) The 2nd flag is used by CtwmNextEvent() [in event.c] in a
         sys$waitfr() call which waits for this flag alone, ignoring
	 X events, I think.
      2) The 2nd flag [from cluster 0, = 17] is used by CtwmNextEvent()
         in a sys$wflor() call which waits for either this flag or the
	 ef associated with the X display.
  At the moment, I can't get method to work, it seems to ignore timer events.
- got rid of xwd stuff because there is no such stuff in the latest
  DecWindows.
  [ This is no longer true.  Since DECWindows version 6.0 (at least),
    you can find xwdfile.h in decw$utils:, which is plenty enough.
							/Richard Levitte ]

Stuff from twm conversion:
==========================

Apart from getting the things compiled the following was changed:

twm.c:

- call to fcntl() was removed
- add call to vms_do_init() inserted into main()
  [ Removed.  See below.				/Richard Levitte ]

lex.c:

- the way yyinput and yyoutput are initialized is changed (vms_do_init())
  [ Nope, not any longer.  I regenerated lex.c with GN bison for VMS,
    which does this correctly, thank you.		/Richard Levitte ]

Xmu/CloseHook.c:

- in _MakeExtension all code removed (where is XAddExtension() ??)
