home *** CD-ROM | disk | FTP | other *** search
- From: guido@cwi.nl (Guido van Rossum)
- Newsgroups: alt.sources
- Subject: stdwin temporary patch, and note
- Message-ID: <3020@charon.cwi.nl>
- Date: 25 Feb 91 16:02:28 GMT
-
- There is a small problem with the stdwin 0.9.4 that I put on wuarchive
- (see announcement in alt.sources.d). Programs called without any X
- options would not find resources specified in your .Xresources file.
- The diff below fixes this.
-
- There is another problem with the distribution that is easier
- explained than fixed by patches: all calls to winitnew() in the test
- applications should really be calls to winitargs() with the same
- arguments. (This shows how much I test before putting out a
- distribution. :-)
-
- Finally, there is a section of code in window.c which doesn't compile
- on X11R3: it references PWinGravity and win_gravity which aren't
- defined in R3. If this bites you, you can comment out this section
- with no bad conseqences.
-
- --
- Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
- Honary Member, Royal Society for Putting Things on Top of Other Things
-
- Here is the patch (use patch -p!):
-
- *** .../stdwin-dist/stdwin/Ports/x11/general.c Tue Feb 19 10:47:59 1991
- --- Ports/x11/general.c Mon Feb 25 14:26:35 1991
- ***************
- *** 173,179 ****
- You can also set the environment variable RESOURCE_NAME. */
-
-
- ! XrmDatabase db = NULL; /* Passed between wargs() and winit() */
-
- /* Part one of the initialization -- process command line arguments */
-
- --- 173,180 ----
- You can also set the environment variable RESOURCE_NAME. */
-
-
- ! static XrmDatabase db = NULL; /* Passed between wargs() and winit() */
- ! static int wargs_called; /* Set when wargs is called */
-
- /* Part one of the initialization -- process command line arguments */
-
- ***************
- *** 185,190 ****
- --- 186,195 ----
- char **argv= *pargv;
- char *value;
-
- + if (wargs_called)
- + _wfatal("wargs: called more than once");
- + wargs_called = 1;
- +
- /* Get the program name (similar to basename(argv[0])) */
-
- if (*pargc > 0 && argv[0] != NULL && argv[0][0] != EOS) {
- ***************
- *** 254,273 ****
-
- /* Call wargs() with dummy arguments if not already called */
-
- ! if (db == NULL) {
- static char* def_args[]= {"stdwin", (char*)NULL};
- int argc= 1;
- char **argv= def_args;
- wargs(&argc, &argv);
- ! }
-
- /* Open the display, die if we can't */
-
- _wd= XOpenDisplay(_wdisplayname);
- if (_wd == NULL) {
- ! _wfatal("winit: can't open display (%s)",
- ! _wdisplayname ? _wdisplayname :
- ! getenv("DISPLAY") ? getenv("DISPLAY") : "<none>");
- }
-
- #ifdef AMOEBA
- --- 259,279 ----
-
- /* Call wargs() with dummy arguments if not already called */
-
- ! if (!wargs_called) {
- static char* def_args[]= {"stdwin", (char*)NULL};
- int argc= 1;
- char **argv= def_args;
- + _wdebug(0, "winit: wargs not called, faking argv[0]=stdwin");
- wargs(&argc, &argv);
- ! }
-
- /* Open the display, die if we can't */
-
- _wd= XOpenDisplay(_wdisplayname);
- if (_wd == NULL) {
- ! _wfatal("winit: can't open display (%s)",
- ! _wdisplayname ? _wdisplayname :
- ! getenv("DISPLAY") ? getenv("DISPLAY") : "<none>");
- }
-
- #ifdef AMOEBA
- ***************
- *** 274,280 ****
- /* Set the semaphore. This must be done before doing anything
- else with the connection. */
- if (_wsema != NULL)
- ! XamSetSema(_wd, _wsema);
- #endif
-
- /* Turn on synchronous mode if required.
- --- 280,286 ----
- /* Set the semaphore. This must be done before doing anything
- else with the connection. */
- if (_wsema != NULL)
- ! XamSetSema(_wd, _wsema);
- #endif
-
- /* Turn on synchronous mode if required.
- ***************
- *** 282,288 ****
- since some bugs disappear in synchronous mode! */
-
- if (getoption(db, "synchronous", "Synchronous") != NULL)
- ! XSynchronize(_wd, True);
-
- /* Call XGetDefault() once. We don't use it to get our
- defaults, since it doesn't let the caller specify the class
- --- 288,294 ----
- since some bugs disappear in synchronous mode! */
-
- if (getoption(db, "synchronous", "Synchronous") != NULL)
- ! XSynchronize(_wd, True);
-
- /* Call XGetDefault() once. We don't use it to get our
- defaults, since it doesn't let the caller specify the class
- ***************
- *** 301,313 ****
-
- value= _wgetdefault("debugLevel", "DebugLevel");
- if (value != 0) {
- ! int k= atoi(value);
- ! if (k > _wdebuglevel) {
- ! _wtracelevel= _wdebuglevel= k;
- ! _wdebug(1, "winit: new debuglevel %d (%s)",
- ! _wdebuglevel, value);
- ! XSynchronize(_wd, True);
- ! }
- }
-
- /* Merge the command line options with the defaults database.
- --- 307,319 ----
-
- value= _wgetdefault("debugLevel", "DebugLevel");
- if (value != 0) {
- ! int k= atoi(value);
- ! if (k > _wdebuglevel) {
- ! _wtracelevel= _wdebuglevel= k;
- ! _wdebug(1, "winit: new debuglevel %d (%s)",
- ! _wdebuglevel, value);
- ! XSynchronize(_wd, True);
- ! }
- }
-
- /* Merge the command line options with the defaults database.
-