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() ??)