home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.sgi
- Path: sparky!uunet!munnari.oz.au!uniwa!cujo!lynchh
- From: lynchh@cs.curtin.edu.au (Huw Lynch)
- Subject: XView 3.0 Irix 4.0.5 & No-Locale Patch
- Message-ID: <lynchh.721406668@marsh>
- Summary: Patch to fix Irix 4.0.5 and XView 3.0 bug
- Keywords: XView 3.0 Irix 4.0.5 patch OsHasLocale
- Sender: news@cujo.curtin.edu.au (News Manager)
- Organization: Curtin University of Technology
- Date: Tue, 10 Nov 1992 14:44:28 GMT
- Lines: 207
-
- SUBJECT : XView 3.0 patch file that :
-
- 1. stops XView 3.0 hanging Irix 4.0.5 servers for _all_ client
- architectures.
-
- 2. For architectures that do not have OsHasLocale defined as YES
- in XView.cf it reads the resource files XView and <xv_app_name>
- from the system app-defaults file.
-
- This is not a patch specifically for Irix machines, all architectures should
- use it (especially those that are networked to Irix machines and those
- that do not have OsHasLocale defined).
-
- Action 1 is activated _only_ when the server identifies itself as a
- "Silicon Graphics" version 4 server. When the buggy server is
- detected the -Wfsdb option is forced (which fixes the problem).
-
- Action 2 is automatically activated and configured when OsHasLocale is
- defined as NO in config/XView.cf. Naturally the <xv_app_name>
- resources are given priority over those in XView and both have
- lower priority than the command line and defaults loaded on the
- server.
-
- Files affected :
-
- xview3/lib/libxview/server/server.c
- xview3/config/XView.tmpl
-
- To apply this patch do the following...
-
- cd <top of the XView 3.0 distribution>
- patch -p -s < <this file>
-
-
- This patch must be applied after the 2 official patches (Patch-01 & Patch-02).
-
- By,
-
- Huw Lynch
- ----------------------------------------------------------------------------
- lynchh@pride.cs.curtin.edu.au
- huw@gaius.curtin.edu.au
-
-
- *** ./config/XView.tmpl.old Mon Nov 9 17:17:21 1992
- --- ./config/XView.tmpl Fri Nov 6 15:40:19 1992
- ***************
- *** 99,106 ****
- --- 99,109 ----
- MKDIRHIER = BourneShell BinDir/mkdirhier
- #endif
-
- + /* HUW */
- #if OsHasLocale
- LOCALE_DEFINES = -DOS_HAS_LOCALE
- + #else
- + LOCALE_DEFINES = -DNO_LOCALE_APP_DIR=\"$(XAPPLOADDIR)\"
- #endif
-
- #if OsHasMmap
-
-
-
- *** ./lib/libxview/server/server.c.old Thu Oct 29 12:25:35 1992
- --- ./lib/libxview/server/server.c Mon Nov 9 13:29:31 1992
- ***************
- *** 36,41 ****
- --- 36,43 ----
- #include <X11/Xatom.h>
- #include <X11/Xresource.h>
-
- + #include <xview/fullscreen.h> /* HUW: For Irix 4.0.5 patch */
- +
- #define LIB_LOCALE "/lib/locale/"
-
- #ifdef _XV_DEBUG
- ***************
- *** 307,312 ****
- --- 309,337 ----
- xv_default_display = (Display *)server->xdisplay;
- first_server = TRUE;
- }
- +
- + /* HUW
- +
- + SGI Irix 4.0.5 patch.
- +
- + This patch will avoid hanging Irix 4.0.5 servers and will not affect
- + any other kind of server.
- +
- + Other special cases for other architectures could be chained on the
- + end of this if statement.
- +
- + */
- +
- + if (strcmp(ServerVendor(server->xdisplay),"Silicon Graphics") == 0) {
- +
- + if (VendorRelease(server->xdisplay) == 4) {
- + /* We have to set no grab mode to avoid hangs */
- + fullscreendebug = 1;
- + }
- +
- + }
- +
- +
- /*
- * Now that a server connection has been established, initialize the
- * defaults database. Note - This assumes that server_init will be called
- ***************
- *** 356,362 ****
- * Merge cmdline options into database
- * Note:
- * For the first server object created, this is actually
- ! * done twice. Once in xv_parse_cmdline() (in xv_init) and
- * once here.
- *
- * xv_merge_cmdline() has to be called in xv_parse_cmdline()
- --- 381,387 ----
- * Merge cmdline options into database
- * Note:
- * For the first server object created, this is actually
- ! * done twice. Once in xv_parse_cmdline() (in xv_
- * once here.
- *
- * xv_merge_cmdline() has to be called in xv_parse_cmdline()
- ***************
- *** 388,393 ****
- --- 413,419 ----
- server->localedir = NULL;
-
- #ifdef OS_HAS_LOCALE
- +
- if (_xv_use_locale) {
- int lc_ctype_read = FALSE;
-
- ***************
- *** 628,634 ****
- server->numeric = "C";
- server->timeformat = "C";
- }
- ! #endif OS_HAS_LOCALE
- /*
- * End of Sundae buyback code replacement for
- * defaults_load_db(filename);
- --- 654,715 ----
- server->numeric = "C";
- server->timeformat = "C";
- }
- ! /* #endif OS_HAS_LOCALE */
- ! #else
- !
- ! #ifdef NO_LOCALE_APP_DIR
- !
- ! /* HUW */
- !
- ! /* Our OS doesn't have a locale but we still want to load in the
- ! Xview system defaults and the application defaults. This is patch
- ! loads in the files XView and the file in xv_app_name from the
- ! system app-defaults directory if they exist.
- !
- ! Defaults in xv_app_name override those of specified in the XView
- ! file.
- !
- ! Both are overridden by any loaded above (i.e. the command line and
- ! defaults loaded on the server using xrdb).
- !
- ! */
- !
- ! /* Only application specific stuff if there is an app name given */
- ! if (xv_app_name) {
- !
- ! /* Construct the file name */
- ! strcpy(filename, NO_LOCALE_APP_DIR);
- ! strcat(filename,"/");
- ! strcat(filename, xv_app_name);
- !
- ! /* Load the application defaults if there are some */
- ! if (new_db = XrmGetFileDatabase(filename)) {
- !
- ! XrmMergeDatabases(server->db,&new_db);
- ! server->db = new_db;
- ! defaults_rdb = server->db;
- !
- ! }
- !
- ! }
- !
- ! /* Load the XView defaults */
- ! strcpy(filename,NO_LOCALE_APP_DIR);
- ! strcat(filename,"/XView");
- !
- ! if (new_db = XrmGetFileDatabase(filename)) {
- !
- ! XrmMergeDatabases(server->db,&new_db);
- ! server->db = new_db;
- ! defaults_rdb = server->db;
- !
- ! }
- !
- !
- ! #endif /* NO_LOCALE_APP_DIR */
- ! #endif /* not def OS_HAS_LOCALE */
- !
- !
- /*
- * End of Sundae buyback code replacement for
- * defaults_load_db(filename);
-