1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
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() ??)
|