Path: utzoo!utgpu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!rpi!uupsi!sunic!compuram!pgd From: pgd@bbt.se Newsgroups: alt.sources Subject: Xenixshlib - Shared libraries for xenix (part 2 of 3) Message-ID: <1991Jan25.145442.25549@bbt.se> Date: 25 Jan 91 14:54:42 GMT Organization: . Lines: 2092 Archive-name: Xenixshlib/part02 Submitted-by: pgd@compuram.bbt.se ---- Cut Here and unpack ---- #!/bin/sh # This is part 02 of Xenixshlib if touch 2>&1 | fgrep 'amc' > /dev/null then TOUCH=touch else TOUCH=true fi # ============= hash.c ============== echo "x - extracting hash.c (Text)" sed 's/^X//' << 'SHAR_EOF' > hash.c && X#ifndef lint Xstatic char rcsid[] = "$Id: hash.c,v 1.2 90/10/02 13:32:23 chris Exp $"; X#endif X X/* X * Hash table routines. X */ X X#include X#include X#include X#include "hash.h" X X/* X * Hash table entries keep track of name=value pairs. X * The names may be numeric IDs instead (by having a null name). X */ Xstruct hashent { X struct hashent *h_next;/* next in chain */ X int h_hash; /* hash value or ID */ X char *h_name; /* name (null if from numeric ID) */ X char *h_value; /* value */ X}; X Xstruct hashtab { X int ht_size; /* size (power of 2) */ X int ht_mask; /* == ht_size - 1 */ X int ht_used; /* number of entries used */ X int ht_lim; /* when to expand */ X struct hashent **ht_tab;/* base of table */ X char ht_name[1]; /* table name; actually larger */ X}; X Xextern char *progname; X X#define bcopy(S, D, L) memcpy((D), (S), (L)) X Xchar * Xemalloc(n) X size_t n; X{ X register char *p = malloc(n); X X if (p == NULL) { X (void) fprintf(stderr, "%s: out of memory\n", progname); X exit(1); X } X return (p); X} X X/* round up to next multiple of y, where y is a power of 2 */ X#define ROUND(x, y) (((x) + (y) - 1) & ~((y) - 1)) X X/* compute a `good' number of objects to allocate via malloc */ Xint Xgoodnumber(n, s) X int n; X size_t s; X{ X X /* 16384 is a guess at a good page size for malloc */ X /* 32 is a guess at malloc's overhead */ X return ((int)((ROUND(n * s + 32, 16384) - 32) / s)); X} X X/* X * Make a new hash table. X */ Xstruct hashtab * Xht_new(name) X char *name; X{ X register struct hashtab *ht; X register struct hashent **h; X register int n; X X ht = (struct hashtab *)emalloc(sizeof *ht + strlen(name)); X ht->ht_tab = h = (struct hashent **)emalloc(128 * sizeof *h); X ht->ht_size = 128; X ht->ht_mask = 127; X for (n = 128; --n >= 0;) X *h++ = NULL; X ht->ht_used = 0; X ht->ht_lim = (128 * 2) / 3; X (void) strcpy(ht->ht_name, name); X return (ht); X} X X/* X * Expand an existing hash table. X */ Xstatic void Xht_expand(ht) X register struct hashtab *ht; X{ X register int n = ht->ht_size * 2, i; X register struct hashent *p, **h, **oldh, *q; X X h = (struct hashent **)emalloc(n * sizeof *h); X for (i = n; --i >= 0;) X *h++ = NULL; X h -= n; X oldh = ht->ht_tab; X n--; X for (i = ht->ht_size; --i >= 0;) { X for (p = *oldh++; p != NULL; p = q) { X q = p->h_next; X p->h_next = h[p->h_hash & n]; X h[p->h_hash & n] = p; X } X } X free((char *)ht->ht_tab); X ht->ht_tab = h; X ht->ht_mask = n; X ht->ht_size = ++n; X ht->ht_lim = (n * 2) / 3; X} X X/* X * Make a new hash entry. Its h_next will be NULL. X */ Xstatic struct hashent * Xnewhashent(hash, name, value) X int hash; X char *name, *value; X{ X static struct hashent *hfree; X register struct hashent *h; X register int n, nalloc; X X if ((h = hfree) != NULL) X hfree = h->h_next; X else { X nalloc = goodnumber(2, sizeof *h); /* need at least 2 */ X hfree = h = (struct hashent *)emalloc(nalloc * sizeof *h) + 1; X for (n = nalloc - 2; --n >= 0; h++) X h->h_next = h + 1; X h->h_next = NULL; X h -= nalloc - 1; X } X h->h_next = NULL; X h->h_hash = hash; X h->h_name = name; X h->h_value = value; X return (h); X} X X#define HASH(str, h, p) \ X for (p = str, h = 0; *p;) h = (h << 5) - h + *p++ X X/* X * Look up a name=value. X */ Xchar * Xht_nget(ht, name) X register struct hashtab *ht; X char *name; X{ X register char *p; X register int hash; X register struct hashent *h; X X HASH(name, hash, p); X p = name; X for (h = ht->ht_tab[hash & ht->ht_mask]; h != NULL; h = h->h_next) X if (h->h_hash == hash && h->h_name != NULL && X strcmp(h->h_name, p) == 0) X return (h->h_value); X return (NULL); X} X X/* X * Look up an ID=value. X */ Xchar * Xht_iget(ht, id) X register struct hashtab *ht; X register int id; X{ X register struct hashent *h; X X for (h = ht->ht_tab[id & ht->ht_mask]; h != NULL; h = h->h_next) X if (h->h_hash == id && h->h_name == NULL) X return (h->h_value); X return (NULL); X} X X/* X * Insert (do not clobber) a name=value. X * Return zero on success. X */ Xint Xht_nins(ht, name, value) X register struct hashtab *ht; X char *name, *value; X{ X register char *p; X register int hash; X register struct hashent *h, **hp; X X HASH(name, hash, p); X p = name; X for (hp = &ht->ht_tab[hash & ht->ht_mask]; (h = *hp) != NULL; X hp = &h->h_next) X if (h->h_hash == hash && h->h_name != NULL && X strcmp(h->h_name, p) == 0) X return (-1); X *hp = newhashent(hash, name, value); X if (++ht->ht_used > ht->ht_lim) X ht_expand(ht); X return (0); X} X X/* X * Insert (do clobber) a name=value. X * Return zero on success. X */ Xvoid Xht_nput(ht, name, value) X register struct hashtab *ht; X char *name, *value; X{ X register char *p; X register int hash; X register struct hashent *h, **hp; X X HASH(name, hash, p); X p = name; X for (hp = &ht->ht_tab[hash & ht->ht_mask]; (h = *hp) != NULL; X hp = &h->h_next) X if (h->h_hash == hash && h->h_name != NULL && X strcmp(h->h_name, p) == 0) { X h->h_value = value; X return; X } X *hp = newhashent(hash, name, value); X if (++ht->ht_used > ht->ht_lim) X ht_expand(ht); X return; X} X X/* X * Insert (do not clobber) an ID=value. X * Return zero on success. X */ Xint Xht_iins(ht, id, value) X register struct hashtab *ht; X register int id; X char *value; X{ X register struct hashent *h, **hp; X X for (hp = &ht->ht_tab[id & ht->ht_mask]; (h = *hp) != NULL; X hp = &h->h_next) X if (h->h_hash == id && h->h_name == NULL) X return (-1); X *hp = newhashent(id, (char *)NULL, value); X if (++ht->ht_used > ht->ht_lim) X ht_expand(ht); X return (0); X} X X/* X * Stash a copy of a string away; it will never be freed. X */ Xstatic char * Xpoolstr(s) X char *s; X{ X register char *p; X register size_t l = strlen(s) + 1; X static char *poolp; X static size_t nleft; X X if (nleft < l) X poolp = emalloc(nleft = goodnumber(l, 1)); X bcopy(s, p = poolp, l); X poolp += l; X return (p); X} X X/* X * Generate a single unique copy of the given string. X */ Xchar * Xstring(s) X char *s; X{ X register char *p; X register int hash; X register struct hashent *h, **hp; X static struct hashtab *ht; X X if (ht == NULL) X ht = ht_new("strings"); X HASH(s, hash, p); X p = s; X for (hp = &ht->ht_tab[hash & ht->ht_mask]; (h = *hp) != NULL; X hp = &h->h_next) X if (h->h_hash == hash && strcmp(h->h_name, p) == 0) X return (h->h_name); X *hp = h = newhashent(hash, poolstr(s), (char *)NULL); X if (++ht->ht_used > ht->ht_lim) X ht_expand(ht); X return (h->h_name); X} X X/* X * Call fn on all the name=value pairs. X */ Xvoid Xht_niterate(ht, fn) X struct hashtab *ht; X register void (*fn)(); X{ X register struct hashent *h, **hp; X register int n; X X for (n = ht->ht_size, hp = ht->ht_tab; --n >= 0;) X for (h = *hp++; h != NULL; h = h->h_next) X if (h->h_name != NULL) X (*fn)(h->h_name, h->h_value); X} X X/* X * Call fn on all the id=value pairs. X */ Xvoid Xht_iiterate(ht, fn) X struct hashtab *ht; X register void (*fn)(); X{ X register struct hashent *h, **hp; X register int n; X X for (n = ht->ht_size, hp = ht->ht_tab; --n >= 0;) X for (h = *hp++; h != NULL; h = h->h_next) X if (h->h_name == NULL) X (*fn)(h->h_hash, h->h_value); X} SHAR_EOF $TOUCH -am 1231154290 hash.c && chmod 0444 hash.c || echo "restore of hash.c failed" set `wc -c hash.c`;Wc_c=$1 if test "$Wc_c" != "6906"; then echo original size 6906, current size $Wc_c fi # ============= hash.h ============== echo "x - extracting hash.h (Text)" sed 's/^X//' << 'SHAR_EOF' > hash.h && X/* X * $Id: hash.h,v 1.1 90/09/24 23:58:38 chris Exp $ X * X * Hash table entries keep track of name (or id) = value pairs. X * Values are simply pointers. Hash tables themselves are named X * (for debugging). X */ X Xstruct hashtab; X X/* X * The `ins' functions return nonzero if the old value existed, X * without changing the value. X * The iterate functions calls a given function with name,value X * or id,value pairs. X */ Xstruct hashtab *ht_new(char *name); /* given name, create new hash table */ Xchar *ht_nget(struct hashtab *ht, char *name); /* given table and name, get value */ Xchar *ht_iget(struct hashtab *ht, int id); /* given table and ID, get value */ Xint ht_nins(struct hashtab *ht, char *name, char *value); /* given table and name, insert new value */ Xvoid ht_nput(struct hashtab *ht, char *name, char *value); Xint ht_iins(struct hashtab *ht, int id, char *value); /* given table and id, insert new value */ Xvoid ht_niterate(struct hashtab *ht, void (*fn)()); /* given table and function, iterate */ Xvoid ht_iiterate(struct hashtab *ht, void (*fn)()); /* given table and function, iterate */ X X/* X * Some things that ought not to be here, but are anyway. X * goodnumber() takes a number of objects and a size and returns X * a new number of objects, such that malloc(goodnumber(n,size)*size) X * calls malloc with a `good' size value (resulting in less wasted X * memory). emalloc is malloc with program-abort on out-of-memory. X * string() makes a `read-only' copy of a string, reusing the previous X * copy if any. X */ Xint goodnumber(); /* given n & sizeof, return new n */ Xchar *emalloc(); /* malloc, exit on error */ Xchar *string(char *s); /* make an `ideal' copy of a string */ SHAR_EOF $TOUCH -am 1231154690 hash.h && chmod 0444 hash.h || echo "restore of hash.h failed" set `wc -c hash.h`;Wc_c=$1 if test "$Wc_c" != "1686"; then echo original size 1686, current size $Wc_c fi # ============= libX11_start.c ============== echo "x - extracting libX11_start.c (Text)" sed 's/^X//' << 'SHAR_EOF' > libX11_start.c && X/* X * Startup routine for xenix with gcc using shared libraries X * This routine is called from assembler routine "crt0" X */ X#include X Xchar **_argv; Xint _argc; Xstatic char **find_environ(); Xextern char **environ; Xextern void (*_xcstart)(), (*_xcend)(); Xextern int libX11_version; Xextern int (*_shlib_exit)(); Xextern exit(); X X_start(argc, sargv) X int argc; X char *sargv; X{ X char **vargv; X int valsave; X register char **argv = &sargv; X static char errtxt[] = "\nVersion of libX11_s does not fit executable\n"; X X if (libX11_version < VERSION) { X write(2, errtxt, sizeof(errtxt)); X _exit(-1); X } X _argv = argv; X _argc = argc; X environ = find_environ(argv); X _shlib_exit = exit; X valsave = main(argc, argv, environ); X _xcleanup(); X return valsave; X} X Xstatic char ** Xfind_environ(fargv) X register char **fargv; X{ X register char *cp; X X cp = *fargv; X do { X fargv++; X } while (fargv[-1]); X if ((char *)fargv == cp) X fargv--; X return fargv; X} X X X_xcleanup() X{ X register void (*xcp)(); X X for (xcp = _xcstart; xcp != _xcend; xcp++) X (*xcp)(); X} X SHAR_EOF $TOUCH -am 0116101391 libX11_start.c && chmod 0660 libX11_start.c || echo "restore of libX11_start.c failed" set `wc -c libX11_start.c`;Wc_c=$1 if test "$Wc_c" != "1049"; then echo original size 1049, current size $Wc_c fi # ============= libc_jump.s ============== echo "x - extracting libc_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libc_jump.s && X/ X/ Prefix file and jump table for libc shared library X/ X/ Included in this table str (all) symbols used by most X/ X libraries, except for the socket/network symbols, since X/ there are different incompatible libraries for that. X/ All gnulib symbols are also excluded, since the double jump X/ might be seen as a slowdown. X/ libc symbols which are not used by X-windows are not included. X/ X/ Created by: pgd@compuram.bbt.se on 9-jan-91 X/ X.text X jmp __bufsync X jmp __cleanup X jmp __doprnt X jmp __doscan X jmp __exit X jmp __fcmp X jmp __fcntl X jmp __filbuf X jmp __findbuf X jmp __findiop X jmp __flsbuf X jmp __ftime X jmp __ftol X jmp __gdup X jmp __rlatof X jmp __rlprint X jmp __sigcomm X jmp __time X jmp __wait X jmp __wrtchk X jmp __xflsbuf X jmp _abs X jmp _access X jmp _alarm X jmp _asctime X jmp _atof X jmp _atoi X jmp _brk X jmp _calloc X jmp _ceil X jmp _cfree X jmp _close X jmp _cos X jmp _ctime X jmp _creat X jmp _dup X jmp _dup2 X jmp _dysize X jmp _ecvt X jmp _endpwent X/ jmp _exit X jmp _execl X jmp _execve X jmp _exp X jmp _fclose X jmp _fcntl X jmp _fcvt X jmp _fflush X jmp _fgets X jmp _floor X jmp _fltrd X jmp _fopen X jmp _fork X jmp _fprintf X jmp _fputs X jmp _fread X jmp _free X jmp _freopen X jmp _frexp X jmp _fscanf X jmp _fseek X jmp _fstat X jmp _ftell X jmp _ftime X jmp _fwrite X jmp _getenv X jmp _getlogin X jmp _getpid X jmp _getpwent X jmp _getpwnam X jmp _getpwuid X jmp _gettzname X jmp _getuid X jmp _gmtime X jmp _ioctl X jmp _isatty X jmp _labs X jmp _ldexp X jmp _localtime X jmp _log X jmp _log10 X jmp _lseek X jmp _malloc X jmp _matherr X jmp _memccpy X jmp _memchr X jmp _memcmp X jmp _memcpy X jmp _memset X jmp _mknod X jmp _mktemp X jmp _modf X jmp _open X jmp _pow X jmp _printf X jmp _qsort X jmp _rand X jmp _read X jmp _realloc X jmp _rewind X jmp _sbrk X jmp _scanf X jmp _select X jmp _setpwent X jmp _sighold X jmp _signal X jmp _sigpause X jmp _sigset X jmp _sin X jmp _sleep X jmp _sprintf X jmp _srand X jmp _sscanf X jmp _stat X jmp _strcat X jmp _strchr X jmp _strcmp X jmp _strcpy X jmp _strdup X jmp _strlen X jmp _strncmp X jmp _strncpy X jmp _strrchr X jmp _strtol X jmp _system X jmp _tmpnam X jmp _time X jmp _toupper X jmp _ttyname X jmp _ttyslot X jmp _tzset X jmp _uname X jmp _ungetc X jmp _unlink X jmp _wait X jmp _weekday X jmp _write X jmp _xexp X jmp _xldexp X jmp _xlocking X jmp _xlog X jmp _xlog10 X/ X/ Placeholder for other libc routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0116190391 libc_jump.s && chmod 0660 libc_jump.s || echo "restore of libc_jump.s failed" set `wc -c libc_jump.s`;Wc_c=$1 if test "$Wc_c" != "2479"; then echo original size 2479, current size $Wc_c fi # ============= libX11_jump.s ============== echo "x - extracting libX11_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libX11_jump.s && X/ X/ Prefix file and jump table for libX11 shared library X/ X X.text X jmp _ReadInteger X jmp _XActivateScreenSaver X jmp _XAddExtension X jmp _XAddHost X jmp _XAddHosts X jmp _XAddPixel X jmp _XAddToExtensionList X jmp _XAddToSaveSet X jmp _XAllPlanes X jmp _XAllocClassHint X jmp _XAllocColor X jmp _XAllocColorCells X jmp _XAllocColorPlanes X jmp _XAllocIconSize X jmp _XAllocNamedColor X jmp _XAllocSizeHints X jmp _XAllocStandardColormap X jmp _XAllocWMHints X jmp _XAllowEvents X jmp _XAutoRepeatOff X jmp _XAutoRepeatOn X jmp _XBell X jmp _XBitmapBitOrder X jmp _XBitmapPad X jmp _XBitmapUnit X jmp _XBlackPixel X jmp _XBlackPixelOfScreen X jmp _XCellsOfScreen X jmp _XChangeActivePointerGrab X jmp _XChangeGC X jmp _XChangeKeyboardControl X jmp _XChangeKeyboardMapping X jmp _XChangePointerControl X jmp _XChangeProperty X jmp _XChangeSaveSet X jmp _XChangeWindowAttributes X jmp _XCheckIfEvent X jmp _XCheckMaskEvent X jmp _XCheckTypedEvent X jmp _XCheckTypedWindowEvent X jmp _XCheckWindowEvent X jmp _XCirculateSubwindows X jmp _XCirculateSubwindowsDown X jmp _XCirculateSubwindowsUp X jmp _XClearArea X jmp _XClearWindow X jmp _XClipBox X jmp _XCloseDisplay X jmp _XConfigureWindow X jmp _XConnectionNumber X jmp _XConvertSelection X jmp _XCopyArea X jmp _XCopyColormapAndFree X jmp _XCopyGC X jmp _XCopyPlane X jmp _XCreateBitmapFromData X jmp _XCreateColormap X jmp _XCreateFontCursor X jmp _XCreateGC X jmp _XCreateGlyphCursor X jmp _XCreateImage X jmp _XCreatePixmap X jmp _XCreatePixmapCursor X jmp _XCreatePixmapFromBitmapData X jmp _XCreateRegion X jmp _XCreateSimpleWindow X jmp _XCreateWindow X jmp _XDefaultColormap X jmp _XDefaultColormapOfScreen X jmp _XDefaultDepth X jmp _XDefaultDepthOfScreen X jmp _XDefaultGC X jmp _XDefaultGCOfScreen X jmp _XDefaultRootWindow X jmp _XDefaultScreen X jmp _XDefaultScreenOfDisplay X jmp _XDefaultVisual X jmp _XDefaultVisualOfScreen X jmp _XDefineCursor X jmp _XDeleteContext X jmp _XDeleteModifiermapEntry X jmp _XDeleteProperty X jmp _XDestroyImage X jmp _XDestroyRegion X jmp _XDestroySubwindows X jmp _XDestroyWindow X jmp _XDisableAccessControl X jmp _XDisplayCells X jmp _XDisplayHeight X jmp _XDisplayHeightMM X jmp _XDisplayKeycodes X jmp _XDisplayMotionBufferSize X jmp _XDisplayName X jmp _XDisplayOfScreen X jmp _XDisplayPlanes X jmp _XDisplayString X jmp _XDisplayWidth X jmp _XDisplayWidthMM X jmp _XDoesBackingStore X jmp _XDoesSaveUnders X jmp _XDrawArc X jmp _XDrawArcs X jmp _XDrawImageString X jmp _XDrawImageString16 X jmp _XDrawLine X jmp _XDrawLines X jmp _XDrawPoint X jmp _XDrawPoints X jmp _XDrawRectangle X jmp _XDrawRectangles X jmp _XDrawSegments X jmp _XDrawString X jmp _XDrawString16 X jmp _XDrawText X jmp _XDrawText16 X jmp _XEHeadOfExtensionList X jmp _XESetCloseDisplay X jmp _XESetCopyGC X jmp _XESetCreateFont X jmp _XESetCreateGC X jmp _XESetError X jmp _XESetErrorString X jmp _XESetEventToWire X jmp _XESetFlushGC X jmp _XESetFreeFont X jmp _XESetFreeGC X jmp _XESetWireToEvent X jmp _XEmptyRegion X jmp _XEnableAccessControl X jmp _XEqualRegion X jmp _XEventMaskOfScreen X jmp _XEventsQueued X jmp _XFetchBuffer X jmp _XFetchBytes X jmp _XFetchName X jmp _XFillArc X jmp _XFillArcs X jmp _XFillPolygon X jmp _XFillRectangle X jmp _XFillRectangles X jmp _XFindContext X jmp _XFindOnExtensionList X jmp _XFlush X jmp _XForceScreenSaver X jmp _XFree X jmp _XFreeColormap X jmp _XFreeColors X jmp _XFreeCursor X jmp _XFreeExtensionList X jmp _XFreeFont X jmp _XFreeFontInfo X jmp _XFreeFontNames X jmp _XFreeFontPath X jmp _XFreeGC X jmp _XFreeModifiermap X jmp _XFreePixmap X jmp _XFreeStringList X jmp _XGContextFromGC X jmp _XGeometry X jmp _XGetAtomName X jmp _XGetClassHint X jmp _XGetCommand X jmp _XGetDefault X jmp _XGetErrorDatabaseText X jmp _XGetErrorText X jmp _XGetFontPath X jmp _XGetFontProperty X jmp _XGetGCValues X jmp _XGetGeometry X jmp _XGetIconName X jmp _XGetIconSizes X jmp _XGetImage X jmp _XGetInputFocus X jmp _XGetKeyboardControl X jmp _XGetKeyboardMapping X jmp _XGetModifierMapping X jmp _XGetMotionEvents X jmp _XGetNormalHints X jmp _XGetPixel X jmp _XGetPointerControl X jmp _XGetPointerMapping X jmp _XGetRGBColormaps X jmp _XGetScreenSaver X jmp _XGetSelectionOwner X jmp _XGetSizeHints X jmp _XGetStandardColormap X jmp _XGetSubImage X jmp _XGetTextProperty X jmp _XGetTransientForHint X jmp _XGetVisualInfo X jmp _XGetWMClientMachine X jmp _XGetWMColormapWindows X jmp _XGetWMHints X jmp _XGetWMIconName X jmp _XGetWMName X jmp _XGetWMNormalHints X jmp _XGetWMProtocols X jmp _XGetWMSizeHints X jmp _XGetWindowAttributes X jmp _XGetWindowProperty X jmp _XGetZoomHints X jmp _XGrabButton X jmp _XGrabKey X jmp _XGrabKeyboard X jmp _XGrabPointer X jmp _XGrabServer X jmp _XHeightMMOfScreen X jmp _XHeightOfScreen X jmp _XIconifyWindow X jmp _XIfEvent X jmp _XImageByteOrder X jmp _XInitExtension X jmp _XInsertModifiermapEntry X jmp _XInstallColormap X jmp _XInternAtom X jmp _XIntersectRegion X jmp _XKeycodeToKeysym X jmp _XKeysymToKeycode X jmp _XKeysymToString X jmp _XKillClient X jmp _XLastKnownRequestProcessed X jmp _XListDepths X jmp _XListExtensions X jmp _XListFonts X jmp _XListFontsWithInfo X jmp _XListHosts X jmp _XListInstalledColormaps X jmp _XListPixmapFormats X jmp _XListProperties X jmp _XLoadFont X jmp _XLoadQueryFont X jmp _XLookupColor X jmp _XLookupKeysym X jmp _XLookupString X jmp _XLowerWindow X jmp _XMapRaised X jmp _XMapSubwindows X jmp _XMapWindow X jmp _XMaskEvent X jmp _XMatchVisualInfo X jmp _XMaxCmapsOfScreen X jmp _XMaxRequestSize X jmp _XMinCmapsOfScreen X jmp _XMoveResizeWindow X jmp _XMoveWindow X jmp _XNewModifiermap X jmp _XNextEvent X jmp _XNextRequest X jmp _XNoOp X jmp _XOffsetRegion X jmp _XOpenDisplay X jmp _XParseColor X jmp _XParseGeometry X jmp _XPeekEvent X jmp _XPeekIfEvent X jmp _XPending X jmp _XPlanesOfScreen X jmp _XPointInRegion X jmp _XPolygonRegion X jmp _XProtocolRevision X jmp _XProtocolVersion X jmp _XPutBackEvent X jmp _XPutImage X jmp _XPutPixel X jmp _XQLength X jmp _XQueryBestCursor X jmp _XQueryBestSize X jmp _XQueryBestStipple X jmp _XQueryBestTile X jmp _XQueryColor X jmp _XQueryColors X jmp _XQueryExtension X jmp _XQueryFont X jmp _XQueryKeymap X jmp _XQueryPointer X jmp _XQueryTextExtents X jmp _XQueryTextExtents16 X jmp _XQueryTree X jmp _XRaiseWindow X jmp _XReadBitmapFile X jmp _XRebindKeysym X jmp _XRecolorCursor X jmp _XReconfigureWMWindow X jmp _XRectInRegion X jmp _XRefreshKeyboardMapping X jmp _XRemoveFromSaveSet X jmp _XRemoveHost X jmp _XRemoveHosts X jmp _XReparentWindow X jmp _XResetScreenSaver X jmp _XResizeWindow X jmp _XResourceManagerString X jmp _XRestackWindows X jmp _XRootWindow X jmp _XRootWindowOfScreen X jmp _XRotateBuffers X jmp _XRotateWindowProperties X jmp _XSaveContext X jmp _XScreenCount X jmp _XScreenNumberOfScreen X jmp _XScreenOfDisplay X jmp _XSelectInput X jmp _XSendEvent X jmp _XServerVendor X jmp _XSetAccessControl X jmp _XSetAfterFunction X jmp _XSetArcMode X jmp _XSetAuthorization X jmp _XSetBackground X jmp _XSetClassHint X jmp _XSetClipMask X jmp _XSetClipOrigin X jmp _XSetClipRectangles X jmp _XSetCloseDownMode X jmp _XSetCommand X jmp _XSetDashes X jmp _XSetErrorHandler X jmp _XSetFillRule X jmp _XSetFillStyle X jmp _XSetFont X jmp _XSetFontPath X jmp _XSetForeground X jmp _XSetFunction X jmp _XSetGraphicsExposures X jmp _XSetIOErrorHandler X jmp _XSetIconName X jmp _XSetIconSizes X jmp _XSetInputFocus X jmp _XSetLineAttributes X jmp _XSetModifierMapping X jmp _XSetNormalHints X jmp _XSetPlaneMask X jmp _XSetPointerMapping X jmp _XSetRGBColormaps X jmp _XSetRegion X jmp _XSetScreenSaver X jmp _XSetSelectionOwner X jmp _XSetSizeHints X jmp _XSetStandardColormap X jmp _XSetStandardProperties X jmp _XSetState X jmp _XSetStipple X jmp _XSetSubwindowMode X jmp _XSetTSOrigin X jmp _XSetTextProperty X jmp _XSetTile X jmp _XSetTransientForHint X jmp _XSetWMClientMachine X jmp _XSetWMColormapWindows X jmp _XSetWMHints X jmp _XSetWMIconName X jmp _XSetWMName X jmp _XSetWMNormalHints X jmp _XSetWMProperties X jmp _XSetWMProtocols X jmp _XSetWMSizeHints X jmp _XSetWindowBackground X jmp _XSetWindowBackgroundPixmap X jmp _XSetWindowBorder X jmp _XSetWindowBorderPixmap X jmp _XSetWindowBorderWidth X jmp _XSetWindowColormap X jmp _XSetZoomHints X jmp _XShrinkRegion X jmp _XStoreBuffer X jmp _XStoreBytes X jmp _XStoreColor X jmp _XStoreColors X jmp _XStoreName X jmp _XStoreNamedColor X jmp _XStringListToTextProperty X jmp _XStringToKeysym X jmp _XSubImage X jmp _XSubtractRegion X jmp _XSync X jmp _XSynchronize X jmp _XTextExtents X jmp _XTextExtents16 X jmp _XTextPropertyToStringList X jmp _XTextWidth X jmp _XTextWidth16 X jmp _XTranslateCoordinates X jmp _XUndefineCursor X jmp _XUngrabButton X jmp _XUngrabKey X jmp _XUngrabKeyboard X jmp _XUngrabPointer X jmp _XUngrabServer X jmp _XUninstallColormap X jmp _XUnionRectWithRegion X jmp _XUnionRegion X jmp _XUnloadFont X jmp _XUnmapSubwindows X jmp _XUnmapWindow X jmp _XVendorRelease X jmp _XVisualIDFromVisual X jmp _XWMGeometry X jmp _XWarpPointer X jmp _XWhitePixel X jmp _XWhitePixelOfScreen X jmp _XWidthMMOfScreen X jmp _XWidthOfScreen X jmp _XWindowEvent X jmp _XWithdrawWindow X jmp _XWriteBitmapFile X jmp _XXorRegion X jmp _XauDisposeAuth X jmp _XauFileName X jmp _XauGetAuthByAddr X jmp _XauReadAuth X jmp _Xpermalloc X jmp _XrmDestroyDatabase X jmp _XrmGetFileDatabase X jmp _XrmGetResource X jmp _XrmGetStringDatabase X jmp _XrmInitialize X jmp _XrmMergeDatabases X jmp _XrmParseCommand X jmp _XrmPutFileDatabase X jmp _XrmPutLineResource X jmp _XrmPutResource X jmp _XrmPutStringResource X jmp _XrmQGetResource X jmp _XrmQGetSearchList X jmp _XrmQGetSearchResource X jmp _XrmQPutResource X jmp _XrmQPutStringResource X jmp _XrmQuarkToString X jmp _XrmStringToBindingQuarkList X jmp _XrmStringToQuark X jmp _XrmStringToQuarkList X jmp _XrmUniqueQuark X jmp __Reverse_Bytes X jmp __XAllocID X jmp __XAllocScratch X jmp __XConnectDisplay X jmp __XDefaultError X jmp __XDefaultIOError X jmp __XDisconnectDisplay X jmp __XEatData X jmp __XEnq X jmp __XError X jmp __XEventToWire X jmp __XEventsQueued X jmp __XFlush X jmp __XFlushGCCache X jmp __XFreeDisplayStructure X jmp __XFreeExtData X jmp __XFreeKeyBindings X jmp __XFreeQ X jmp __XGenerateGCList X jmp __XGetBitsPerPixel X jmp __XGetHostname X jmp __XGetScanlinePad X jmp __XIOError X jmp __XInitImageFuncPtrs X jmp __XInitKeysymDB X jmp __XPrintDefaultError X jmp __XProcessWindowAttributes X jmp __XRead X jmp __XReadEvents X jmp __XReadPad X jmp __XReply X jmp __XScreenOfWindow X jmp __XSend X jmp __XSendClientPrefix X jmp __XSetClipRectangles X jmp __XSetImage X jmp __XSetLastRequestRead X jmp __XSyncFunction X jmp __XUnknownNativeEvent X jmp __XUnknownWireEvent X jmp __XUpdateGCCache X jmp __XVIDtoVisual X jmp __XWaitForReadable X jmp __XWaitForWritable X jmp __XWireToEvent X jmp __XXlibGlobalLoadDummyProcedure X jmp __XrmGetResourceName X jmp _bcmp X jmp _bcopy X jmp _bzero X jmp _combineRegs X jmp _ffs X jmp _gettimeofday X jmp _index X jmp _insque X jmp _random X jmp _readv X jmp _remque X jmp _rindex X jmp _srandom X jmp _writev X/ X/ Placeholder for other routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0112132791 libX11_jump.s && chmod 0660 libX11_jump.s || echo "restore of libX11_jump.s failed" set `wc -c libX11_jump.s`;Wc_c=$1 if test "$Wc_c" != "10793"; then echo original size 10793, current size $Wc_c fi # ============= libXmu_jump.s ============== echo "x - extracting libXmu_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libXmu_jump.s && X/ X/ Prefix file and jump table for libXmu shared library X/ X X.text X jmp _XctCreate X jmp _XctFree X jmp _XctNextItem X jmp _XctReset X jmp _XmuAddCloseDisplayHook X jmp _XmuAddInitializer X jmp _XmuAllStandardColormaps X jmp _XmuCallInitializers X jmp _XmuClientWindow X jmp _XmuCompareISOLatin1 X jmp _XmuConvertStandardSelection X jmp _XmuCopyISOLatin1Lowered X jmp _XmuCopyISOLatin1Uppered X jmp _XmuCreateColormap X jmp _XmuCreatePixmapFromBitmap X jmp _XmuCreateStippledPixmap X jmp _XmuCursorNameToIndex X jmp _XmuCvtFunctionToCallback X jmp _XmuCvtStringToBackingStore X jmp _XmuCvtStringToBitmap X jmp _XmuCvtStringToCursor X jmp _XmuCvtStringToJustify X jmp _XmuCvtStringToLong X jmp _XmuCvtStringToOrientation X jmp _XmuCvtStringToShapeStyle X jmp _XmuCvtStringToWidget X jmp _XmuDQAddDisplay X jmp _XmuDQCreate X jmp _XmuDQDestroy X jmp _XmuDQLookupDisplay X jmp _XmuDQRemoveDisplay X jmp _XmuDeleteStandardColormap X jmp _XmuDrawLogo X jmp _XmuDrawRoundedRectangle X jmp _XmuFillRoundedRectangle X jmp _XmuGetAtomName X jmp _XmuGetColormapAllocation X jmp _XmuGetHostname X jmp _XmuInternAtom X jmp _XmuInternStrings X jmp _XmuLocateBitmapFile X jmp _XmuLookupAPL X jmp _XmuLookupArabic X jmp _XmuLookupCloseDisplayHook X jmp _XmuLookupCyrillic X jmp _XmuLookupGreek X jmp _XmuLookupHebrew X jmp _XmuLookupJISX0201 X jmp _XmuLookupKana X jmp _XmuLookupLatin1 X jmp _XmuLookupLatin2 X jmp _XmuLookupLatin3 X jmp _XmuLookupLatin4 X jmp _XmuLookupStandardColormap X jmp _XmuLookupString X jmp _XmuMakeAtom X jmp _XmuNameOfAtom X jmp _XmuPrintDefaultErrorMessage X jmp _XmuReadBitmapData X jmp _XmuReadBitmapDataFromFile X jmp _XmuReleaseStippledPixmap X jmp _XmuRemoveCloseDisplayHook X jmp _XmuReshapeWidget X jmp _XmuScreenOfWindow X jmp _XmuSimpleErrorHandler X jmp _XmuStandardColormap X jmp _XmuUpdateMapHints X jmp _XmuVisualStandardColormaps X jmp __XmuCCLookupDisplay X jmp __XmuStringToBitmapFreeCache X jmp __XmuStringToBitmapInitCache X/ X/ Placeholder for other routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0112132891 libXmu_jump.s && chmod 0660 libXmu_jump.s || echo "restore of libXmu_jump.s failed" set `wc -c libXmu_jump.s`;Wc_c=$1 if test "$Wc_c" != "2027"; then echo original size 2027, current size $Wc_c fi # ============= libXt_jump.s ============== echo "x - extracting libXt_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libXt_jump.s && X/ X/ Prefix file and jump table for libXt shared library X/ X X.text X jmp _CompositeClassPartInitialize X jmp _CompositeDeleteChild X jmp _CompositeDestroy X jmp _CompositeInitialize X jmp _CompositeInsertChild X jmp _LowerCase X jmp _PeekOtherSources X jmp _XrmCompileResourceList X jmp _XtAddActions X jmp _XtAddCallback X jmp _XtAddCallbacks X jmp _XtAddConverter X jmp _XtAddEventHandler X jmp _XtAddExposureToRegion X jmp _XtAddGrab X jmp _XtAddInput X jmp _XtAddRawEventHandler X jmp _XtAddTimeOut X jmp _XtAddWorkProc X jmp _XtAppAddActionHook X jmp _XtAppAddActions X jmp _XtAppAddConverter X jmp _XtAppAddInput X jmp _XtAppAddTimeOut X jmp _XtAppAddWorkProc X jmp _XtAppCreateShell X jmp _XtAppError X jmp _XtAppErrorMsg X jmp _XtAppGetErrorDatabase X jmp _XtAppGetErrorDatabaseText X jmp _XtAppGetSelectionTimeout X jmp _XtAppInitialize X jmp _XtAppMainLoop X jmp _XtAppNextEvent X jmp _XtAppPeekEvent X jmp _XtAppPending X jmp _XtAppProcessEvent X jmp _XtAppReleaseCacheRefs X jmp _XtAppSetErrorHandler X jmp _XtAppSetErrorMsgHandler X jmp _XtAppSetFallbackResources X jmp _XtAppSetSelectionTimeout X jmp _XtAppSetTypeConverter X jmp _XtAppSetWarningHandler X jmp _XtAppSetWarningMsgHandler X jmp _XtAppWarning X jmp _XtAppWarningMsg X jmp _XtAugmentTranslations X jmp _XtBuildEventMask X jmp _XtCallAcceptFocus X jmp _XtCallActionProc X jmp _XtCallCallbackList X jmp _XtCallCallbacks X jmp _XtCallConverter X jmp _XtCallbackExclusive X jmp _XtCallbackNone X jmp _XtCallbackNonexclusive X jmp _XtCallbackPopdown X jmp _XtCallbackReleaseCacheRef X jmp _XtCallbackReleaseCacheRefList X jmp _XtCalloc X jmp _XtClass X jmp _XtCloseDisplay X jmp _XtConfigureWidget X jmp _XtConvert X jmp _XtConvertAndStore X jmp _XtConvertCase X jmp _XtCopyAncestorSensitive X jmp _XtCopyDefaultColormap X jmp _XtCopyDefaultDepth X jmp _XtCopyFromParent X jmp _XtCopyScreen X jmp _XtCreateApplicationContext X jmp _XtCreateApplicationShell X jmp _XtCreateManagedWidget X jmp _XtCreatePopupShell X jmp _XtCreateWidget X jmp _XtCreateWindow X jmp _XtDatabase X jmp _XtDestroyApplicationContext X jmp _XtDestroyGC X jmp _XtDestroyWidget X jmp _XtDirectConvert X jmp _XtDisownSelection X jmp _XtDispatchEvent X jmp _XtDisplay X jmp _XtDisplayInitialize X jmp _XtDisplayOfObject X jmp _XtDisplayStringConversionWarning X jmp _XtDisplayToApplicationContext X jmp _XtError X jmp _XtErrorMsg X jmp _XtFindFile X jmp _XtFree X jmp _XtGetActionKeysym X jmp _XtGetApplicationNameAndClass X jmp _XtGetApplicationResources X jmp _XtGetConstraintResourceList X jmp _XtGetErrorDatabase X jmp _XtGetErrorDatabaseText X jmp _XtGetGC X jmp _XtGetKeysymTable X jmp _XtGetMultiClickTime X jmp _XtGetResourceList X jmp _XtGetSelectionRequest X jmp _XtGetSelectionTimeout X jmp _XtGetSelectionValue X jmp _XtGetSelectionValueIncremental X jmp _XtGetSelectionValues X jmp _XtGetSelectionValuesIncremental X jmp _XtGetSubresources X jmp _XtGetSubvalues X jmp _XtGetValues X jmp _XtGrabButton X jmp _XtGrabKey X jmp _XtGrabKeyboard X jmp _XtGrabPointer X jmp _XtHasCallbacks X jmp _XtInitialize X jmp _XtInitializeWidgetClass X jmp _XtInsertEventHandler X jmp _XtInsertRawEventHandler X jmp _XtInstallAccelerators X jmp _XtInstallAllAccelerators X jmp _XtIsApplicationShell X jmp _XtIsComposite X jmp _XtIsConstraint X jmp _XtIsManaged X jmp _XtIsObject X jmp _XtIsOverrideShell X jmp _XtIsRealized X jmp _XtIsRectObj X jmp _XtIsSensitive X jmp _XtIsShell X jmp _XtIsSubclass X jmp _XtIsTopLevelShell X jmp _XtIsTransientShell X jmp _XtIsVendorShell X jmp _XtIsWMShell X jmp _XtIsWidget X jmp _XtKeysymToKeycodeList X jmp _XtLastTimestampProcessed X jmp _XtMainLoop X jmp _XtMakeGeometryRequest X jmp _XtMakeResizeRequest X jmp _XtMalloc X jmp _XtManageChild X jmp _XtManageChildren X jmp _XtMapWidget X jmp _XtMenuPopupAction X jmp _XtMergeArgLists X jmp _XtMoveWidget X jmp _XtName X jmp _XtNameToWidget X jmp _XtNewString X jmp _XtNextEvent X jmp _XtOpenDisplay X jmp _XtOverrideTranslations X jmp _XtOwnSelection X jmp _XtOwnSelectionIncremental X jmp _XtParent X jmp _XtParseAcceleratorTable X jmp _XtParseTranslationTable X jmp _XtPeekEvent X jmp _XtPending X jmp _XtPopdown X jmp _XtPopup X jmp _XtPopupSpringLoaded X jmp _XtProcessEvent X jmp _XtQueryGeometry X jmp _XtRealizeWidget X jmp _XtRealloc X jmp _XtRegisterCaseConverter X jmp _XtRegisterGrabAction X jmp _XtReleaseGC X jmp _XtRemoveActionHook X jmp _XtRemoveAllCallbacks X jmp _XtRemoveCallback X jmp _XtRemoveCallbacks X jmp _XtRemoveEventHandler X jmp _XtRemoveGrab X jmp _XtRemoveInput X jmp _XtRemoveRawEventHandler X jmp _XtRemoveTimeOut X jmp _XtRemoveWorkProc X jmp _XtResizeWidget X jmp _XtResizeWindow X jmp _XtResolvePathname X jmp _XtScreen X jmp _XtScreenOfObject X jmp _XtSetErrorHandler X jmp _XtSetErrorMsgHandler X jmp _XtSetKeyTranslator X jmp _XtSetKeyboardFocus X jmp _XtSetMappedWhenManaged X jmp _XtSetMultiClickTime X jmp _XtSetSelectionTimeout X jmp _XtSetSensitive X jmp _XtSetSubvalues X jmp _XtSetTypeConverter X jmp _XtSetValues X jmp _XtSetWMColormapWindows X jmp _XtSetWarningHandler X jmp _XtSetWarningMsgHandler X jmp _XtStringConversionWarning X jmp _XtSuperclass X jmp _XtToolkitInitialize X jmp _XtTranslateCoords X jmp _XtTranslateKey X jmp _XtTranslateKeycode X jmp _XtUngrabButton X jmp _XtUngrabKey X jmp _XtUngrabKeyboard X jmp _XtUngrabPointer X jmp _XtUninstallTranslations X jmp _XtUnmanageChild X jmp _XtUnmanageChildren X jmp _XtUnmapWidget X jmp _XtUnrealizeWidget X jmp _XtVaAppCreateShell X jmp _XtVaAppInitialize X jmp _XtVaCreateArgsList X jmp _XtVaCreateManagedWidget X jmp _XtVaCreatePopupShell X jmp _XtVaCreateWidget X jmp _XtVaGetApplicationResources X jmp _XtVaGetSubresources X jmp _XtVaGetSubvalues X jmp _XtVaGetValues X jmp _XtVaSetSubvalues X jmp _XtVaSetValues X jmp _XtWarning X jmp _XtWarningMsg X jmp _XtWidgetToApplicationContext X jmp _XtWindow X jmp _XtWindowOfObject X jmp _XtWindowToWidget X jmp __CompileActionTable X jmp __XtAddCallback X jmp __XtAddCallbackOnce X jmp __XtAddDefaultConverters X jmp __XtAddEventSeqToStateTable X jmp __XtAddTMConverters X jmp __XtAllocError X jmp __XtAppCreateShell X jmp __XtBindActions X jmp __XtBuildKeysymTables X jmp __XtCacheFlushTag X jmp __XtCallCallbacks X jmp __XtCallConverter X jmp __XtCallbackList X jmp __XtCheckServerGrabsOnWidget X jmp __XtCheckSubclassFlag X jmp __XtCloseDisplays X jmp __XtCompileCallbackList X jmp __XtCondCopyTranslations X jmp __XtConstraintResDependencies X jmp __XtConvert X jmp __XtConvertCase X jmp __XtConvertInitialize X jmp __XtCopyFromArg X jmp __XtCopyToArg X jmp __XtCountVaList X jmp __XtCreateIndirectionTable X jmp __XtCreatePopupShell X jmp __XtCreateWidget X jmp __XtCvtMergeTranslations X jmp __XtDefaultAppContext X jmp __XtDefaultError X jmp __XtDefaultErrorMsg X jmp __XtDefaultWarning X jmp __XtDefaultWarningMsg X jmp __XtDependencies X jmp __XtDestroyAppContexts X jmp __XtDestroyServerGrabs X jmp __XtDisplayInitialize X jmp __XtDoPhase2Destroy X jmp __XtEventInitialize X jmp __XtFillAncestorList X jmp __XtFindRemapWidget X jmp __XtFreeActions X jmp __XtFreeCacheRec X jmp __XtFreeCallbackList X jmp __XtFreeConverterTable X jmp __XtFreeEventTable X jmp __XtFreePerWidgetInput X jmp __XtFreeTranslations X jmp __XtGClistFree X jmp __XtGetCallbackList X jmp __XtGetPerWidgetInput X jmp __XtGetProcessContext X jmp __XtGetResources X jmp __XtHandleFocus X jmp __XtHeapAlloc X jmp __XtInherit X jmp __XtInitErrorHandling X jmp __XtInitializeStateTable X jmp __XtInstallTranslations X jmp __XtIsSubclassOf X jmp __XtMakeGeometryRequest X jmp __XtMatchAtom X jmp __XtMatchUsingDontCareMods X jmp __XtMatchUsingStandardMods X jmp __XtOnGrabList X jmp __XtPopup X jmp __XtPopupInitialize X jmp __XtProcessKeyboardEvent X jmp __XtProcessPointerEvent X jmp __XtRegisterAccRemoveCallbacks X jmp __XtRegisterGrabs X jmp __XtRegisterWindow X jmp __XtRegularMatch X jmp __XtRemoveAllCallbacks X jmp __XtRemoveAllInputs X jmp __XtRemoveCallback X jmp __XtRemoveTranslations X jmp __XtResourceDependencies X jmp __XtResourceListInitialize X jmp __XtSendFocusEvent X jmp __XtSetDefaultConverterTable X jmp __XtSetDefaultErrorHandlers X jmp __XtSetDefaultSelectionTimeout X jmp __XtShellGetCoordinates X jmp __XtSortPerDisplayList X jmp __XtTableAddConverter X jmp __XtTranslateEvent X jmp __XtTranslateInitialize X jmp __XtTranslateTablePrint X jmp __XtUngrabBadGrabs X jmp __XtUninstallAccelerators X jmp __XtUnregisterWindow X jmp __XtVaAppInitialize X jmp __XtVaCreateTypedArgList X jmp __XtVaToArgList X jmp __XtVaToTypedArgList X jmp __XtWindowedAncestor X jmp __XtwaitForSomething X/ X/ Placeholder for other routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0112132891 libXt_jump.s && chmod 0660 libXt_jump.s || echo "restore of libXt_jump.s failed" set `wc -c libXt_jump.s`;Wc_c=$1 if test "$Wc_c" != "8376"; then echo original size 8376, current size $Wc_c fi # ============= libXaw_jump.s ============== echo "x - extracting libXaw_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libXaw_jump.s && X/ X/ Prefix file and jump table for libXaw shared library X/ X X.text X jmp _CommitGripAdjustment X jmp _FindCornerItems X jmp _HighlightBackground X jmp _ItemInRectangle X jmp _PaintItemName X jmp _XawAsciiSave X jmp _XawAsciiSaveAsFile X jmp _XawAsciiSourceChanged X jmp _XawAsciiSourceFreeString X jmp _XawDialogAddButton X jmp _XawDialogGetValueString X jmp _XawDiskSourceCreate X jmp _XawFormDoLayout X jmp _XawInitializeWidgetSet X jmp _XawListChange X jmp _XawListHighlight X jmp _XawListShowCurrent X jmp _XawListUnhighlight X jmp _XawPanedAllowResize X jmp _XawPanedGetMinMax X jmp _XawPanedGetNumSub X jmp _XawPanedSetMinMax X jmp _XawPanedSetRefigureMode X jmp _XawScrollbarSetThumb X jmp _XawSimpleMenuAddGlobalActions X jmp _XawSimpleMenuClearActiveEntry X jmp _XawSimpleMenuGetActiveEntry X jmp _XawStringSourceCreate X jmp _XawTextChangeOptions X jmp _XawTextDisableRedisplay X jmp _XawTextDisplay X jmp _XawTextDisplayCaret X jmp _XawTextEnableRedisplay X jmp _XawTextGetInsertionPoint X jmp _XawTextGetOptions X jmp _XawTextGetSelectionPos X jmp _XawTextGetSource X jmp _XawTextInvalidate X jmp _XawTextReplace X jmp _XawTextSearch X jmp _XawTextSetInsertionPoint X jmp _XawTextSetLastPos X jmp _XawTextSetSelection X jmp _XawTextSetSelectionArray X jmp _XawTextSetSource X jmp _XawTextSinkClearToBackground X jmp _XawTextSinkDisplayText X jmp _XawTextSinkFindDistance X jmp _XawTextSinkFindPosition X jmp _XawTextSinkGetCursorBounds X jmp _XawTextSinkInsertCursor X jmp _XawTextSinkMaxHeight X jmp _XawTextSinkMaxLines X jmp _XawTextSinkResolve X jmp _XawTextSinkSetTabs X jmp _XawTextSourceConvertSelection X jmp _XawTextSourceRead X jmp _XawTextSourceReplace X jmp _XawTextSourceScan X jmp _XawTextSourceSearch X jmp _XawTextSourceSetSelection X jmp _XawTextTopPosition X jmp _XawTextUnsetSelection X jmp _XawToggleChangeRadioGroup X jmp _XawToggleGetCurrent X jmp _XawToggleSetCurrent X jmp _XawToggleUnsetCurrent X jmp __SetSelection X jmp __XawTextAlterSelection X jmp __XawTextBuildLineTable X jmp __XawTextCheckResize X jmp __XawTextClearAndCenterDisplay X jmp __XawTextDoReplaceAction X jmp __XawTextDoSearchAction X jmp __XawTextExecuteUpdate X jmp __XawTextGetSTRING X jmp __XawTextGetText X jmp __XawTextInsertFile X jmp __XawTextInsertFileAction X jmp __XawTextNeedsUpdating X jmp __XawTextPopdownSearchAction X jmp __XawTextPrepareToUpdate X jmp __XawTextReplace X jmp __XawTextSearch X jmp __XawTextSelectionList X jmp __XawTextSetField X jmp __XawTextSetScrollBars X jmp __XawTextSetSelection X jmp __XawTextShowPosition X jmp __XawTextVScroll X jmp __XawTextZapSelection X/ X/ Placeholder for other routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0112132891 libXaw_jump.s && chmod 0660 libXaw_jump.s || echo "restore of libXaw_jump.s failed" set `wc -c libXaw_jump.s`;Wc_c=$1 if test "$Wc_c" != "2653"; then echo original size 2653, current size $Wc_c fi # ============= libXext_jump.s ============== echo "x - extracting libXext_jump.s (Text)" sed 's/^X//' << 'SHAR_EOF' > libXext_jump.s && X/ X/ Prefix file and jump table for libXext shared library X/ X X.text X jmp _XMITMiscGetBugMode X jmp _XMITMiscQueryExtension X jmp _XMITMiscSetBugMode X jmp _XMissingExtension X jmp _XSetExtensionErrorHandler X jmp _XShapeCombineMask X jmp _XShapeCombineRectangles X jmp _XShapeCombineRegion X jmp _XShapeCombineShape X jmp _XShapeGetRectangles X jmp _XShapeInputSelected X jmp _XShapeOffsetShape X jmp _XShapeQueryExtension X jmp _XShapeQueryExtents X jmp _XShapeQueryVersion X jmp _XShapeSelectInput X jmp _XShmAttach X jmp _XShmCreateImage X jmp _XShmCreatePixmap X jmp _XShmDetach X jmp _XShmGetEventBase X jmp _XShmGetImage X jmp _XShmPutImage X jmp _XShmQueryExtension X jmp _XShmQueryVersion X jmp _XTestFakeInput X jmp _XTestFlush X jmp _XTestGetInput X jmp _XTestMovePointer X jmp _XTestPressButton X jmp _XTestPressKey X jmp _XTestQueryInputSize X jmp _XTestReset X jmp _XTestStopInput X jmp _XextAddDisplay X jmp _XextCreateExtension X jmp _XextDestroyExtension X jmp _XextFindDisplay X jmp _XextRemoveDisplay X jmp _XmbufChangeBufferAttributes X jmp _XmbufChangeWindowAttributes X jmp _XmbufCreateBuffers X jmp _XmbufCreateStereoWindow X jmp _XmbufDestroyBuffers X jmp _XmbufDisplayBuffers X jmp _XmbufGetBufferAttributes X jmp _XmbufGetScreenInfo X jmp _XmbufGetVersion X jmp _XmbufGetWindowAttributes X jmp _XmbufQueryExtension X jmp __XExtensionGlobalLoadDummyProcedure X/ X/ Placeholder for other routines that might be needed X/ X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 X .byte 0,0,0,0,0 SHAR_EOF $TOUCH -am 0112132891 libXext_jump.s && chmod 0660 libXext_jump.s || echo "restore of libXext_jump.s failed" set `wc -c libXext_jump.s`;Wc_c=$1 if test "$Wc_c" != "1475"; then echo original size 1475, current size $Wc_c fi # ============= Scrt0.s ============== echo "x - extracting Scrt0.s (Text)" sed 's/^X//' << 'SHAR_EOF' > Scrt0.s && X/ X/ Replacement startup file neede when using shared libraries X/ X/ Author: pgd@compuram.bbt.se X/ X .file "Scrt0.s" X .text X .globl start0, __nd_ X X jmp start0 Xstart0: X movl %eax,__nd_ / Fill in top of memory address X xor %ebp,%ebp X call __start X push %eax / Exit status X call __exit X1: X jmp 1b X SHAR_EOF $TOUCH -am 0109171091 Scrt0.s && chmod 0660 Scrt0.s || echo "restore of Scrt0.s failed" set `wc -c Scrt0.s`;Wc_c=$1 if test "$Wc_c" != "296"; then echo original size 296, current size $Wc_c fi # ============= libX11_s.c ============== echo "x - extracting libX11_s.c (Text)" sed 's/^X//' << 'SHAR_EOF' > libX11_s.c && X/* X * Prefix file and jump table for Xlib shared library X * X * Author: P.Garbha pgd@compuram.bbt.se X */ X Xchar **environ; Xchar *_nd_; Xint _fac; Xint _acrtused; X X/* X * Identifier to autload library X */ Xchar __SHLIB__libX11_s; X X__JumpTabEnd() X{ X} X Xvoid (*_shlib_exit)(); X X/* X * exit routine to use from within library X */ Xexit(status) X int status; X{ X _shlib_exit(status); X} X XlibX11_exit(status) X{ X _shlib_exit(status); X} X SHAR_EOF $TOUCH -am 0116154691 libX11_s.c && chmod 0660 libX11_s.c || echo "restore of libX11_s.c failed" set `wc -c libX11_s.c`;Wc_c=$1 if test "$Wc_c" != "418"; then echo original size 418, current size $Wc_c fi # ============= hello.c ============== echo "x - extracting hello.c (Text)" sed 's/^X//' << 'SHAR_EOF' > hello.c && X#include X Xmain() X{ X/* write(1, "Haribol!\n", 8); */ X printf("Haribol!!!\n"); X exit(0); X} SHAR_EOF $TOUCH -am 1225114590 hello.c && chmod 0660 hello.c || echo "restore of hello.c failed" set `wc -c hello.c`;Wc_c=$1 if test "$Wc_c" != "99"; then echo original size 99, current size $Wc_c fi # ============= coffhdr.c ============== echo "x - extracting coffhdr.c (Text)" sed 's/^X//' << 'SHAR_EOF' > coffhdr.c && X/* X * Program to display coff headers X */ X X#include X#include X#include X#include X#include X#include X Xchar *fname; X Xstruct filehdr fhdr; /* coff file header */ Xstruct aouthdr ahdr; /* a.out header */ Xstruct scnhdr *shdr; /* section headers */ X Xmain(argc, argv) X int argc; X char **argv; X{ X int fd; X X if (argc < 2) X fname = "a.out"; X else X fname = argv[1]; X fd = open(fname, O_RDONLY); X if (fd == -1) { X perror(fname); X exit(1); X } X loadheaders(fd); X showheaders(); X/* dumplibs(); */ X exit(0); X} X Xloadheaders(fd) X int fd; X{ X if (read(fd, &fhdr, sizeof fhdr) != sizeof fhdr) { X perror("coffhdr"); exit(1); X } X if (fhdr.f_magic == X_MAGIC) { X fprintf(stderr, "file is an x.out type file\n"); X exit(1); X } X if (fhdr.f_magic != I386MAGIC) { X fprintf(stderr, "Not a coff exec file\n"); X exit(1); X } X if (read(fd, &ahdr, sizeof ahdr) != sizeof ahdr) { X perror("aouthdr"); exit(1); X } X if (fhdr.f_nscns) { X shdr = (struct scnhdr *)calloc(sizeof(struct scnhdr), fhdr.f_nscns); X if (shdr == NULL) { X perror("coffhdr"); exit(1); X } X if (read(fd, (char *)shdr, fhdr.f_nscns * sizeof(struct scnhdr)) == -1) { X perror("scnhdr"); exit(1); X } X } else X shdr = NULL; X} X Xshowheaders() X{ X int i; X X printf("File: %s\n", fname); X printf("Created: %s\n", asctime(localtime(&fhdr.f_timdat))); X printf("Symbol table addr: %06x\n", fhdr.f_symptr); X printf("Number of symbols: %d\n", fhdr.f_nsyms); X printf("Flags: \n"); X if (fhdr.f_flags & F_RELFLG) X printf("\trelocation info stripped from file\n"); X if (fhdr.f_flags & F_EXEC) X printf("\tfile is executable\n"); X if (fhdr.f_flags & F_LNNO) X printf("\tline numbers stripped from file\n"); X if (fhdr.f_flags & F_LSYMS) X printf("\tlocal symbols stripped from file\n"); X if (fhdr.f_flags & F_MINMAL) X printf("\tthis is a minimal object file ('.m') output of fextract\n"); X if (fhdr.f_flags & F_UPDATE) X printf("\tthis is a fully bound update file, output of ogen\n"); X if (fhdr.f_flags & F_SWABD) X printf("\tthis file has had its bytes swabbed (in names)\n"); X if (fhdr.f_flags & F_AR16WR) X printf("\tthis file has the byte ordering of an AR16WR\n"); X if (fhdr.f_flags & F_AR32WR) X printf("\tthis file has the byte ordering of an AR32WR machine\n"); X if (fhdr.f_flags & F_AR32W) X printf("\tthis file has the byte ordering of an AR32W machine\n"); X if (fhdr.f_flags & F_PATCH) X printf("\tfile contains 'patch' list in optional header\n"); X if (fhdr.f_flags & F_NODF) X printf("\t(minimal file only) no decision functions for replaced functions\n"); X putchar('\n'); X printf("version: %d\n", (int)ahdr.vstamp); X printf("Text size: %x\n", ahdr.tsize); X printf("Data size: %x\n", ahdr.dsize); X printf("BSS size: %x\n", ahdr.bsize); X printf("Entry address: %x\n", ahdr.entry); X printf("Text base: %x\n", ahdr.text_start); X printf("Data base: %x\n", ahdr.data_start); X putchar('\n'); X X/* X "nn ssssssss xxxxxxxx xxxxxxxx xxxxxx xxxxxx xxxxxx xxxxxx ddddd ddddd */ Xprintf("seg name p.addr v.addr size data reloc lnos # rel # lno flags\n"); X for (i = 0; i < fhdr.f_nscns; i++) { X printf("%2d %8s %08x %08x %06x %5x %5x %5x %5x %5d %5d ", X i, shdr[i].s_name, X shdr[i].s_paddr, shdr[i].s_vaddr, shdr[i].s_size, X shdr[i].s_scnptr, shdr[i].s_relptr, shdr[i].s_lnnoptr, X shdr[i].s_nreloc, shdr[i].s_nlnno); X if (shdr[i].s_flags & STYP_REG) X printf("regular"); X if (shdr[i].s_flags & STYP_DSECT) X printf("dummy"); X if (shdr[i].s_flags & STYP_NOLOAD) X printf("noload"); X if (shdr[i].s_flags & STYP_GROUP) X printf("grouped"); X if (shdr[i].s_flags & STYP_PAD) X printf("padding"); X if (shdr[i].s_flags & STYP_COPY) X printf("copy"); X if (shdr[i].s_flags & STYP_INFO) X printf("comment"); X if (shdr[i].s_flags & STYP_LIB) X printf("lib"); X if (shdr[i].s_flags & STYP_OVER) X printf("overlay"); X if (shdr[i].s_flags & STYP_TEXT) X printf("text"); X if (shdr[i].s_flags & STYP_DATA) X printf("data"); X if (shdr[i].s_flags & STYP_BSS) X printf("bss"); X putchar('\n'); X X } X} X Xdumplibs() X{ X int i; X X for (i = 0; i < fhdr.f_nscns; i++) { X if ((shdr[i].s_flags & STYP_LIB) == 0) X continue; X } X} SHAR_EOF $TOUCH -am 1224131090 coffhdr.c && chmod 0660 coffhdr.c || echo "restore of coffhdr.c failed" set `wc -c coffhdr.c`;Wc_c=$1 if test "$Wc_c" != "4277"; then echo original size 4277, current size $Wc_c fi echo "End of part 2, continue with part 3" exit 0