jimke@uunet.uu.net (10/12/90)
Submitted-by: microsoft!jimke@uunet.uu.net Posting-number: Volume 9, Issue 87 Archive-name: sco.patches/part01 Here are the X11R4 patches for SCO Unix. Jim Kelly -rw-rw-r-- 1 jimke 8675 47012 Oct 7 12:33 part01.sh -rw-rw-r-- 1 jimke 8675 49446 Oct 7 12:33 part02.sh -rw-rw-r-- 1 jimke 8675 49407 Oct 7 12:33 part03.sh -rw-rw-r-- 1 jimke 8675 45336 Oct 7 12:33 part04.sh -rw-rw-r-- 1 jimke 8675 50780 Oct 7 12:33 part05.sh -rw-rw-r-- 1 jimke 8675 47244 Oct 7 12:33 part06.sh -rw-rw-r-- 1 jimke 8675 50887 Oct 7 12:33 part07.sh -rw-rw-r-- 1 jimke 8675 45262 Oct 7 12:34 part08.sh -rw-rw-r-- 1 jimke 8675 49877 Oct 7 12:34 part09.sh -rw-rw-r-- 1 jimke 8675 42485 Oct 7 12:34 part10.sh -rw-rw-r-- 1 jimke 8675 41805 Oct 7 12:34 part11.sh -rw-rw-r-- 1 jimke 8675 15231 Oct 7 12:34 part12.sh -- Cut me -- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 12)." # Contents: fix-14.sco01 # Wrapped by jimke@kellman on Sat Oct 6 18:10:25 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'fix-14.sco01' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fix-14.sco01'\" else echo shar: Extracting \"'fix-14.sco01'\" \(44260 characters\) sed "s/^X//" >'fix-14.sco01' <<'END_OF_FILE' X These 12 patches are changes to the vanilla X11R4 sources that X will allow them to be built/run on SCO Unix. You should first apply X the official patches fix-1 through fix-14. X X To apply these patches, cd to ./mit/.. and run X X patch -p0 < fix-14.sco01 X ... X patch -p0 < fix-14.sco12 X X The resulting sources will completely build only if you use gcc. For X details about using the other compilers, see ./mit/README.SCO X X Make the shell script ./mit/util/scripts/makeshlib executable X X cd ./mit X chmod +x ./util/scripts/makeshlib X X Build it X X make "BOOTSTRAPCFLAGS=-Dsco -DSYSV" World X X Install it X X make install X X Misc. X X ln /usr/bin/X11/Xibm /usr/bin/X11/X X mkdir /dev/X X chmod 777 /dev/X X X Run it X X xinit X X Curious? X X more ./mit/README.SCO X X Jim Kelly X Microsoft Corporation X uunet!microsoft!jimke X X*** ./mit-orig/Imakefile Thu Oct 4 17:11:01 1990 X--- ./mit/Imakefile Mon Sep 17 10:29:34 1990 X*************** X*** 16,23 **** X--- 16,29 ---- X #if BuildExamples X EXAMPLESDIRS = examples X #endif X+ #ifdef i386Architecture X SUBDIRS = config include lib extensions $(SERVERDIRSTOMAKE) \ X+ clients demos $(EXAMPLESDIRS) util X+ #else X+ SUBDIRS = config include lib extensions $(SERVERDIRSTOMAKE) \ X clients demos $(EXAMPLESDIRS) util doc X+ #endif X+ X LNINSTALLDIRS = $(EXTENSIONSRC) $(LIBSRC) X X MakeSubdirs($(SUBDIRS)) X*** ./mit-orig/README.SCO Thu Oct 4 18:00:11 1990 X--- ./mit/README.SCO Mon Oct 1 16:09:59 1990 X*************** X*** 0 **** X--- 1,214 ---- X+ The following is an extensive explanation of changes to the X11R4 X+ sources in order to run it on SCO UNIX System V/386 3.2. X+ X+ The starting point was patchlevel 14 plus changes done for ix386 by X+ roell@lan.informatik.tu-muenchen.de. It was not too difficult to X+ modify for SCO. roell did most of the real work. Having the kernel X+ sources helps. X+ X+ The compiler I ended up using was gcc. The SCO development system X+ contains two compilers, cc which is the ANSIish Xenix compiler and rcc X+ which is the AT&T Unix compiler. X+ X+ cc had a nasty bug where it seemed to compute the address of static X+ functions incorrectly. While debugging using sdb a "call" went right X+ smack in the middle of an instruction. I believe the culprit file was X+ ./lib/Xaw/Clock.c. X+ X+ cc has problems with internal assertion errors. A couple files would X+ not compile. The message says something like "internal error: Call X+ Microsoft Technical Support". This just shows you just how much a X+ rack-em-stack-em operation SCO is. X+ X+ rcc suffers because the SCO DevSys defines NULL as a void *. rcc does X+ not particularly like that. Many places NULL is redefined. rcc also X+ does not like ANSI stuff like volatile, const, inline. rcc cannot X+ statically initialize unions. It bagged on ./server/ddx/ibm/vgaData.c. X+ X+ That leaves us with gcc, which is capable of compiling all the X+ sources. However I've seen two instances where the three compilers X+ produce mutually incompatible code. X+ X+ ./server/ddx/mfb/mfb.h defines the struct mfbPrivGC which contains 3 X+ unsigned char followed by two unsigned bitfields, each one bit, X+ followed by a pointer and other stuff. X+ X+ struct bad_news { X+ unsigned char a; X+ unsigned char b; X+ unsigned char c; X+ unsigned x:1; X+ unsigned y:1; X+ char * p; X+ }; X+ X+ The alignment of the fields differed between the three ?cc's. cc put X+ padding after the 3 uchars and allocated a whole 4 bytes for x and y. X+ rcc and gcc on the other hand packed x and y in the byte following a, X+ b and c. The result is that the offset of p was 8 for cc and 4 for X+ rcc, gcc. Not a good situation when you compile different files with X+ different compilers. X+ X+ The other discrepancy was with functions that return an entire struct. X+ This shows up while using libdbm.a which has such functions. Basically X+ to handle such returns somebody has to allocate some temporary memory X+ to stick the return in. cc and rcc always allocated memory on the X+ stack and passed a "shadow" parameter of the address. gcc only does X+ this when the struct is greater than 8 bytes. Otherwise it returns the X+ whole thing in a couple registers. The datum struct used by libdbm.a X+ is 8 bytes so the gcc and cc/rcc calling sequences are different here. X+ Since libdbm.a is compiled using cc, those source files using it must X+ be compiled with cc or rcc. I choose rcc and modified Imakefile's so X+ that it used rcc in case gcc was being used. Files which needed it X+ were: X+ ./rgb/rgb.c X+ ./rgb/showrgb.c X+ ./server/os/4.2bsd/oscolor.c X+ X+ More compiler problems? sin() and cos() seemed to screw up the stack. X+ I probed the stack before and after cos() and somewhere it messed up a X+ previous stack frame. I don't see in the code how this could happen X+ nor could I reproduce it in a less complex program. So I wrote my own X+ sin() and cos(). A video screen ain't a high precision device so my X+ sin() and cos() ain't high precision functions. I simply split the X+ domain up into 360 pieces and assign a function value to each portion. X+ The only drawback is that it is included in libX11.a. So if you need X+ more precision in your app, you may have problems. X+ X+ R4 finally had support for System V clients. There is code for using X+ STREAMS instead of depending on sockets. The SCO TCP/IP package also X+ goes both ways with both STREAMS and socket interfaces for networking. X+ (I envision a day where every node will comprehend every known network X+ protocol and is SVR4, BSD4.4, OSF, X/OPEN and POSIX compliant). First X+ I compiled with TCPCONN and then with STREAMSCONN. Both should work as X+ long as I didn't screw things up. STREAMSCONN is the least common X+ denominator because you do not need TCP/IP for it to work. It uses X+ STREAMS ttys to do its IPC. However I did not even try to run an app X+ over the network. For that you need the attnameserver. So if you need X+ X for its network transparancy try compiling with TCPCONN. X+ X+ The original sources handled the two interfaces well. Since STREAMS X+ uses EAGAIN in place of Berkely's EWOULDBLOCK, EWOULDBLOCK is usually X+ redefined as EAGAIN. Rather than making this OS dependent (att, X+ sco,..) like the original code does, it should be transport dependent X+ (TCPCONN, STREAMSCONN). When you compile with sco and TCPCONN you must X+ leave EWOULDBLOCK alone because that is what the SCO sockets will X+ return. X+ X+ The SCO libsocket.a must be included if you use sockets. readv() and X+ writev() need emulating, libsocket.a does not include them. X+ X+ There is the typical dirent/direct question. As a general warning, the X+ SCO DevSys contains two incomatible versions of the directory X+ utilities opendir(), readdir(), ... The correct version is in libc.a X+ and this one goes with struct dirent defined in <sys/dirent.h>. The X+ other version is in libx.a and goes with struct direct defined in X+ <sys/dir.h>. Be careful that if you ever use -lx when linking and X+ your program uses struct dirent that you must explicitly load -lc X+ before -lx. Otherwise readdir() and the others will return misaligned X+ data. X+ X+ The font directories have too many fonts in them for /bin/sh to handle. X+ Somewhere in the Makefile it tries a 'for i in $(OBJS)' where $(OBJS) X+ is about 200 files. /bin/sh craps out. For now the 'lu' fonts are left X+ out of the build. X+ X+ I took a stab at making shared libraries the way the say to do it in X+ the manual. Needless to say it didn't come out well and the adventure X+ will continue. X+ X+ Because we have Microsoft serial mice around here, I changed the X+ default mouse and mouse device appropriately. X+ X+ Now we get down the nity grity OS dependent shit. There has been quite X+ a lot of press about binary compatibility among the System V/386 3.2 X+ Unixes. Let's set the record straight that this piece of software X+ compiled for SCO will only run on SCO Unix. (Not to mention software X+ that uses some of the Xenix or security system calls). X+ X+ First of all we must access the system console so that we can map X+ screen memory into our virtual space, ring the bell and play with the X+ lights on the keyboard. We must also map I/O ports because they are X+ just as protected. To open the system console you open your tty. X+ Typically you open "/dev/tty" which gives you a handle to your X+ controlling tty. The server has a problem with this becuase before X+ execing the server, xinit calls setpgrp() which loses the controlling X+ tty. Opening "/dev/tty" fails. So I tried figuring out my real tty, X+ i.e. /dev/tty01, /dev/tty02, etc., but opening either one of these X+ after calling setpgrp() fails too. I resolved this by moving the X+ setpgrp() from xinit to the server for SCO. Now in the server I open X+ "/dev/tty" and then setpgrp(). ./clients/xinit/xinit.c and X+ ./server/ddx/ibm/sysV/sysVInit.c X+ X+ We have a handle to the console. How is screen memory mapped. There X+ are three ioctl's documented in the System Administrators Reference X+ and release notes that claim to do this. MAPCONS works but only maps X+ the 80x25 charater portion. KDMAPDISP doesn't work at all. In fact it X+ panics the kernel every time (OOPS). MAP_CLASS is the choosen one. It X+ also maps some of the I/O ports. Not all of them though so I also had X+ to make a KDENABIO ioctl. ./server/ddx/ibm/vga/vgaOSD.c X+ X+ Ringing the console bell requires a KIOCSOUND ioctl. X+ X+ I revamped the VGA initialization code in X+ ./server/ddx/ibm/vga/vgaHWCntl.c. We have Video7 VRAM512 cards around X+ here and it would be nice if we could get 1024x768 out of them. The X+ -mode switch on the server will take 800x600v7 or 1024x768v7 and give X+ you the appropriate resolution. Other SVGA cards have slightly X+ different register definitions so more code would be necessary for X+ these. The 1024x768 mode isn't done yet. I am hoping that I won't have X+ to play around with the paging registers and use the 128k linearly. X+ If I have to, it'll be pretty slow. X+ X+ One last change was to the all important xterm. I used /dev/ttyp? for X+ psuedo-termianls. The att code uses the STREAMS tty, /dev/ptmx, but X+ the old SCO X11 xterm uses /dev/ttyp? and it works. Mine does to so I X+ ain't going to fix it. Here in lies the second major snafu of SCO I've X+ found. xterm opens "/dev/tty" to read the tty settings. Under certain X+ conditions this open causes the kernel to panic. X+ X+ I use twm as my window manager and like to use its menus to start new X+ xterms. The controlling tty for twm is /dev/ptmx because xinit loses X+ the the controlling tty and twm picks up /dev/ptmx to use it for IPC X+ with the server. When twm starts an xterm, xterm inherits this X+ controlling tty. When xterm goes to open "/dev/tty" (remember opening X+ /dev/tty returns a handle to your controlling tty), the kernel panics. X+ Could it be that the /dev/tty driver does not specify a clone open X+ when it redirects the open to /dev/ptmx (/dev/ptmx is a clone driver). X+ I don't know, but leaving out the open fixes the problem and you end X+ up with a working xterm. ./clients/xterm/main.c X+ X+ Typical modifications were made to all the configuration files. X+ X+ The build was done using 'make BOOTSTRAPCFLAGS=-Dsco -Datt -DSYSV" World'. X+ X+ xmh uses some Berkeley calls, alphasort, scandir and ftruncate. I have not X+ looked at xhost, I don't need it yet. Both are left out of the build. X+ X+ Notes about finished product: X+ X+ Alt-Cntl-Del is a "hot key" sequence that kills the server, no X+ questions asked. X+ X+ I have noticed only cosmetic bugs, small bits of garbage. I use the X+ server as a big virtual terminal, so I run mostly twm, xterms, oclock X+ and xeyes. If you use other stuff good luck. X+ X+ Need todo: X+ - Keyboard lights do not light up yet. The keys work, the lights just X+ don't come on. There is an ioctl to the console to do this KDSETLED. X+ (If it doesn't panic the kernel first). X+ X+ - The Alt-F? hot keys do not work yet. You cannot switch between the X+ twelve console tty's while the server is running. This will involve X+ catching the Alt-F? key combination, shutting the screen down, waiting X+ for the appropriate signal and then resotring the screen. X+ X+ - Finish 1024x768. X+ X+ - Shared libraries. X+ X+ September 8, 1990 X+ Jim Kelly X+ Microsoft Corporation X+ uunet!microsoft!jimke X*** ./mit-orig/clients/Imakefile Thu Oct 4 17:07:54 1990 X--- ./mit/clients/Imakefile Mon Sep 17 11:06:15 1990 X*************** X*** 2,20 **** X #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' X X #ifndef CrayArchitecture X! #ifdef ATTArchitecture X! OTHERSUBDIRS = xhost X #else X OTHERSUBDIRS = xdm xhost X #endif X #endif X X SUBDIRS = \ X appres bitmap listres oclock twm xauth xbiff xcalc xclipboard xclock \ X xditview xdpyinfo xedit xfd xinit xkill xload xlogo \ X xlsatoms xlsclients xlsfonts xlswins xmag xman xmh \ X xmodmap xpr xprop xrdb xrefresh xfontsel $(OTHERSUBDIRS) \ X xset xsetroot xstdcmap xterm xwd xwininfo xwud X X MakeSubdirs($(SUBDIRS)) X DependSubdirs($(SUBDIRS)) X--- 2,29 ---- X #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' X X #ifndef CrayArchitecture X! #ifdef i386Architecture X! OTHERSUBDIRS = X #else X OTHERSUBDIRS = xdm xhost X #endif X #endif X X+ #ifdef i386Architecture X SUBDIRS = \ X appres bitmap listres oclock twm xauth xbiff xcalc xclipboard xclock \ X xditview xdpyinfo xedit xfd xinit xkill xload xlogo \ X+ xlsatoms xlsclients xlsfonts xlswins xmag xman \ X+ xmodmap xpr xprop xrdb xrefresh xfontsel $(OTHERSUBDIRS) \ X+ xset xsetroot xstdcmap xterm xwd xwininfo xwud X+ #else X+ SUBDIRS = \ X+ appres bitmap listres oclock twm xauth xbiff xcalc xclipboard xclock \ X+ xditview xdpyinfo xedit xfd xinit xkill xload xlogo \ X xlsatoms xlsclients xlsfonts xlswins xmag xman xmh \ X xmodmap xpr xprop xrdb xrefresh xfontsel $(OTHERSUBDIRS) \ X xset xsetroot xstdcmap xterm xwd xwininfo xwud X+ #endif X X MakeSubdirs($(SUBDIRS)) X DependSubdirs($(SUBDIRS)) X*** ./mit-orig/clients/bitmap/bitmap.c Thu Oct 4 17:04:29 1990 X--- ./mit/clients/bitmap/bitmap.c Wed Sep 19 13:16:32 1990 X*************** X*** 9,14 **** X--- 9,17 ---- X static char *rcsid_bitmap_c = "$XConsortium: bitmap.c,v 1.67 89/12/12 12:03:19 jim Exp $"; X #endif X X+ #ifdef sco X+ #define NO_PROTOTYPE X+ #endif X #include <errno.h> X #include <stdio.h> X #include <ctype.h> X*************** X*** 22,27 **** X--- 25,34 ---- X #include <X11/Xatom.h> X #include <X11/Xmu/Drawing.h> X X+ #if defined(sco) && !defined(__GNUC__) X+ #undef NULL X+ #define NULL 0 X+ #endif X X #define TOP_MARGIN 10 X #define LEFT_MARGIN 10 X*** ./mit-orig/clients/twm/twm.h Thu Oct 4 17:06:56 1990 X--- ./mit/clients/twm/twm.h Sat Sep 15 13:34:46 1990 X*************** X*** 67,72 **** X--- 67,79 ---- X #define FALSE 0 X #endif X X+ #ifdef sco X+ #ifdef NULL X+ #undef NULL X+ #define NULL 0 X+ #endif X+ #endif X+ X #define NULLSTR ((char *) NULL) X X #define MAX_BUTTONS 5 /* max mouse buttons supported */ X*** ./mit-orig/clients/xauth/parsedpy.c Thu Oct 4 17:06:17 1990 X--- ./mit/clients/xauth/parsedpy.c Wed Sep 19 13:22:19 1990 X*************** X*** 35,40 **** X--- 35,45 ---- X #include <X11/Xauth.h> /* for FamilyLocal */ X #include <X11/Xmu/SysUtil.h> X X+ #if defined(sco) && !defined(__GNUC__) X+ #undef NULL X+ #define NULL 0 X+ #endif X+ X #ifdef UNIXCONN X #define UNIX_CONNECTION "unix" X #define UNIX_CONNECTION_LENGTH 4 X*** ./mit-orig/clients/xauth/process.c Thu Oct 4 17:06:17 1990 X--- ./mit/clients/xauth/process.c Wed Sep 19 13:20:46 1990 X*************** X*** 30,35 **** X--- 30,40 ---- X #include <signal.h> X #include <X11/X.h> /* for Family constants */ X X+ #if defined(sco) && !defined(__GNUC__) X+ #undef NULL X+ #define NULL 0 X+ #endif X+ X extern char *get_hostname(); X extern Bool nameserver_timedout; X X*** ./mit-orig/clients/xedit/commands.c Thu Oct 4 17:05:29 1990 X--- ./mit/clients/xedit/commands.c Sat Sep 15 13:37:34 1990 X*************** X*** 27,32 **** X--- 27,35 ---- X * without specific, written prior permission. X */ X X+ #ifdef sco X+ #define NO_PROTOTYPE X+ #endif X #include <stdio.h> X #include "xedit.h" X #ifdef CRAY X*** ./mit-orig/clients/xinit/xinit.c Thu Oct 4 17:05:31 1990 X--- ./mit/clients/xinit/xinit.c Sat Sep 15 13:38:26 1990 X*************** X*** 62,67 **** X--- 62,70 ---- X #ifdef M4310 /* Tektronix Pegasus */ X "Xpeg Tektronix Pegasus display on 431x series", X #endif X+ #ifdef sco /* SCO */ X+ "Xibm IBM VGA displays on SCO Unix", X+ #endif X NULL}; X X #ifndef XINITRC X*************** X*** 378,386 **** X serverpid = vfork(); X switch(serverpid) { X case 0: X- close(0); X- close(1); X- X /* X * don't hang on read/write to control tty X */ X--- 381,386 ---- X*************** X*** 400,406 **** X--- 400,415 ---- X * prevent server from getting sighup from vhangup() X * if client is xterm -L X */ X+ #ifndef sco X+ /* X+ * For SCO let server close stdin/out and do setpgrp() X+ * so that it can first open a tty and do its video X+ * thing. X+ */ X+ close(0); X+ close(1); X setpgrp(0,getpid()); X+ #endif X X Execute (server); X Error ("no server \"%s\" in PATH\n", server[0]); X*************** X*** 446,452 **** X * If your machine is substantially slower than 15 seconds, X * you can easily adjust this value. X */ X! alarm (15); X pause (); X alarm (0); X X--- 455,461 ---- X * If your machine is substantially slower than 15 seconds, X * you can easily adjust this value. X */ X! alarm (5); X pause (); X alarm (0); X X*** ./mit-orig/clients/xman/defs.h Thu Oct 4 17:06:08 1990 X--- ./mit/clients/xman/defs.h Sat Sep 15 13:42:14 1990 X*************** X*** 86,92 **** X * The command filters for the manual and apropos searches. X */ X X! #if ( defined(hpux) || defined(macII) || defined(CRAY) ) X # define NO_MANPATH_SUPPORT X #endif X X--- 86,92 ---- X * The command filters for the manual and apropos searches. X */ X X! #if ( defined(hpux) || defined(macII) || defined(CRAY) || defined(ix386) || defined(sco) ) X # define NO_MANPATH_SUPPORT X #endif X X*************** X*** 134,140 **** X * change it if you like. X */ X X! #if ( defined(UTEK) || defined(apollo) ) X # define SEARCHDIR CAT X # define LSEARCHDIR LCAT X #else X--- 134,140 ---- X * change it if you like. X */ X X! #if ( defined(UTEK) || defined(apollo) || defined(ix386) || defined(sco) ) X # define SEARCHDIR CAT X # define LSEARCHDIR LCAT X #else X*** ./mit-orig/clients/xman/man.c Thu Oct 4 17:06:07 1990 X--- ./mit/clients/xman/man.c Sat Sep 15 13:44:39 1990 X*************** X*** 470,476 **** X X while( (dp = readdir(dir)) != NULL ) { X char * name = dp->d_name; X! if( (name[0] == '.') || (index(name, '.') == NULL) ) X continue; X if( nentries >= nalloc ) { X nalloc += ENTRYALLOC; X--- 470,480 ---- X X while( (dp = readdir(dir)) != NULL ) { X char * name = dp->d_name; X! if( (name[0] == '.') X! #if ! defined(ix386) X! || (index(name, '.') == NULL) X! #endif X! ) X continue; X if( nentries >= nalloc ) { X nalloc += ENTRYALLOC; X*** ./mit-orig/clients/xrdb/xrdb.c Thu Oct 4 17:05:11 1990 X--- ./mit/clients/xrdb/xrdb.c Sat Sep 15 13:47:44 1990 X*************** X*** 35,40 **** X--- 35,43 ---- X * Extensively Modified: Phil Karlton, January 5, 1987 X */ X X+ #ifdef sco X+ #define NO_PROTOTYPE X+ #endif X #include <stdio.h> X #include <X11/Xlib.h> X #include <X11/Xatom.h> X*** ./mit-orig/clients/xterm/Imakefile Thu Oct 4 17:04:21 1990 X--- ./mit/clients/xterm/Imakefile Sat Sep 15 13:48:57 1990 X*************** X*** 67,73 **** X X AllTarget($(PROGRAMS)) X X! SpecialObjectRule(main.o, ,$(MAIN_DEFINES)) X SpecialObjectRule(misc.o, ,$(MISC_DEFINES)) X SpecialObjectRule(charproc.o, ,$(MISC_DEFINES)) X X--- 67,73 ---- X X AllTarget($(PROGRAMS)) X X! SpecialObjectRule(main.o, ,$(MAIN_DEFINES) ConnectionFlags) X SpecialObjectRule(misc.o, ,$(MISC_DEFINES)) X SpecialObjectRule(charproc.o, ,$(MISC_DEFINES)) X X*** ./mit-orig/clients/xterm/charproc.c Thu Oct 4 17:04:17 1990 X--- ./mit/clients/xterm/charproc.c Mon Sep 17 20:17:08 1990 X*************** X*** 63,69 **** X #include <X11/StringDefs.h> X #include "menu.h" X X! #if !defined(EWOULDBLOCK) && defined(EAGAIN) X #define EWOULDBLOCK EAGAIN X #endif X X--- 63,73 ---- X #include <X11/StringDefs.h> X #include "menu.h" X X! /* X! * SCO defines them both. Use EAGAIN only for STREAMSCONN X! */ X! #if (!defined(EWOULDBLOCK) || (defined(sco) && defined(STREAMSCONN))) && defined(EAGAIN) X! #undef EWOULDBLOCK X #define EWOULDBLOCK EAGAIN X #endif X X*** ./mit-orig/clients/xterm/main.c Thu Oct 4 17:04:20 1990 X--- ./mit/clients/xterm/main.c Mon Sep 17 20:15:09 1990 X*************** X*** 53,59 **** X #define USE_USG_PTYS X #endif X X! #ifndef att X #define USE_HANDSHAKE X #endif X X--- 53,59 ---- X #define USE_USG_PTYS X #endif X X! #if !defined(att) || defined(sco) X #define USE_HANDSHAKE X #endif X X*************** X*** 147,152 **** X--- 147,155 ---- X #include "menu.h" X #include <X11/StringDefs.h> X #include <X11/Shell.h> X+ #ifdef sco X+ #undef SIGTSTP X+ #endif X #ifdef SIGTSTP X #include <sys/wait.h> X #ifdef hpux X*************** X*** 581,586 **** X--- 584,597 ---- X ** implementation to implementation). X */ X #if defined(macII) || defined(att) X+ #if defined(ix386) X+ { X+ int i; X+ for (i = 0; i <= 2; i++) { X+ if (ioctl (i, TCGETA, &d_tio) == 0) break; X+ } X+ } X+ #endif X d_tio.c_iflag = ICRNL|IXON; X d_tio.c_oflag = OPOST|ONLCR|TAB3; X d_tio.c_cflag = B9600|CS8|CREAD|PARENB|HUPCL; X*************** X*** 903,909 **** X { X static int devindex, letter = 0; X X! #ifdef att X if ((*pty = open ("/dev/ptmx", O_RDWR)) < 0) { X return 1; X } X--- 914,920 ---- X { X static int devindex, letter = 0; X X! #if defined(att) && !defined(sco) X if ((*pty = open ("/dev/ptmx", O_RDWR)) < 0) { X return 1; X } X*************** X*** 1173,1182 **** X passedPty[1]; X X setgid (screen->gid); X! setuid (screen->uid); X! } else { X Bool tty_got_hung = False; X X /* X * Sometimes /dev/tty hangs on open (as in the case of a pty X * that has gone away). Simply make up some reasonable X--- 1184,1212 ---- X passedPty[1]; X X setgid (screen->gid); X! setuid (screen->uid); X! } else { X Bool tty_got_hung = False; X X+ #if defined(sco) && defined(STREAMSCONN) X+ X+ /* X+ * Here's one for the record books. When executing xterm by X+ * using twm's menus there seems to be a problem. Compiling SCO X+ * using STREAMSCONN means that the controlling tty for twm X+ * will end up being /dev/ptmx. Now we are running twm and we X+ * exec xterm. That means that /dev/ptmx becomes our X+ * controlling tty. Here we open up /dev/tty which checks for X+ * our controlling tty and opens that same inode (if we have a X+ * tty, which we do). Somewhere between there and the stropen() X+ * the kernel panics. Maybe it best if don't even try. X+ * Simulate having no tty. Maybe we should setpgrp() in twm to X+ * avoid other such nonsense from any other apps. X+ */ X+ X+ tty = -1; X+ errno = ENXIO; X+ #else X /* X * Sometimes /dev/tty hangs on open (as in the case of a pty X * that has gone away). Simply make up some reasonable X*************** X*** 1193,1198 **** X--- 1223,1229 ---- X errno = ENXIO; X } X signal(SIGALRM, SIG_DFL); X+ #endif X X /* X * Check results and ignore current control terminal if X*************** X*** 1381,1388 **** X--- 1412,1421 ---- X if (ioctl (ptyfd, I_PUSH, "ptem") < 0) { X SysError (2); X } X+ #ifndef ix386 X if (!getenv("CONSEM") && ioctl (ptyfd, I_PUSH, "consem") < 0) { X SysError (3); X+ #endif X } X if (ioctl (ptyfd, I_PUSH, "ldterm") < 0) { X SysError (4); X*** ./mit-orig/clients/xterm/screen.c Thu Oct 4 17:04:11 1990 X--- ./mit/clients/xterm/screen.c Sat Sep 15 14:10:30 1990 X*************** X*** 39,44 **** X--- 39,50 ---- X #include "ptyx.h" X #include "error.h" X X+ #ifdef sco X+ #include <sys/termio.h> X+ #include <sys/stream.h> X+ #include <sys/ptem.h> X+ #endif X+ X extern Char *calloc(), *malloc(), *realloc(); X extern void bcopy(); X extern void free(); X*** ./mit-orig/config/Imake.tmpl Thu Oct 4 17:10:24 1990 X--- ./mit/config/Imake.tmpl Sat Sep 15 14:14:32 1990 X*************** X*** 79,90 **** X #define HPArchitecture X #endif /* hpux */ X X! #ifdef att X #define MacroIncludeFile <att.cf> X #define MacroFile att.cf X #undef att X #define ATTArchitecture X #endif /* att */ X X #ifdef apollo X #define MacroIncludeFile <apollo.cf> X--- 79,104 ---- X #define HPArchitecture X #endif /* hpux */ X X! #if defined(att) && !defined(ix386) && !defined(sco) X #define MacroIncludeFile <att.cf> X #define MacroFile att.cf X #undef att X #define ATTArchitecture X #endif /* att */ X+ X+ #ifdef ix386 X+ #define MacroIncludeFile <ix386.cf> X+ #define MacroFile ix386.cf X+ #undef ix386 X+ #define i386Architecture X+ #endif /* ix386 */ X+ X+ #ifdef sco X+ #define MacroIncludeFile <sco.cf> X+ #define MacroFile sco.cf X+ #undef sco X+ #define i386Architecture X+ #endif /* sco */ X X #ifdef apollo X #define MacroIncludeFile <apollo.cf> X*** ./mit-orig/config/imake.c Thu Oct 4 17:10:26 1990 X--- ./mit/config/imake.c Sat Sep 15 14:16:11 1990 X*************** X*** 111,116 **** X--- 111,122 ---- X #include <sys/stat.h> X #include "imakemdep.h" X X+ #ifdef sco X+ #ifdef NULL X+ #undef NULL X+ #endif X+ #define NULL 0 X+ #endif X X #define TRUE 1 X #define FALSE 0 X*** ./mit-orig/config/imakemdep.h Thu Oct 4 17:10:29 1990 X--- ./mit/config/imakemdep.h Sat Sep 15 14:18:11 1990 X*************** X*** 29,34 **** X--- 29,38 ---- X #define imake_ccflags "-DSYSV -DUSG" X #endif X X+ #ifdef sco X+ #define imake_ccflags "-Dsco -DSYSV" X+ #endif X+ X #ifdef CRAY X #define imake_ccflags "-DSYSV -DUSG" X #endif X*************** X*** 117,122 **** X--- 121,130 ---- X #ifdef att X "-Datt", /* AT&T products */ X #endif X+ #ifdef sco X+ "-Dsco", /* SCO */ X+ "-DSYSV", X+ #endif X #ifdef aix X "-Daix", /* AIX instead of AOS */ X #ifndef ibm X*************** X*** 167,172 **** X--- 175,183 ---- X #endif X #ifdef att X {"att", "1"}, X+ #endif X+ #ifdef sco X+ {"sco", "1"}, X #endif X #ifdef mips X {"mips", "1"}, X*** ./mit-orig/config/ix386.cf Thu Oct 4 18:00:21 1990 X--- ./mit/config/ix386.cf Sat Sep 15 13:18:00 1990 X*************** X*** 0 **** X--- 1,45 ---- X+ /* X+ * SET VERSION NUMBERS BEFORE MAKING MAKEFILES; also, you'll need to install X+ * util/scripts/bsdinstall.sh before doing a "make install" X+ */ X+ #define SystemV YES X+ #define OSName Interactive 386/ix System V Release 3.2 X+ #define OSMajorVersion 3 X+ #define OSMinorVersion 2 X+ #define OPERATING_SYSTEM SysV X+ /**/# platform: $XConsortium: ix386.cf,v 1.0 90/03/10 15:39:46 jim Exp $ X+ /**/# operating system: OSName X+ /***************************************************************************** X+ * Platform-specfic parameters * X+ *****************************************************************************/ X+ #define RemoveTargetProgramByMoving YES X+ #define BootstrapCFlags -Dix386 -DSYSV X+ #define StandardDefines -Datt -Dix386 -DSYSV -DUSG -DUSE_ASM X+ #define StandardCppDefines -Datt -Dix386 -DSYSV -DUSG -DUSE_ASM X+ #define ExecableScripts NO X+ #define ExtraLoadFlags -lpt -lnsl_s -lc_s X+ #define HasVoidSignalReturn YES X+ #define NeedBerklibInXlib YES X+ #define ConnectionFlags -DSTREAMSCONN -DLOCALCONN X+ /* Local added to support 386/ix (tr,8.3.90) */ X+ #define HasNdbm YES X+ #define HasGcc YES X+ #define CcCmd gcc -O -DNOSTDHDRS -fstrength-reduce -fpcc-struct-return -fwritable-strings X+ #define CppCmd /usr/local/lib/gcc-cpp X+ #define LdCombineFlags -r X+ #define ManDir /usr/man/cat.X X+ #define ManDirectoryRoot /usr/man X+ #define ManSuffix man X+ #define UNCOMPRESSPATH /usr/local/bin/uncompress X+ #define DefaultUserPath .:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin X+ #define DefaultSystemPath .:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/etc X+ #define StripInstalledPrograms YES X+ #define LibraryCCOptions -DSHLIB X+ #define RanlibCmd $(SCRIPTSRC)/makeshlib X+ #define FontDefines -DFONT_SNF -DFONT_BDF -DCOMPRESSED_FONTS StandardDefines X+ #define BuildExamples NO X+ #define XibmServer Xibm X+ #define ibmIncludeVGA YES X+ /* #define Xix386Server Xi386 */ X+ #define BuildServer YES X+ #define ServerCDebugFlags /* -DTRACE_X */ X*** ./mit-orig/config/sco.cf Thu Oct 4 18:00:21 1990 X--- ./mit/config/sco.cf Wed Sep 19 13:50:24 1990 X*************** X*** 0 **** X--- 1,47 ---- X+ /* X+ * SET VERSION NUMBERS BEFORE MAKING MAKEFILES; also, you'll need to install X+ * util/scripts/bsdinstall.sh before doing a "make install" X+ */ X+ #define SystemV YES X+ #define OSName SCO Unix System V Release 3.2 X+ #define OSMajorVersion 3 X+ #define OSMinorVersion 2 X+ #define OPERATING_SYSTEM sysV X+ /**/# platform: $XConsortium: sco.cf,v 1.0 90/03/10 15:39:46 jim Exp $ X+ /**/# operating system: OSName X+ /***************************************************************************** X+ * Platform-specfic parameters * X+ *****************************************************************************/ X+ #define RemoveTargetProgramByMoving YES X+ #define BootstrapCFlags -Dsco -DSYSV X+ #define StandardDefines -Datt -Dsco -DSYSV -DUSG -DUSE_ASM X+ #define StandardCppDefines -Datt -Dsco -DSYSV -DUSG -DUSE_ASM X+ #define ExecableScripts NO X+ #define ExtraLoadFlags -lpt -lnsl_s -lc_s X+ #define HasVoidSignalReturn YES X+ #define NeedBerklibInXlib YES X+ #define ConnectionFlags -DSTREAMSCONN -DLOCALCONN X+ #define HasNdbm NO X+ #define HasGcc YES X+ #define HasRcc NO X+ #define CcCmd gcc X+ #define CppCmd /lib/cpp X+ #define LdCombineFlags -r X+ #define ManDir /usr/man/cat.X X+ #define ManDirectoryRoot /usr/man X+ #define ManSuffix man X+ #define UNCOMPRESSPATH /usr/bin/uncompress X+ #define DefaultUserPath .:/bin:/usr/bin:/usr/bin/X11:/usr/tools/bin:/usr/local/bin X+ #define DefaultSystemPath .:/bin:/usr/bin:/usr/bin/X11:/usr/tools/bin:/usr/local/bin:/etc X+ #define StripInstalledPrograms YES X+ /* #define LibraryCCOptions -DATTSHLIB */ X+ #define LibraryCCOptions X+ #define RanlibCmd $(SCRIPTSRC)/makeshlib X+ #define FontDefines -DFONT_SNF -DFONT_BDF -DCOMPRESSED_FONTS StandardDefines X+ #define BuildExamples NO X+ #define XibmServer Xibm X+ #define ibmIncludeVGA YES X+ #define BuildServer YES X+ #define ServerCDebugFlags /* -DTRACE_X */ X+ #define ServerDefines StandardDefines ExtensionDefines -DNO_FUNCTION_PROTOTYPES X+ #define InstallCmd $(SCRIPTSRC)/install.sh X*** ./mit-orig/demos/puzzle/puzzle.c Thu Oct 4 17:09:08 1990 X--- ./mit/demos/puzzle/puzzle.c Mon Sep 17 20:32:02 1990 X*************** X*** 419,425 **** X LogMoveSpace(first_x,first_y,last_x,last_y,shift_dir); X } X X! #ifdef USG X int gettimeofday (tvp, tzp) X struct timeval *tvp; X struct timezone *tzp; X--- 419,425 ---- X LogMoveSpace(first_x,first_y,last_x,last_y,shift_dir); X } X X! #if defined(USG) && !defined(sco) X int gettimeofday (tvp, tzp) X struct timeval *tvp; X struct timezone *tzp; X*** ./mit-orig/extensions/lib/Imakefile Thu Oct 4 17:09:49 1990 X--- ./mit/extensions/lib/Imakefile Sun Sep 16 22:43:09 1990 X*************** X*** 17,25 **** X CDEBUGFLAGS = LibraryCDebugFlags X INCLUDES = -I$(TOP) -I$(INCLUDESRC) -I$(XLIBSRC) -I../include X SRCS = globals.c extutil.c XMultibuf.c XShape.c $(SHMSRCS) \ X! MITMisc.c XTestExt1.c X OBJS = globals.o extutil.o XMultibuf.o XShape.o $(SHMOBJS) \ X! MITMisc.o XTestExt1.o X LINTLIBS = $(LINTXLIB) X X #if DebugLibXext && ProfileLibXext X--- 17,25 ---- X CDEBUGFLAGS = LibraryCDebugFlags X INCLUDES = -I$(TOP) -I$(INCLUDESRC) -I$(XLIBSRC) -I../include X SRCS = globals.c extutil.c XMultibuf.c XShape.c $(SHMSRCS) \ X! MITMisc.c XTestExt1.c sharedlib.c X OBJS = globals.o extutil.o XMultibuf.o XShape.o $(SHMOBJS) \ X! MITMisc.o XTestExt1.o sharedlib.o X LINTLIBS = $(LINTXLIB) X X #if DebugLibXext && ProfileLibXext X*** ./mit-orig/extensions/lib/MITMisc.c Thu Oct 4 17:09:49 1990 X--- ./mit/extensions/lib/MITMisc.c Sat Sep 15 14:20:07 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: MITMisc.c,v 1.1 89/10/08 19:37:46 rws Exp $ X * X*** ./mit-orig/extensions/lib/XMultibuf.c Thu Oct 4 17:09:50 1990 X--- ./mit/extensions/lib/XMultibuf.c Sat Sep 15 14:26:48 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: XMultibuf.c,v 1.22 89/12/12 13:49:36 rws Exp $ X * X*** ./mit-orig/extensions/lib/XShape.c Thu Oct 4 17:09:52 1990 X--- ./mit/extensions/lib/XShape.c Sat Sep 15 14:26:48 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: XShape.c,v 1.19 89/12/12 13:51:28 rws Exp $ X * X*** ./mit-orig/extensions/lib/XShm.c Thu Oct 4 17:09:48 1990 X--- ./mit/extensions/lib/XShm.c Sat Sep 15 14:28:10 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: XShm.c,v 1.10 89/12/08 18:16:09 converse Exp $ X * X*** ./mit-orig/extensions/lib/XTestExt1.c Thu Oct 4 17:09:51 1990 X--- ./mit/extensions/lib/XTestExt1.c Sat Sep 15 14:27:50 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * File: xtestext1lib.c X * X*** ./mit-orig/extensions/lib/extutil.c Thu Oct 4 17:09:50 1990 X--- ./mit/extensions/lib/extutil.c Sat Sep 15 14:27:50 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: extutil.c,v 1.8 89/12/10 22:54:38 jim Exp $ X * X*** ./mit-orig/extensions/lib/globals.c Thu Oct 4 17:09:50 1990 X--- ./mit/extensions/lib/globals.c Sat Sep 15 14:27:50 1990 X*************** X*** 1,3 **** X--- 1,4 ---- X+ #include "import.h" X /* X * $XConsortium: globals.c,v 1.1 89/10/03 17:25:16 jim Exp $ X * X*** ./mit-orig/extensions/lib/import.h Thu Oct 4 18:00:25 1990 X--- ./mit/extensions/lib/import.h Sun Sep 16 23:00:19 1990 X*************** X*** 0 **** X--- 1,236 ---- X+ /* X+ * Some hacks for shared libraries -- especially for 386/ix X+ * Thomas Roell, 16.4.90 X+ */ X+ #ifndef _Xext_import X+ #define _Xext_import X+ #ifdef ATTSHAREDLIB X+ #include <stdio.h> X+ #include <sys/types.h> X+ #include <time.h> X+ #include <pwd.h> X+ #include <X11/Xlib.h> X+ #include <X11/Xresource.h> X+ #include <X11/Xutil.h> X+ #include <X11/Intrinsic.h> X+ #include <X11/Shell.h> X+ X+ #define __fltused (* _libXext___fltused) X+ #define _ctype (* _libXext__ctype) X+ #define _filbuf (* _libXext__filbuf) X+ #define _flsbuf (* _libXext__flsbuf) X+ #define _fltused (* _libXext__fltused) X+ #define _iob (* _libXext__iob) X+ #define abs (* _libXext_abs) X+ #define access (* _libXext_access) X+ #define alarm (* _libXext_alarm) X+ #define asctime (* _libXext_asctime) X+ #define atof (* _libXext_atof) X+ #define atoi (* _libXext_atoi) X+ #define calloc (* _libXext_calloc) X+ #define chmod (* _libXext_chmod) X+ #define close (* _libXext_close) X+ #define creat (* _libXext_creat) X+ #define errno (* _libXext_errno) X+ #define exit (* _libXext_exit) X+ #define fclose (* _libXext_fclose) X+ #define fcntl (* _libXext_fcntl) X+ #define fgets (* _libXext_fgets) X+ #define fopen (* _libXext_fopen) X+ #define fprintf (* _libXext_fprintf) X+ #define fputs (* _libXext_fputs) X+ #define fread (* _libXext_fread) X+ #define free (* _libXext_free) X+ #define fseek (* _libXext_fseek) X+ #define ftell (* _libXext_ftell) X+ #define fwrite (* _libXext_fwrite) X+ #define getenv (* _libXext_getenv) X+ #define getlogin (* _libXext_getlogin) X+ #define getpwnam (* _libXext_getpwnam) X+ #define getpwuid (* _libXext_getpwuid) X+ #define getuid (* _libXext_getuid) X+ #define ioctl (* _libXext_ioctl) X+ #define link (* _libXext_link) X+ #define localtime (* _libXext_localtime) X+ #define malloc (* _libXext_malloc) X+ #define memcpy (* _libXext_memcpy) X+ #define memset (* _libXext_memset) X+ #define open (* _libXext_open) X+ #define perror (* _libXext_perror) X+ #define poll (* _libXext_poll) X+ #define printf (* _libXext_printf) X+ #define qsort (* _libXext_qsort) X+ #define rand (* _libXext_rand) X+ #define read (* _libXext_read) X+ #define realloc (* _libXext_realloc) X+ #define select (* _libXext_select) X+ #define signal (* _libXext_signal) X+ #define sleep (* _libXext_sleep) X+ #define sprintf (* _libXext_sprintf) X+ #define srand (* _libXext_srand) X+ #define sscanf (* _libXext_sscanf) X+ #define strcat (* _libXext_strcat) X+ #define strchr (* _libXext_strchr) X+ #define strcmp (* _libXext_strcmp) X+ #define strcpy (* _libXext_strcpy) X+ #define strlen (* _libXext_strlen) X+ #define strncmp (* _libXext_strncmp) X+ #define strncpy (* _libXext_strncpy) X+ #define strrchr (* _libXext_strrchr) X+ #define sys_errlist (* _libXext_sys_errlist) X+ #define sys_nerr (* _libXext_sys_nerr) X+ #define system (* _libXext_system) X+ #define times (* _libXext_times) X+ #define tmpnam (* _libXext_tmpnam) X+ #define toupper (* _libXext_toupper) X+ #define ulimit (* _libXext_ulimit) X+ #define uname (* _libXext_uname) X+ #define unlink (* _libXext_unlink) X+ #define write (* _libXext_write) X+ X+ #if defined(__STDC__) && !defined(NO_PROTOTYPE) X+ #else X+ X+ extern int __fltused; X+ extern unsigned char _ctype[]; X+ extern int _filbuf(); X+ extern int _flsbuf(); X+ extern int _fltused; X+ extern FILE *_iob; X+ extern int abs(); X+ extern int access(); X+ extern int alarm(); X+ extern int asctime(); X+ extern double atof(); X+ extern int atoi(); X+ extern char *calloc(); X+ extern int chmod(); X+ extern int close(); X+ extern int creat(); X+ extern int errno; X+ extern void exit(); X+ extern int fclose(); X+ extern int fcntl(); X+ extern char *fgets(); X+ extern FILE *fopen(); X+ extern int fprintf(); X+ extern int fputs(); X+ extern int fread(); X+ extern void free(); X+ extern int fseek(); X+ extern int ftell(); X+ extern int fwrite(); X+ extern char *getenv(); X+ extern int getlogin(); X+ extern struct passwd *getpwnam(); X+ extern struct passwd *getpwuid(); X+ extern int getuid(); X+ extern char *(* _libXext_index)(); X+ extern int ioctl(); X+ extern int link(); X+ extern struct tm *localtime(); X+ extern char *malloc(); X+ extern char *memcpy(); X+ extern char *memset(); X+ extern int open(); X+ extern void perror(); X+ extern int poll(); X+ extern int printf(); X+ extern int qsort(); X+ extern int rand(); X+ extern int read(); X+ extern char *realloc(); X+ extern int select(); X+ extern void (*signal())(); X+ extern int sleep(); X+ extern int sprintf(); X+ extern void srand(); X+ extern int sscanf(); X+ extern int (* _libXext_stat)(); X+ extern char *strcat(); X+ extern char *strchr(); X+ extern int strcmp(); X+ extern char *strcpy(); X+ extern size_t strlen(); X+ extern int strncmp(); X+ extern char *strncpy(); X+ extern char *strrchr(); X+ extern char *sys_errlist[]; X+ extern int sys_nerr; X+ extern int system(); X+ extern struct tm *(*_libXext_time)(); X+ extern int times(); X+ extern char *tmpnam(); X+ extern int toupper(); X+ extern int ulimit(); X+ extern int uname(); X+ extern int unlink(); X+ extern int write(); X+ X+ #endif X+ X+ #define XESetCloseDisplay (* _libXext_XESetCloseDisplay) X+ #define XESetCopyGC (* _libXext_XESetCopyGC) X+ #define XESetCreateFont (* _libXext_XESetCreateFont) X+ #define XESetCreateGC (* _libXext_XESetCreateGC) X+ #define XESetError (* _libXext_XESetError) X+ #define XESetErrorString (* _libXext_XESetErrorString) X+ #define XESetEventToWire (* _libXext_XESetEventToWire) X+ #define XESetFlushGC (* _libXext_XESetFlushGC) X+ #define XESetFreeFont (* _libXext_XESetFreeFont) X+ #define XESetFreeGC (* _libXext_XESetFreeGC) X+ #define XESetWireToEvent (* _libXext_XESetWireToEvent) X+ #define XFlush (* _libXext_XFlush) X+ #define XFree (* _libXext_XFree) X+ #define XGetErrorDatabaseText (* _libXext_XGetErrorDatabaseText) X+ #define XIfEvent (* _libXext_XIfEvent) X+ #define XInitExtension (* _libXext_XInitExtension) X+ #define bcopy (* _libXext_bcopy) X+ #define _XAllocScratch (* _libXext__XAllocScratch) X+ #define _XEatData (* _libXext__XEatData) X+ #define _XFlush (* _libXext__XFlush) X+ #define _XGetScanlinePad (* _libXext__XGetScanlinePad) X+ #define _XGetBitsPerPixel (* _libXext__XGetBitsPerPixel) X+ #define _XInitImageFuncPtrs (* _libXext__XInitImageFuncPtrs) X+ #define _XRead (* _libXext__XRead) X+ #define _XReply (* _libXext__XReply) X+ #define _XSend (* _libXext__XSend) X+ #define _XSetLastRequestRead (* _libXext__XSetLastRequestRead) X+ #define _XVIDtoVisual (* _libXext__XVIDtoVisual) X+ X+ #if defined(__STDC__) && !defined(NO_PROTOTYPE) X+ #else X+ X+ extern int (* XESetCloseDisplay())(); X+ extern int (* XESetCopyGC())(); X+ extern int (* XESetCreateFont())(); X+ extern int (* XESetCreateGC())(); X+ extern int (* XESetError())(); X+ extern char *(* XESetErrorString())(); X+ extern int (* XESetEventToWire())(); X+ extern int (* XESetFlushGC())(); X+ extern int (* XESetFreeFont())(); X+ extern int (* XESetFreeGC())(); X+ extern int (* XESetWireToEvent())(); X+ extern int XFlush(); X+ extern int XFree(); X+ extern int XGetErrorDatabaseText(); X+ extern int XIfEvent(); X+ extern int XInitExtension(); X+ extern void bcopy(); X+ extern char *_XAllocScratch(); X+ extern void _XEatData(); X+ extern int _XFlush(); X+ extern int _XGetScanlinePad(); X+ extern int _XGetBitsPerPixel(); X+ extern int _XInitImageFuncPtrs(); X+ extern int _XRead(); X+ extern int _XReply(); X+ extern int _XSend(); X+ extern unsigned long _XSetLastRequestRead(); X+ extern Visual *_XVIDtoVisual(); X+ X+ #endif X+ X+ #endif X+ #endif X*** ./mit-orig/extensions/lib/sharedlib.c Thu Oct 4 18:00:25 1990 X--- ./mit/extensions/lib/sharedlib.c Sun Sep 16 22:39:06 1990 X*************** X*** 0 **** X--- 1,121 ---- X+ #include "import.h" X+ /* X+ * $XConsortium: sharedlib.c,v 1.3 89/10/09 14:28:56 jim Exp $ X+ * X+ * Copyright 1989 Massachusetts Institute of Technology X+ * X+ * This file is used to force shared libraries to get the right routines. X+ */ X+ X+ #ifdef ATTSHAREDLIB X+ X+ #if defined(__STDC__) && !defined(NO_PROTOTYPE) X+ #else X+ X+ int __fltused = 0; X+ unsigned char _ctype[] = 0; X+ int _filbuf() = 0; X+ int _flsbuf() = 0; X+ int _fltused = 0; X+ FILE *_iob = 0; X+ int abs() = 0; X+ int access() = 0; X+ int alarm() = 0; X+ int asctime() = 0; X+ double atof() = 0; X+ int atoi() = 0; X+ char *calloc() = 0; X+ int chmod() = 0; X+ int close() = 0; X+ int creat() = 0; X+ int errno = 0; X+ void exit() = 0; X+ int fclose() = 0; X+ int fcntl() = 0; X+ char *fgets() = 0; X+ FILE *fopen() = 0; X+ int fprintf() = 0; X+ int fputs() = 0; X+ int fread() = 0; X+ void free() = 0; X+ int fseek() = 0; X+ int ftell() = 0; X+ int fwrite() = 0; X+ char *getenv() = 0; X+ int getlogin() = 0; X+ struct passwd *getpwnam() = 0; X+ struct passwd *getpwuid() = 0; X+ int getuid() = 0; X+ char *(* _libXext_index)() = 0; X+ int ioctl() = 0; X+ int link() = 0; X+ struct tm *localtime() = 0; X+ char *malloc() = 0; X+ char *memcpy() = 0; X+ char *memset() = 0; X+ int open() = 0; X+ void perror() = 0; X+ int poll() = 0; X+ int printf() = 0; X+ int qsort() = 0; X+ int rand() = 0; X+ int read() = 0; X+ char *realloc() = 0; X+ int select() = 0; X+ void (*signal())() = 0; X+ int sleep() = 0; X+ int sprintf() = 0; X+ void srand() = 0; X+ int sscanf() = 0; X+ int (* _libXext_stat)() = 0; X+ char *strcat() = 0; X+ char *strchr() = 0; X+ int strcmp() = 0; X+ char *strcpy() = 0; X+ size_t strlen() = 0; X+ int strncmp() = 0; X+ char *strncpy() = 0; X+ char *strrchr() = 0; X+ char *sys_errlist[] = 0; X+ int sys_nerr = 0; X+ int system() = 0; X+ struct tm *(*_libXext_time)() = 0; X+ int times() = 0; X+ char *tmpnam() = 0; X+ int toupper() = 0; X+ int ulimit() = 0; X+ int uname() = 0; X+ int unlink() = 0; X+ int write() = 0; X+ X+ int (* XESetCloseDisplay())() = 0; X+ int (* XESetCopyGC())() = 0; X+ int (* XESetCreateFont())() = 0; X+ int (* XESetCreateGC())() = 0; X+ int (* XESetError())() = 0; X+ char *(* XESetErrorString())() = 0; X+ int (* XESetEventToWire())() = 0; X+ int (* XESetFlushGC())() = 0; X+ int (* XESetFreeFont())() = 0; X+ int (* XESetFreeGC())() = 0; X+ int (* XESetWireToEvent())() = 0; X+ int XFlush() = 0; X+ int XFree() = 0; X+ int XGetErrorDatabaseText() = 0; X+ int XIfEvent() = 0; X+ int XInitExtension() = 0; X+ void bcopy() = 0; X+ char *_XAllocScratch() = 0; X+ void _XEatData() = 0; X+ int _XFlush() = 0; X+ int _XGetScanlinePad() = 0; X+ int _XGetBitsPerPixel() = 0; X+ int _XInitImageFuncPtrs() = 0; X+ int _XRead() = 0; X+ int _XReply() = 0; X+ int _XSend() = 0; X+ unsigned long _XSetLastRequestRead() = 0; X+ Visual *_XVIDtoVisual() = 0; X+ X+ #endif X+ #endif END_OF_FILE if test 44260 -ne `wc -c <'fix-14.sco01'`; then echo shar: \"'fix-14.sco01'\" unpacked with wrong size! fi # end of 'fix-14.sco01' fi echo shar: End of archive 1 \(of 12\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 12 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 dan ---------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com Opinions expressed reflect those of the author only.