-+-+-+-+-+-+-+-+ START OF PART 3 -+-+-+-+-+-+-+-+ X`20`20annotate.c`20pan.c`20grpan.c`20grpan-www.c`20audan.c`20globalhist.c`20im Vg.c`5C X`20`20picread.c`20xpmhash.c`20xpmread.c`20gifread.c`20pixmaps.c`5C X`20`20medcut.c`20mo-hdf.c XOBJS`20=`20main.obj,gui.obj,gui-dialogs.obj,gui-menubar.obj,gui-documents.obj, Vmo-www.obj,`5C X`20`20mo-dtm.obj,hotlist.obj,whine.obj,history.obj,`5C X`20`20annotate.obj,pan.obj,grpan.obj,grpan-www.obj,audan.obj,globalhist.obj,im Vg.obj,`5C X`20`20picread.obj,xpmhash.obj,xpmread.obj,gifread.obj,pixmaps.obj,`5C X`20`20medcut.obj,mo-hdf.obj X X!AUXCFILES`20=`20hdf-browse.c X!AUXOBJS`20=`20hdf-browse.obj XAUXCFILES`20= XAUXOBJS`20= X XHFILES`20=`20mosaic.h X X$(NAME).exe`20:`20$(OBJS)`20$(AUXOBJS)`20$(PROG_LIBS) X`09LINK$(LINK_OPTIONS)/MAP=$(NAME).map/Exe=$(NAME).exe`20$(OBJS),$(PROG_LIBSQ) V,`5B`5D$(LIBS) X!`09LINK$(LINK_OPTIONS)/Exe=$(NAME).exe`20$(OBJS)$(AUXOBJS),$(PROG_LIBSQ),`5B V`5D$(LIBS) X`09@`20Write`20SYS$Output`20"Linking`20done.`20Welcome`20to`20VMS`20Mosaic`202 V.0" X X$(OBJS)`20:`20$(HFILES) X Xgui.obj`20:`20xresources.h X Xhdf-browse.obj`20:`20hdf-browse.c`20`5B-.libhtmlw`5DHTML.h X`09$(CC)$(CDEFS)$(CQUAL)`20hdf-browse.c X X.c.obj`20: X`09$(CC)$(CDEFS)$(CQUAL)`20$*.C X Xclean`20: X`09Delete/Log`20*.OBJ;* $ call unpack [.SRC]DESCRIP.MMS;16 71987806 "" 7 9 13 $! $ create 'f' X/*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20System`20dependencies`20in V`20the`20W3`20library X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20SYSTEM`20DEPENDENCIES X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 X`20`20`20System-system`20differences`20for`20TCP`20include`20files`20and`20mac Vros.`20This X`20`20`20file`20includes`20for`20each`20system`20the`20files`20necessary`20for V`20network`20and X`20`20`20file`20I/O. X`20`20`20 X`20`20AUTHORS X`20`20 X`20`20TBL`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Tim`20Berners-Lee,`20 VW3`20project,`20CERN,`20 X`20`20EvA`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Eelco V`20van`20Asperen`20 X`20`20MA`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Marc V`20Andreessen`20NCSA X`20`20AT`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Alek Vsandar`20Totic`20 X`20`20SCW`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Susan V`20C.`20Weber`20 X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 X`20`20HISTORY: X`20`2022`20Feb`2091`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Written`20(TBL V)`20as`20part`20of`20the`20WWW`20library. X`20`2016`20Jan`2092`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20PC`20code`20fr Vom`20EvA X`20`2022`20Apr`2093`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Merged`20diffs V`20bits`20from`20xmosaic`20release X`20`2029`20Apr`2093`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Windows/NT`20c Vode`20from`20SCW X X`20`20Much`20of`20the`20cross-system`20portability`20stuff`20has`20been`20inte Vntionally X`20`20REMOVED`20from`20this`20version`20of`20the`20library`20by`20Marc`20A`20i Vn`20order`20to X`20`20discourage`20attempts`20to`20make`20"easy"`20ports`20of`20Mosaic`20for V`20X`20to`20non-Unix X`20`20platforms.`20`20The`20library`20needs`20to`20be`20rewritten`20from`20the V`20ground`20up;`20in X`20`20the`20meantime,`20Unix`20is`20*all*`20we`20support`20or`20intend`20to`20 Vsupport`20with X`20`20this`20set`20of`20source`20code. X X*/ X X#ifndef`20TCP_H X#define`20TCP_H X X/* X XDefault`20values X X`20`20`20These`20values`20may`20be`20reset`20and`20altered`20by`20system-speci Vfic`20sections X`20`20`20later`20on.`20`20there`20are`20also`20a`20bunch`20of`20defaults`20at V`20the`20end`20. X`20`20`20 X`20*/ X/*`20Default`20values`20of`20those:`20*/ X#define`20NETCLOSE`20close`20`20`20`20`20`20/*`20Routine`20to`20close`20a`20TC VP-IP`20socket`20`20`20`20`20`20`20`20`20*/ X#define`20NETREAD`20`20HTDoRead`20`20`20`20`20`20`20/*`20Routine`20to`20read V`20from`20a`20TCP-IP`20socket`20`20`20`20`20*/ X#define`20NETWRITE`20write`20`20`20`20`20`20/*`20Routine`20to`20write`20to`20a V`20TCP-IP`20socket`20`20`20`20`20`20*/ X X/*`20Unless`20stated`20otherwise,`20*/ X#define`20SELECT`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Can V`20handle`20>1`20channel.`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20*/ X#define`20GOT_SYSTEM`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20Can`20call V`20shell`20with`20string`20`20`20`20`20`20`20`20`20`20`20*/ X X#ifdef`20unix X#define`20GOT_PIPE X#endif X Xtypedef`20struct`20sockaddr_in`20SockA;`20`20/*`20See`20netinet/in.h`20*/ X X X#ifndef`20STDIO_H X#include`20 X#define`20STDIO_H X#endif X X#ifdef`20_AIX X#define`20AIX X#endif X#ifdef`20AIX X#define`20unix X#endif X X#ifdef`20_IBMR2 X#define`20USE_DIRENT`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20sys`20V`20s Vtyle`20directory`20open`20*/ X#endif X X/*`20Solaris.`20*/ X#if`20defined(sun)`20`26`26`20defined(__svr4__) X#define`20USE_DIRENT`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20sys`20V`20s Vtyle`20directory`20open`20*/ X#endif X X#if`20defined(__alpha) X#define`20USE_DIRENT X#endif X X#ifndef`20USE_DIRENT X#ifdef`20SVR4 X#define`20USE_DIRENT X#endif X#endif`20/*`20not`20USE_DIRENT`20*/ X X#include`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20For`20bzero V`20etc`20*/ X X/*`20Use`20builtin`20strdup`20when`20appropriate.`20*/ X#if`20defined(ultrix)`20`7C`7C`20defined(VMS)`20`7C`7C`20defined(NeXT) Xextern`20char`20*strdup`20(); X#endif X X X X/* X XVAX/VMS X X`20`20`20Under`20VMS,`20there`20are`20many`20versions`20of`20TCP-IP.`20Define V`20one`20if`20you`20do X`20`20`20not`20use`20Digital's`20UCX`20product: X`20`20`20 X`20`20UCX`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20DEC's V`20"Ultrix`20connection"`20(default) X`20`20WIN_TCP`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20From`20Wollong Vong,`20now`20GEC`20software. X`20`20MULTINET`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20From`20SRI,`20no Vw`20from`20TGV`20Inv. X`20`20DECNET`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Cern's`20TCP V`20socket`20emulation`20over`20DECnet X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20 X`20`20`20The`20last`20three`20do`20not`20interfere`20with`20the X`20`20`20unix`20i/o`20library,`20and`20so`20they`20need`20special`20calls`20to V`20read,`20write`20and X`20`20`20close`20sockets.`20In`20these`20cases`20the`20socket`20number`20is`20 Va`20VMS`20channel X`20`20`20number,`20so`20we`20make`20the`20@@@`20HORRIBLE`20@@@`20assumption`20 Vthat`20a`20channel X`20`20`20number`20will`20be`20greater`20than`2010`20but`20a`20unix`20file`20de Vscriptor`20less`20than X`20`20`2010.`20`20It`20works. X`20`20`20 X`20*/ X#ifdef`20vms X#ifdef`20WIN_TCP X#undef`20NETREAD X#undef`20NETWRITE X#undef`20NETCLOSE X#define`20NETREAD(s,b,l)`20`20((s)>10`20?`20netread((s),(b),(l))`20:`20read((s V),(b),(l))) X#define`20NETWRITE(s,b,l)`20((s)>10`20?`20netwrite((s),(b),(l))`20:`20write((s V),(b),(l))) X#define`20NETCLOSE(s)`20`20`20`20`20((s)>10`20?`20netclose(s)`20:`20close(s)) V X#endif`20/*`20WIN_TCP`20*/ X X#ifdef`20MULTINET X#undef`20NETCLOSE X#undef`20NETREAD X#undef`20NETWRITE X#ifdef`20NotBSN X#define`20NETREAD(s,b,l)`20`20((s)>10`20?`20socket_read((s),(b),(l))`20:`20rea Vd((s),(b),(l))) X#else X#define`20NETREAD(s,b,l)`20`20((s)>10`20?`20HTDoRead((s),(b),(l))`20:`20read(( Vs),(b),(l))) X#endif`20/*`20BSN`20*/ X#define`20NETWRITE(s,b,l)`20((s)>10`20?`20socket_write((s),(b),(l))`20:`20`5C V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20write((s),(b),(l))) X#define`20NETCLOSE(s)`20`20`20`20`20((s)>10`20?`20socket_close(s)`20:`20close( Vs)) X#endif`20/*`20MULTINET`20*/ X X/*`20`20`20`20`20`20Certainly`20this`20works`20for`20UCX`20and`20Multinet;`20n Vot`20tried`20for`20Wollongong X*/ X#ifdef`20MULTINET X#include`20"multinet_root:`5Bmultinet.include.sys`5Dtypes.h" X#include`20"multinet_root:`5Bmultinet.include`5Derrno.h" X#ifdef`20__TIME_LOADED X#define`20__TIME X#endif`20/*`20To`20avoid`20multiple`20defs.`20VAXC`20has`20__TIME_LOADED,`20Mu Vltinet`20__TIME`20BSN`20*/ X#include`20"multinet_root:`5Bmultinet.include.sys`5Dtime.h" X#else X#ifdef`20WIN_TCP X#define`20__STAT X#endif X#include`20 X#ifdef`20WIN_TCP X#undef`20__STAT X#endif X#include`20 X#include`20 X#endif`20/*`20multinet`20*/ X X#include`20 X X#ifndef`20STDIO_H X#include`20 X#define`20STDIO_H X#endif X X#include`20 X X#include`20unixio X X#define`20INCLUDES_DONE X X#ifdef`20MULTINET`20`20/*`20Include`20from`20standard`20Multinet`20directories V`20*/ X#include`20"multinet_root:`5Bmultinet.include.sys`5Dsocket.h" X#ifdef`20__TIME_LOADED`20`20/*`20defined`20by`20sys$library:time.h`20*/ X#define`20__TIME`20`20/*`20to`20avoid`20double`20definitions`20in`20next`20fil Ve`20*/ X#endif X#include`20"multinet_root:`5Bmultinet.include.netinet`5Din.h" X#include`20"multinet_root:`5Bmultinet.include.arpa`5Dinet.h" X#include`20"multinet_root:`5Bmultinet.include`5Dnetdb.h" X#include`20"multinet_root:`5Bmultinet.include.sys`5Dioctl.h" X X#else`20`20/*`20not`20multinet`20*/ X X#ifdef`20DECNET X#include`20"types.h"`20`20/*`20for`20socket.h`20*/ X#include`20"socket.h" X#include`20"dn" X#include`20"dnetdb" X/*`20#include`20"vms.h"`20*/ X X#else`20/*`20UCX`20or`20WIN`20*/ X X#ifdef`20CADDR_T X#define`20__CADDR_T X#endif`20/*`20BSN,`20include`20file`20problem`20socket.h`20<->`20xlib.h`20*/ X#include`20 X#include`20 X#include`20 X#include`20 X X#if`20!defined(WIN_TCP) X#ifndef`20NotBSN X#undef`20NETREAD X#define`20NETREAD`20read X#endif`20/*`20BSN`20for`20now`20*/ X#endif X X#endif`20`20/*`20not`20DECNET`20*/ X#endif`20`20/*`20of`20Multinet`20or`20other`20TCP`20includes`20*/ X X#define`20TCP_INCLUDES_DONE X X#endif`20`20/*`20vms`20*/ X X X X/* X XSCO`20ODT`20unix`20version X X`20*/ X X#ifdef`20sco X#include`20 X#define`20USE_DIRENT X#endif X X/* X XMIPS`20unix X X`20*/ X/*`20Mips`20hack`20(bsd4.3/sysV`20mixture...)`20*/ X X#ifdef`20mips Xextern`20int`20errno; X#endif X X X/* X XRegular`20BSD`20unix`20versions X X`20`20`20These`20are`20a`20default`20unix`20where`20not`20already`20defined`20 Vspecifically. X`20`20`20 X`20*/ X#ifndef`20INCLUDES_DONE X#include`20 X/*`20#include`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20not`20ultrix`20*/ X#include`20 X X#include`20`20`20`20`20`20`20`20`20`20`20/*`20independent`20*/ X#include`20`20`20`20`20`20`20`20/*`20independent`20*/ X#include`20 X#include`20 X#include`20`20`20`20`20`20`20`20/*`20For`20open()`20etc`20*/ X#define`20INCLUDES_DONE X#endif`20`20/*`20Normal`20includes`20*/ X X/*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Directory V`20reading`20stuff`20-`20BSD`20or`20SYS`20V X*/ X#ifdef`20unix`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20 Vif`20this`20is`20to`20compile`20on`20a`20UNIX`20machine`20*/ X#define`20GOT_READ_DIR`201`20`20`20`20/*`20if`20directory`20reading`20function Vs`20are`20available`20*/ X#ifdef`20USE_DIRENT`20`20`20`20`20`20`20`20`20`20`20`20`20/*`20sys`20v`20versi Von`20*/ X#include`20 X#define`20direct`20dirent X#else X#include`20 X#endif X#if`20defined(sun)`20`26`26`20defined(__svr4__) X#include`20 X#include`20 X#endif X#endif X X/* X XDefaults X X`20`20INCLUDE`20FILES`20FOR`20TCP X`20`20 X`20*/ X#ifndef`20TCP_INCLUDES_DONE X#include`20`20/*`20EJB`20*/ X#include`20 X#include`20 X#ifndef`20__hpux`20/*`20this`20may`20or`20may`20not`20be`20good`20-marc`20*/ X#include`20`20`20`20`20`20`20/*`20Must`20be`20after`20netinet/in. Vh`20*/ X#endif X#include`20 X#endif`20`20/*`20TCP`20includes`20*/ X X X/* X X`20`20MACROS`20FOR`20MANIPULATING`20MASKS`20FOR`20SELECT() X`20`20 X`20*/ X#ifdef`20SELECT X#ifndef`20FD_SET Xtypedef`20unsigned`20int`20fd_set; X#define`20FD_SET(fd,pmask)`20(*(pmask))`20`7C=`20`20(1<<(fd)) X#define`20FD_CLR(fd,pmask)`20(*(pmask))`20`26=`20`7E(1<<(fd)) X#define`20FD_ZERO(pmask)`20`20`20(*(pmask))=0 X#define`20FD_ISSET(fd,pmask)`20(*(pmask)`20`26`20(1<<(fd))) X#endif`20`20/*`20FD_SET`20*/ X#endif`20`20/*`20SELECT`20*/ X X#endif`20/*`20TCP_H`20*/ $ call unpack [.LIBWWW2]TCP.H;5 87638063 "" 15 10 13 $! $ create 'f' X/**************************************************************************** V X`20*`20NCSA`20Mosaic`20for`20the`20X`20Window`20System`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20* X`20*`20Software`20Development`20Group`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20* X`20*`20National`20Center`20for`20Supercomputing`20Applications`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20University`20of`20Illinois`20at`20Urbana-Champaign`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20605`20E.`20Springfield,`20Champaign`20IL`2061820`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20* X`20*`20mosaic@ncsa.uiuc.edu`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20Copyright`20(C)`201993,`20Board`20of`20Trustees`20of`20the`20University V`20of`20Illinois`20`20`20`20`20`20* X`20*`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20* X`20*`20NCSA`20Mosaic`20software,`20both`20binary`20and`20source`20(hereafter, V`20Software)`20is`20`20`20`20* X`20*`20copyrighted`20by`20The`20Board`20of`20Trustees`20of`20the`20University +-+-+-+-+-+-+-+- END OF PART 3 +-+-+-+-+-+-+-+-