tsmApi Change Log


Tue Jul 30 14:50:09 2002  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c: add Mike McCann's changes for writing the GeoVRML
 	EXTERNPROTO URLs. Also fixed a bug that caused make_geovrml to
 	fail if no -touch option was given.

Thu Jul 18 09:50:15 2002  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmWriteRows.c: missing variable parameter in error printf()

2002-03-26    <Martin Reddy@HEATHER>

	* tsmGeoVRML.c: convert all \% escape sequences to %% for all
	printf style strings. MSVC warns that this is not recognized.

2002-03-17    <Martin Reddy@HEATHER>

	* tsmWriteRows.c (tsmWriteRows_convertTileFormat): update the
	check for a word overflow when downsampling from 32-bit to 16-bit

	* tsmReadRowsRAW.c (tsmReadRowsRAW_new): check that the file is an
	integral multiple of the specified pixel size. If not, issue a
	warning message as this can corrupt the tile set.

2002-03-15    <Martin Reddy@HEATHER>

	* tsmWriteRows.c (tsmWriteRows_new): initialize a variable to hold
	the number of resampling overflows when converting from 32-bit ->
	16-bit etc.
	(tsmWriteRows_destroy): output a warning message if any resampling
	errors occured during this pyramid creation process.
	(tsmWriteRows_convertTileFormat): use PR_ntohl and friends to make
	sure that we resample data correctly on little endian machines
	such as Intels. Also record any occurences when we overflow during
	a downsample of data values such as 32-bit to 16-bit.

	* tsmWriteRowsPPM.c: removed - not used anywhere

	* tsmWriteRowsPPM.h: removed - not used anywhere

2002-03-13  Lee Iverson  <leei@ece.ubc.ca>

	* tsmExtProts.h (tsmRequestNotifyCB): New definition.  Type of
	  function to receive the tsmRequestNotifyReceive callback.
	* tsmHost_web.c (tsmReaderThread_host): Grab requestLists
	  before reading tile and use that for notification.
	* tsmRequest.c (struct tsmRequestList_): Use tsmRequestNotifyCB
	(tsmRequestNotifyReceive): Use tsmRequestNotifyCB
	(tsmRequestReceive): Deliver tile whether found in list or not.
	  Still remove it if found though.
	* tsmRequest.h (tsmRequestReceive): Add new received argument.
	* tsmRequestSrv.c (tsmReqReceivers): New.  Returns a copy of the
	  current request list for a request.
	(tsmReqServerQueueTile): Use reqLists argument to process tile.
	  Notify all request lists, not just those that still include it.
	* tsmRequestSrv.h (tsmReqReceivers): New decl.
	(tsmReqServerQueueTile): Add reqLists argument.
	* tsmTile_local.c (tsmReaderThread_local): Grab requestLists
	  before reading tile and use that.  Thus, it is the requestList
	  at the time we start to read that is used to communicate updates.

2002-03-11  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmReadRowsDEM.c: applied fix for DEM file reader, merged from
	fix made to DEM2GeoEG utility

2002-02-15  Lee Iverson  <leei@ece.ubc.ca>

	* Makefile.in: Regen with automake 1.5
	* aclocal.m4: Ditto
	* config.h.in: Ditto
	* config.guess, config.sub: Delete.

	* configure.in: Find and use libpng library
	* configure: Regen with autoconf 2.52
	
	* tsmHost_web.c (tsmAddRequest_host): Add heap push tracing.
	(tsmReaderThread_host): Only enable ghttp_debug for debug level 3.
	  Add heap push/pop tracing.

2002-01-27  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c: added recent updates from Mike McCann

2001-12-20    <Martin Reddy@HEATHER>

	* tsmUtils.c (tsmStringCat): Concatenates a string onto the end of
	a (possibly) existing string, growing the size of the original
	string and returning its (potentially) new address as the
	result

Mon Dec 17 11:05:44 2001    <reddy@MAGNOLIA>

	* tsmImage.c (tsm_png_read): [new func] provides support for
 	reading PNG files in the tsmReadImage() function. This provides
 	support for PNG textures in VRML models within TerraVision.

Thu Dec 13 17:29:07 2001    <reddy@MAGNOLIA>

	* tsmUrlToFile.c (tsmDoesUrlExist): updated to correctly deal with
 	local host URLs too.

Thu Dec 13 11:03:18 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmDoesUrlExist): create a convenience function
	to tsmUrlExists without the http conn param.

Tue Nov 20 10:52:05 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c: include Mike McCann's edits to add gzipped support
	for .wrl files (.wrz).

Mon Nov 12 11:50:15 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* TsTileSpecParse.c (tspParseTspecLine): parse out the sky,
 	two-sided, view-from-below, and origin-altitude entries from the
 	tspec file.

Fri Nov  9 11:49:38 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c: updated sources from Mike McCann to include the
	specification of a max range for GeoTouchSensor LODs and some
	minor bug fixes

Tue Oct 30 10:29:02 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.h: Merge in updates from Mike McCann to add GeoOrigin
 	support to the GeoElevationGrids creation interface

	* tsmGeoVRML.c: Merge in updates from Mike McCann of MBARI to
 	support GeoOrigin, a lat/long HUD display, and GeoTouchSensor
 	expansion of tiles.

Wed Sep 19 14:30:41 2001    <reddy@MAGNOLIA>

	* tsmUtils.c (tsmSystem): new function - executes a command. Uses
 	system() under Unix and CreateProcess() under Windows.
	(tsmShowUrl): if running under Windows, first try to run the
 	default web browser by doing a $COMSPEC /c start <url>

2001-08-16  Lee Iverson  <leei@AI.SRI.COM>

	* TsTileSpecDecs.x (struct CoordTspec): Add originAltitude.
	(struct Pyramid): Add sky, twoSided, fromBelow.
	* TsTileSpecDecs.h: Regen
	* TsTileSpecDecs_xdr.c. Regen.
	* TsTileSpecGen.c (tspCreatePyramid): Initialize new pyramid
	  fields from params.
	* TsTileSpecIn.c (tspReadPyramidTspec1): Read new fields from
	  tspec. 
	(tspReadCoordTspec1): Read originAltitude value.
	* TsTileSpecOut.c (tspSaveCoordTspec_fp): Write out
	  originAltitude.
	(tspSavePyramidTspec_fp): Write out new fields.
	* tsmCreate.h (struct TsmTspecParams): Add fields for altitude,
	  sky, two_sided, and view_from_below.

	* tsmVRML.c (tsmWriteGeotile): Clean up unused variables.
	
2001-07-25  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c (tsmReaderThread_host): Actually retry requests up
	  to three times.
	* tsmRequestSrv.c (tsmReqServerQueueTile): Consider a tile
	  received if *any* of the request lists successfully receive it.
	  Free tileHeader if tile was received.
	
Thu Jul 19 15:58:54 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmArg.c (tsmParseInitArgs): initialise the tracing settings
	when a command line program uses -debug

	* tsmTile_wms.c (tsmWMSReadNextTile): improved error messages from
	a WMS tile failure. Now differentiates between a corrupt tile and
	an unknown file format.

	* tsmWMS.c (tsmWMSGetCapabilities): set the format ID
	appropriately and favour using JPEG as the tile request format
	instead of LRBT when talking to a Web Map Server.

	* tsmWMS.h (TSM_WMS_FORMAT_JPEG): create a simple #define list for
	the WMS format to be used for tile requests. This lets us easily
	ascertain the format without doing a strcmp.

2001-07-19  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmTile.c (struct ReceiveClosure): Use unsigned bitfield for
	  status.

2001-07-12  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequest.c (tsmRequestSubmit): Clean up trace code.
	(tsmRequestClaim): Empty readyList when making available.
	(tsmRequestReceive): Expand trace verbosity.
	* tsmRequestSrv.c (tsmReqElemReprioritize): Increase level of
	  tracing.
	(tsmReqServerRescind): Improve tracing, including flagging all
	  branches of conditional.
	(tsmReqServerSubmit): Improve tracing.
	(tsmReqServerClaimList): Ditto.
	
Fri Jun 29 16:06:17 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmWMS.c (tsmWMSGetCapabilities): clean up the http connection
	when done getting the Capabilities XML

2001-07-10  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequestSrv.c (tsmReqElemSetStatus): Bump up trace level to 2
	(tsmReqElemAllocate): Fix typo - doh!
	(tsmReqElemReprioritize): Bump up trace level of reconstruction to 3
	  Fix trace argument in reconstruction
	(tsmReqServerSubmit): Show conn.generic in trace message.
	* tsmTile_local.c (tsmAddRequest_local): Show conn.generic in
	  trace message.

2001-07-09  Lee Iverson  <leei@canoe.ai.sri.com>

	* tsmRequestSrv.c (tsmReqServerSubmit): Indent for tracing.
	(tsmReqServerAssignRequests): Tag and indent for tracing.
	* tsmTile_local.c (tsmAddRequest_local): Indent for tracing.

2001-07-09  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnectionInt.h (typedef ActualConnection): Remove.
	(struct ActualConnection_): Remove.
	* tsmHost_web.c (tsmRemoveRequest_host): Reset conn.generic
	* tsmRequestSrv.c (tsmReqElemCreate): Initialize conn.generic.
	(tsmReqElemReprioritize): Add better tracing.
	(tsmReqServerRescind): Use conn.generic
	(tsmReqServerSubmit): Show existing priority.
	* tsmRequestSrv.h (struct tsmReqElem_): Delete conn.actual.
	* tsmTile_local.c: Include <assert.h>
	(tsmAddRequest_local): Consolidate with tsmAddRequestActual_local
	(tsmRemoveRequest_local): Consolidate with
	  tsmRemoveRequestActual_local
	(tsmReprioRequest_local): Consolidate with
	  tsmReprioRequestActual_local

	* tsmConnect_dpss.h (struct TsmConnectionDpss): Replace aconn with
	  TsmConnectionCommon struct.
	* tsmConnection_dpss.c (tsmDisconnect_dpss): Pass TsmConnection
	(tsmBeginLogging_dpss): Ditto.
	(tsmEndLogging_dpss): Ditto.
	
	* tsmTile_dpss.c (tsmStartRequestThread_dpss): Cope with removed
	  ActualConnection.
	* tsmTspec_dpss.c (tsmReadTspec_dpss): Cope with removed
	  ActualConnection.
	(tsmWriteTspec_dpss): Ditto.

2001-07-09  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsm.h: Don't include (and thus expose) tsmWMS.h
	* tsmConnectionParamsInt.h: Don't include tsmWMS.h since this has
	  too large a dependency footprint.
	* tsmConnect_wms.h: Include tsmWMS.h here.
	* tsmDatabase_wms.c: ... and here
	* tsmHost_web.c: ... and here
	* tsmTspec_wms.c: ... and here
	* tsmWMS.c: ... and here
	* tsmInternal.h (typedef tsmWMS): Forward decl for opaque refs.
	* tsmWMS.h (struct tsmWMS_): Adapt to forward ref.
	
2001-07-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmTile.c (tsmAllocReadTile): More careful version of Martin's
	  patch of Mon Jun 25.  We still need to ensure that we got the
	  correct notification and that we weren't interrupted.

Fri Jun 29 16:06:17 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_wms.c (tsmWMSReadNextTile): support reading JPEG tiles
	in addition to raw format tiles

	* tsmWMS.c (tsmWMSGetCapabilities): clean up the XML parse tree
 	when done
	(tsmWMSGetCapabilities): look for a global SRS and global
 	ScaleHint tag and use this if a Layer does not define either. Then
 	try using the ScaleHint tag when the layer resolution is not
 	defined.
	(tsmWMSAddLayer): remove new line characters from all layer
 	strings (esp. description) as these case our database parser
 	problems.

	* tsmTspec_wms.c (tsmDoesTspecExist_wms): support both LAYERS= and
	LAYER= for finding a dataset name in a WMS URL
	(tsmReadTspec_wms): ditto

	* tsmTile_wms.c (tsmWMSReadNextTile): extract layer name from a
 	URL using LAYERS= parameter, and then try LAYER=

	* tsmWMS.c (tsmWMSDatasetUrl): parameter is LAYERS, not LAYER

Thu Jun 28 17:21:09 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* logging.c (NetLoggerWriteString): do a cast of a PRTime to long
	to avoid gcc-dependent symbol under Solaris

Tue Jun 26 17:14:16 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile.c (tsmAllocReadTile): add tile coordinate to error
	messages for more easy debugging

Mon Jun 25 14:17:54 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmHost_web.c (tsmReaderThread_host): break out of inifinite
	loop if a tile request returns TSM_NODATA

	* tsmTile.c (tsmAllocReadTile): break out of PR_WaitCondVar loop
	if the function returns PR_SUCCESS. Previously the value of
	rcv.buf was used, which meant that the loop would hang if a NULL
	tile buffer was returned (in the case of TSM_NODATA for instance)

	* tsmTile_local.c (tsmReaderThread_local): break out of infinite
 	loop if a tile is requested but the data does not exist (i.e. when
 	a TSM_NODATA is returned).

	* tsmTspec_wms.c (tsmReadTspec_wms): deal with fp rounding errors
	when trying to compute a tileset's pixel width and height based
	upon the geographic bbox and resolution returned by a WMS.

	* tsmWMS.c (tsmWMSGetException): fix bug in locating the error
 	description tag in a WMS Service Exception XML.

Thu Jun 21 14:06:01 2001    <reddy@MAGNOLIA>

	* tsmConnection_web.c (tsmConnect_web): only initialise the http
 	specific connection stuff if the common initialization succeeded.

	* tsmConnection_dpss.c (tsmConnect_dpss): ditto

	* tsmConnection_local.c (tsmConnect_local): ditto

	* tsmConnection_wms.c (tsmConnect_wms): ditto

2001-06-20  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection.c (tsmConnectCommon): Disconnect on failure.
	(tsmDisconnectCommon): Don't free connect here.
	* tsmConnection_local.c (tsmConnect_local): Immediately return if
	  tsmConnectCommon fails.
	(tsmDisconnect_local): Free connection memory here.
	* tsmConnection_web.c (tsmConnect_web): Immediately return if
	  tsmConnectCommon fails.
	(tsmDisconnect_web): Free connection memory here.
	* tsmConnection_wms.c (tsmConnect_wms): Immediately return if
	  tsmConnectCommon fails.
	(tsmDisconnect_wms): Free connection memory here.

Wed Jun 20 15:42:17 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_wms.c: Add #include "tsmRequest.h"

	* tsmTspec_wms.c: Add #include "tsmConnectionParamsInt.h"

	* tsmConnection_wms.c: Add #include "tsmConnectionParamsInt.h"

Mon Jun 18 14:50:19 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmDatabase_local.c (tsmParseDatabaseLine): add parsing for the
	new tilesize and overlap fields of the database

	* tsmDatabase.c (tsmPrintDataSet): output the new tilesize and
	overlap field values
	(tsmUpdateDatabaseFromServerCB): read the tilesize and overlap
	values from the dataset's tspec file and fill in the fields in the
	TsmDataSet structure

	* tsmDatabase.h: added tilesize and overlap fields to TsmDataSet

	* tsmDatabase.c (tsmReadServer): add support for WMS protocol when
 	reading a terrain database
	(tsmPrintDatabase): update the URL and formatting for the Dataset
 	Database

2001-06-17  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTspec.c (tsmReadTspec): call the tsmReadTspec_wms routine to
	create a tspec on the fly for a Web Mapping Server dataset

	* tsmPurl.c: if a URI has a question mark in it, then the protocol
	is determined to be a Web Mapping Server

	* tsmConnection.c (tsmConnect): do WMS-specific initialization if
	the Purl is for a WMS URL

	* tsmPurlDefns.x: added tsmWMS to the purl TsmProtocol enum

Fri Jun 15 10:09:38 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmConnectionParams.c (tsmSetParam): add TSM_PARAM_WMS support

	* tsmConnectionParams.h (TSM_PARAM_WMS): add TSM_PARAM_WMS
	connection parameter to specify a tsmWMS structure

	* tsmConnection.h: add TSM_WMS to TsmConnectionType

2001-06-19  Lee Iverson  <leei@canoe.ai.sri.com>

	* tsmUrlToFile.c (tsmOpenStream): Instead of checking for "r",
	  check for the absence of 'w' character.  This was breaking HTTP
	  FeatureTexLoad.

2001-06-19  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c: Include "tsmRequestSrv.h"
	(tsmAddRequest_host): Register status change with tsmReqElemAllocate
	(tsmReaderThread_host): Register status change with tsmReqElemReading
	  and tsmReqElemAllocate
	(
	* tsmInternal.h: Don't include "tsmConnectionInt.h" or
	  "tsmConnectionParamsInt.h"
	(struct tsmRequestServer): Move typedef to here.
	(struct tsmReqElem): Move typedef to here.
	* tsmRequestSrv.c: Include "tsmConnectionInt.h"
	(tsmReqElemSetStatus): New. Register and report a status change
	  for tsmTileReqElem.
	(tsmReqElemAllocate): New. Register a chnage to reqAllocated.
	(tsmReqElemReading): New. Register a change to reqReading.
	(tsmReqElemUpdate): Change status with tsmReqElemSetStatus
	(tsmReqElemCreate): Initialize idx.
	(tsmReqServerQueueTile): Change status with tsmReqElemSetStatus
	(tsmReqServerDequeueTile): Ditto.
	* tsmRequestSrv.h (struct tsmRequestServer): Move typedef to
	  tsmInternal.h
	(enum tsmReqStatus): Add reqReading and reqDelivered status.
	(struct tsmReqElem): Move typedef to tsmInternal.h
	(tsmReqElemAllocate): New decl.
	(tsmReqElemReading): New decl.

	* TsTileSpecUtils.c: Include "tsmConnectionInt.h"
	* tsmArg.c: Include "tsmConnectionInt.h"
	* tsmChecksum.c: Include "tsmConnectionInt.h"
	* tsmConnect_dpss.h: Include "tsmConnectionInt.h"
	* tsmConnect_local.h: Include "tsmConnectionInt.h"
	* tsmConnect_web.h: Include "tsmConnectionInt.h"
	* tsmConnection.c: Include "tsmConnectionInt.h"
	  Include "tsmConnectionParamsInt.h"
	  Include "tsmRequestSrv.h"
	* tsmConnectionInt.h: Don't include "tsmRequestSrv.h"
	* tsmConnectionParams.c: Include "tsmConnectionParamsInt.h"
	* tsmConnection_local.c: Include "tsmConnectionParamsInt.h"
	  Include "tsmRequestSrv.h"
	* tsmConnection_web.c: Move ghttp.h include inside HAVE_HTTP
	  Include "tsmConnectionParamsInt.h"
	  Include "tsmRequestSrv.h"
	* tsmCreate.c: Include "tsmConnectionInt.h"
	  Include "tsmConnectionParamsInt.h"
	* tsmEmulate.c: Include "tsmConnectionInt.h"
	* tsmGeoVRML.c: Include "tsmConnectionParamsInt.h"
	* tsmImage.c: Include "tsmConnectionInt.h"
	* tsmLocalDbase.c: Include "tsmConnectionInt.h"
	* tsmTile.c: Include "tsmConnectionInt.h"
	* tsmTile_local.c: Include "tsmRequestSrv.h"
	* tsmTile_web.c: Include "tsmRequestSrv.h"
	* tsmTspec.c: Include "tsmConnectionInt.h"
	  Include tsmConnectionParamsInt.h"
	* tsmTspec_local.c: Include "tsmConnectionParamsInt.h"
	* tsmTspec_web.c: Include "tsmConnectionParamsInt.h"
	* tsmUtils.c: Include "tsmConnectionInt.h"
	* tsmVRML.c: Include "tsmConnectionInt.h"
	  Include "tsmConnectionParamsInt.h"
	* tsmVRMLUtils.c: Include "tsmConnectionParamsInt.h"

Tue Jun 12 15:04:52 2001    <reddy@MAGNOLIA>

	* tsmTile.c (tsmTileReqAdd): return FALSE if the requested level
 	is not valid, or if the tile (x,y) does not exist in the level.

2001-06-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c (tsmReaderThread_host): Improve trace messages.
	* tsmTile_local.c (tsmReaderThread_local): Improve trace messages.

2001-06-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c (tsmReaderThread_host): Enable ghttp_dbeug when
	  trace level>= 2.

Thu Jun  7 14:26:48 2001  Lee Iverson  <leei@AI.SRI.COM>

	* tsmHost_web.c (tsmAddRequest_host): Add tracing.
	(tsmRemoveRequest_host): Add tracing.
	(trace_req): New.  Callback for heap_forall.  Prints requests.
	(tsmReaderThread_host): Add tracing of heap contents when not empty.

2001-06-07  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c (tsmReaderThread_host): Exit properly on interrupt.

Wed Jun  6 22:57:05 2001  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmUrlToFile.c (tsmReadHttpFile): Properly initialize and check
	  status of redirect_url.

Thu May 31 11:05:42 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmJPEG.c: implement the skip_input_data callback for the jpeg
 	decompressor. Didn't seem to need this for TV JPEG TIFFs, but it
	was needed to decompress TerraServer JPEG files.

	* tsmUrlToFile.c (tsmReadHttpFile): check for and correctly handle
	http redirect results when grabbing an http file (301 and 302).

	* tsmJPEG.c (tsmJPEGCompress): add a tsmJPEGCompress function that
	allows any buffer size to be compressed. The tsmJPEGCompressTile
	function only handled buffers of one tile size.

Sat May 12 16:06:16 2001    <reddy@MAGNOLIA>

	* tsmArg.c (tsmParseVRMLArgs): support a -onesided option for the
 	creation of GeoVRML geometry.

	* tsmConnectionParams.h (TSM_PARAM_SOLID): added a new connection
 	parameter: TSM_PARAM_SOLID to determine whether GeoVRML geometry
 	is created one- or two-sided.

	* tsmGeoVRML.c (TsmGeoVRML_uv2gcc): fix transposed lat/long pair
	(TsmGeoVRML_gcc2uv): fix transposed lat/long pair

Fri May 11 16:39:19 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): support UTM
	GeoTIFF images as output by ERDAS Imagine.

Fri Apr 20 14:09:37 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmConnection_local.c (tsmConnect_local): only create the TIFF
	read level locks if we have a read connection, otherwise we
	reference a NULL tspec.
	(tsmDisconnect_local): only free the read level locks if they were
	actually allocated (not done for a write connection).

	* logging.c (NetLoggerWriteString): fix the generation of
	NetLogger timestamps using the NSPR time functions

Thu Apr 12 10:43:57 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_local.c (readNextTile): move the logging of TV_TILE_READ
	events down into the actual read function for localdisk.

	* tsmHost_web.c (readNextTile): move the logging of TV_TILE_READ
	events down into the actual read function for http.

Tue Apr 10 13:32:28 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmConnection.c (tsmLog): lock down the function and fix a bug
 	which could cause competing threads to write over each others log
 	events.

Mon Apr  9 13:09:23 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_web.c (tsmAddRequest_web): create a NetLogger
	TV_TILE_REQ event.

	* tsmTile_local.c (tsmAddRequestActual_local): create a NetLogger
 	TV_TILE_REQ event.

2001-03-14  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequestSrv.c (tsmReqServerThread): Initialize status to
	  PR_SUCCESS in case tsmReqServerNextReady() returns successfully.

2001-03-07  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmHost_web.c: Add (oops)!

	* Makefile.in: Regen with automake-1.4d
	* aclocal.m4: Ditto.
	* missing: Upgrade to automake-1.4d
	* config.h.in: Regen
	* configure: Regen

2001-03-07  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnect_web.h: Delete !HOST_CONNECT branch.  Now always used.
	(struct TsmConnectionHttp): Delete.
	(struct TsmConnectionHTTP): Delete !HOST_CONNECT branch
	* tsmConnection_web.c: Delete !HOST_CONNECT branch.  Now always used.
	* tsmTile_web.c: Delete !HOST_CONNECT branch.  Now always used.

2001-03-02  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnect_web.h (TsmConnectionHTTP): New.  HTTP-specific
	  subclass of TsmConnectionCommon.  Conditionalize on HOST_CONNECT
	(struct TsmConnectionHttp): Make tsm_conn field a
	  TsmConnectionHTTP
	(tsmOpenHttpConnection, etc.): Move decls to tsmIntProts.h
	(tsmOpenHostConnection_web): New decl.
	(tsmCloseHostConnection_web): New decl.
	(tsmAddRequest_host): New decl.
	(tsmRemoveRequest_host): New decl.
	(tsmReprioRequest_host): New decl.
	(tsmCheckTileFormat_host): New decl.
	(tsmCheckTIFFFormat_host): New decl.
	* tsmConnection.c (tsmDisconnectCommon): Don't destroy
	  non-existent lock.
	* tsmConnectionInt.h (struct TsmConnectionCommon): Remove
	  type-specific fields: lock, numReaders, nextReader, readers,
	  writer and aux.
	* tsmConnection_web.c (tsmConnect_web): Adapt for use of
	  TsmConnectionHTTP and TsmConnectionHttp* instead of
	  ActualConnection.
	  Initialize properly when HOST_CONNECT defined.
	(tsmActualConnect_web, tsmDisconnectActual_web): Adapt for use of
	  TsmConnectionHTTP and TsmConnectionHttp* instead of
	  ActualConnection.
	(tsmDisconnect_web): Disconnect properly when HOST_CONNECT defined.
	* tsmTile_web.c: Conditionalize implementation on definition of
	  HOST_CONNECT.
	#if !defined(HOST_CONNECT)
	(tsmAddRequestActual_web, tsmRemoveRequestActual_web,
	 tsmReprioRequestActual_web, readNextTile,
	 tsmCheckTileFormatActual_web, tsmCheckTIFFFormatActual_web): Use
	  TsmConnectionHttp* instead of ActualConnection.
	(tsmAddRequest_web): Pass proper value to tsmAddRequestActual_web
	(tsmRemoveRequest_web): Pass proper value to
	  tsmRemoveRequestActual_web
	(tsmReprioRequest_web): Pass proper value to
	  tsmReprioRequestActual_web
	(tsmReaderThread_web): Pass correct value to readNextTile.
	(tsmCheckTileFormat_web): Pass proper value to
	  tsmCheckTileFormatActual_web
	(tsmCheckTIFFFormat_web): Pass proper value to
	  tsmCheckTIFFFormatActual_web
	#endif
	#if defined(HOST_CONNECT)
	(tsmAddRequest_web): Call tsmAddRequest_host
	(tsmRemoveRequest_web): Call tsmRemoveRequest_host
	(tsmReprioRequest_web): Call tsmReprioRequest_host
	#endif

	* tsmConnect_local.h (struct TsmConnectionLocal): Make conn point
	  to a TsmConnectionLOCAL
	(struct TsmConnectionLOCAL): New. Local file-specific subclass of
	  TsmConnection.
	* tsmConnection_local.c (tsmConnect_local, tsmActualConnect_local,
	 tsmDisconnectActual_local, tsmDisconnect_local): Adapt for use
	  of TsmConnectionLOCAL and TsmConnectionLocal* instead of
	  ActualConnection.
	* tsmTile_local.c (tsmAddRequestActual_local,
	 tsmRemoveRequestActual_local, tsmReprioRequestActual_local,
	 readNextTile, tsmCheckTileFormatActual_local,
	 tsmCheckTIFFFormatActual_local, tsmWriteTileActual_local): Use
	 TsmConnectionLocal* instead of ActualConnection.
	(tsmAddRequest_local): Update call to tsmAddRequestActual_local.
	(tsmRemoveRequest_local): Update call to
	  tsmRemoveRequestActual_local.
	(tsmReprioRequest_local): Update call to
	  tsmReprioRequestActual_local.
	(tsmReaderThread_local): Update call to readNextTile.
	(struct TIFFHandle): Make connect field a TsmConnectionLOCAL.
	(tiffCacheHandle): Use TsmConnectionLOCAL instead of
	  tsmConnection.
	(tiffCacheClose): Update for change to TIFFHandle
	(tsmReadTIFF_local): Update for change to TsmConnectionLOCAL
	(tsmWriteTile_local): Update for change to TsmConnectionLOCAL and
	  tsmWriteTileActual_local.
	(tsmWriteTILE_local, tsmWriteTIFF_local): Update for change to
	  TsmConnectionLOCAL.
	(tsmCheckTileFormat_local): Update call to
	  tsmCheckTileFormatActual_local.
	(tsmCheckTIFFFormat_local): Update call to
	  tsmCheckTIFFFormatActual_local.

	* tsmIntProts.h (tsmOpenHttpConnection): Decl moved here from
	  tsmConnect_web.h.
	(tsmCloseHttpConnection): Ditto.
	(tsmUrlToMemory): Ditto.
	(tsmUrlToFile): Ditto.
	(tsmUrlToTempFile): Ditto.
	(tsmUrlToBuffer): Ditto.
	(tsmUrlMimeType): Ditto.
	(tsmUrlExists): Ditto.
	* tsmPyramidInfo_web.c: Remove #include "tsmConnect_web.h"
	* tsmTspec_web.c: Remove #include "tsmConnect_web.h"
	* tsmUrlToFile.c: Remove #include "tsmConnect_web.h"
	(tsmReadHttpFile): Correct reuse and closure of http connection.
	  Make sure that it closes when connp is NULL.
	
2001-03-01  Lee Iverson  <leei@Canada.AI.SRI.COM>

	Remove entire ActualConnection-based virtual function
	infrastructure and replace with direct virtual functions on
	TsmConnection.

	* tsmConnect_local.h (tsmDisconnect_local): Update decl.
	(tsmAddRequest_local): Ditto.
	(tsmReprioRequest_local): Ditto.
	(tsmRemoveRequest_local): Ditto.
	(tsmCheckTileFormat_local): Ditto.
	(tsmCheckTIFFFormat_local): Ditto.
	(tsmReadNextTile_local): Delete decl.
	* tsmConnect_web.h (tsmDisconnect_web): Update decl.
	(tsmAddRequest_web): Ditto.
	(tsmReprioRequest_web): Ditto.
	(tsmRemoveRequest_web): Ditto.
	(tsmCheckTileFormat_web): Ditto.
	(tsmCheckTIFFFormat_web): Ditto.
	(tsmReadNextTile_web): Delete decl.
	* tsmConnection.c (tsmConnectionVTable): Delete.
	(tsmConnect): Modify to create TsmConnection structure by calling
	  type-specific factory methods.  Move most initialization into...
	(tsmConnectCommon): ...here.  Generic connection initialization.
	(makeActualConnection): Delete.
	(tsmvDisconnect): Delete.
	(tsmDisconnectCommon): New. Undo generic connection initialization
	  performed by tsmConnectionInit.
	(tsmvBeginLogging): Remove call to tsmBeginLogging_actual
	(tsmvEndLogging): Remove call to tsmEndLogging_actual
	(tsmDisconnect_actual): Delete.
	(tsmWriteTile_actual): Delete.
	(tsmCheckTileFormat_actual): Delete.
	(tsmCheckTIFFFormat_actual): Delete.
	(tsmBeginLogging_actual): Delete.
	(tsmEndLogging_actual): Delete.
	(tsmAddRequest_actual): Delete.
	(tsmRemoveRequest_actual): Delete.
	(tsmReprioritizeRequest_actual): Delete.
	(tsmvAddRequest): Delete.
	(tsmvRemoveRequest): Delete.
	(tsmvReprioritizeRequest): Delete.
	(tsmWriteTile, tsmCheckTileFormat, tsmCheckTIFFFormat): Move to
	  tsmTile.c 
	(tsmBeginLogging, tsmEndLogging): Protect against null function
	  pointer.
	* tsmConnectionInt.h (tsmConnect_web): Update decl as
	  HTTP-specific creation of TsmConnection.
	(tsmConnect_dpss): Update decl as DPSS-specific creation of
	  TsmConnection.
	(tsmConnect_local): Update decl as local file-specific creation of
	  TsmConnection.
	(tsmConnectCommon): New decl.
	(tsmDisconnectCommon): New decl.
	(struct ActualConnectionVTable): Delete.
	(struct ActualConnection): Remove vtable.
	* tsmConnection_dpss.c (vtable_dpss): Change to TsmConnectionVTable
	(tsmConnect_dpss): Modify to initialize the TsmConnection instead
	  of an ActualConnection.
	(tsmActualConnect_dpss): New.  Moved ActualConnection
	  initialization here from old version of tsmConnect_dpss
	(tsmDisconnectActual_dpss): Renamed from tsmDisconnect_dpss
	(tsmDisconnect_dpss): New. DPSS connection-specific disconnect.
	* tsmConnection_local.c (vtable_local): Change to
	  TsmConnectionVTable 
	(tsmConnect_local): Modify to initialize the TsmConnection instead
	  of an ActualConnection.
	(tsmActualConnect_local): New.  Moved ActualConnection
	  initialization here from old version of tsmConnect_local
	(tsmDisconnectActual_local): Renamed from tsmDisconnect_local
	(tsmDisconnect_local): New. local file connection-specific
	  disconnect. 
	* tsmConnection_web.c (vtable_web): Change to TsmConnectionVTable
	(tsmConnect_web): Modify to initialize the TsmConnection instead
	  of an ActualConnection.
	(tsmActualConnect_web): New.  Moved ActualConnection
	  initialization here from old version of tsmConnect_web
	(tsmDisconnectActual_web): Renamed from tsmDisconnect_web
	(tsmDisconnect_web): New. HTTP connection-specific disconnect.
	* tsmIntProts.h (tsmDisconnect_actual): Delete decl.
	(tsmCheckTileFormat_actual): Ditto.
	(tsmCheckTIFFFormat_actual): Ditto.
	(tsmBeginLogging_actual): Ditto.
	(tsmEndLogging_actual): Ditto.
	(tsmAddRequest_actual): Ditto.
	(tsmRemoveRequest_actual): Ditto.
	(tsmRemoveRequest_actual): Ditto.
	(tsmReprioritizeRequest_actual): Ditto.
	(tsmReadNextTile_actual): Ditto.
	(tsmWriteTile_actual): Ditto.
	* tsmTile.c (tsmvCheckTileFormat): Delete.
	(tsmCheckTileFormat): Call TsmConnectionVTable.checkTileFormat
	(tsmvCheckTIFFFormat): Delete.
	(tsmCheckTIFFFormat): Call TsmConnectionVTable.checkTIFFFormat
	(tsmvWriteTile): Delete.
	(tsmWriteTile): Call TsmConnectionVTable.writeTile
	* tsmTile_dpss.c (tsmWriteTileActual_dpss): Renamed from
	  tsmWriteTile_dpss.
	(tsmWriteTile_dpss): New. Direct target of
	  TsmConnectionVTable.writeTile for DPSS connections.
	* tsmTile_local.c (tsmAddRequestActual_local): Renamed from
	  tsmAddRequest_local.
	(tsmAddRequest_local): New. Direct target of
	  TsmConnectionVTable.addRequest for local file connections.
	(tsmRemoveRequestActual_local): Renamed from tsmRemoveRequest_local
	(tsmRemoveRequest_local): New. Direct target of
	  TsmConnectionVTable.removeRequest for local file connections.
	(tsmReprioRequestActual_local): Renamed from tsmReprioRequest_local
	(tsmReprioRequest_local): New. Direct target of
	  TsmConnectionVTable.reprioRequest for local file connections.
	(tsmWriteTileActual_local): Renamed from
	  tsmWriteTile_local.
	(tsmWriteTile_local): New. Direct target of
	  TsmConnectionVTable.writeTile for local file connections.
	(tsmCheckTileFormatActual_local): Renamed from
	  tsmCheckTileFormat_local
	(tsmCheckTileFormat_local): New. Direct target of
	  TsmConnectionVTable.checkTileFormat for local file connections.
	(tsmCheckTIFFFormatActual_local): Renamed from
	  tsmCheckTIFFFormat_local
	(tsmCheckTIFFFormat_local): New. Direct target of
	  TsmConnectionVTable.checkTIFFFormat for local file connections.
	* tsmTile_web.c (tsmAddRequestActual_web): Renamed from
	  tsmAddRequest_web.
	(tsmAddRequest_web): New. Direct target of
	  TsmConnectionVTable.addRequest for HTTP connections.
	(tsmRemoveRequestActual_web): Renamed from tsmRemoveRequest_web
	(tsmRemoveRequest_web): New. Direct target of
	  TsmConnectionVTable.removeRequest for HTTP connections.
	(tsmReprioRequestActual_web): Renamed from tsmReprioRequest_web
	(tsmReprioRequest_web): New. Direct target of
	  TsmConnectionVTable.reprioRequest for HTTP connections.
	(tsmCheckTileFormatActual_web): Renamed from
	  tsmCheckTileFormat_web
	(tsmCheckTileFormat_web): New. Direct target of
	  TsmConnectionVTable.checkTileFormat for HTTP connections.
	(tsmCheckTIFFFormatActual_web): Renamed from
	  tsmCheckTIFFFormat_web
	(tsmCheckTIFFFormat_web): New. Direct target of
	  TsmConnectionVTable.checkTIFFFormat for HTTP connections.
	* tsmUrlToFile.c: Update some comments to reflect recents changes.

2001-02-28  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* Makefile.am (libtsmApi_a_SOURCES): Add tsmHost_web.c
	* Makefile.in: Regen.
	* tsmHost_web.c: New file.  Host-oriented web interface.  First
	  pass, not currently used.

	Deprecate _actual virtual functions in favour of direct virtual
	functions on TsmConnection.  Will increase flexibility and allow
	more variation on implementation behing the connection.
	
	* tsmConnect_web.h (tsmOpenHttpConnection): Update decl.
	(tsmCloseHttpConnection): Ditto.
	(tsmUrlToMemory): Ditto.
	(tsmUrlToFile): Ditto.
	(tsmUrlToTempFile): Ditto.
	(tsmUrlToBuffer): Ditto.
	(tsmUrlMimeType): Ditto.
	(tsmUrlExists): Ditto.
	* tsmConnection.c (tsmConnectionVTable): Define default virtual
	  function table.
	(tsmConnect): Assign default vtable to TsmConnection.
	  Initialize lock and nextReader index.
	(tsmvDisconnect): New. Default virtual function for
	  TsmConnectionVTable.disconnect
	(tsmvBeginLogging): New. Default virtual function for
	  TsmConnectionVTable.beginLogging
	(tsmvEndLogging): New. Default virtual function for
	  TsmConnectionVTable.endLogging
	(tsmvAddRequest): New. Default virtual function for
	  TsmConnectionVTable.addRequest
	(tsmvRemoveRequest): New. Default virtual function for
	  TsmConnectionVTable.removeRequest
	(tsmvReprioritizeRequest): New. Default virtual function for
	  TsmConnectionVTable.reprioritizeRequest
	(tsmDisconnect, tsmAddRequest, tsmRemoveRequest,
	 tsmReprioritizeRequest, tsmWriteTile, tsmCheckTileFormat,
	 tsmCheckTIFFFormat, tsmBeginLogging, tsmEndLogging): Convert to
	 virtual functions.
	* tsmConnectionInt.h (struct TsmConnectionVTable): New virtual
	  function table for TsmConnection.
	(struct TsmConnectionCommon): Add vtable field for
	  TsmConnectionVTable.  Add lock field and nextReader index.
	* tsmConnection_web.c (tsmConnect_web): Update call to
	  tsmUrlExists.
	(tsmDisconnect_web): Clear cached connection on close.
	* tsmPurl.c (tsmParseUrl): Return NULL for empty url.
	* tsmRequestSrv.c (struct tsmRequestServer): Remove assign field.
	(tsmReqElemCreate): Initialize connect to server connection.
	(tsmReqServerCreate): Don't initialize assign
	(tsmReqElemReprioritize): Call TsmConnection method
	  tsmReprioritizeRequest.
	(tsmReqServerRescind): Call TsmConnection method tsmRemoveRequest
	(tsmReqServerAssignRequests): Don't implement assignment algorithm
	  here.  Just use TsmConnection method tsmAddRequest
	* tsmRequestSrv.h (struct tsmReqElem): Add connect field for
	  reference to TsmConnection.  Add HostConnection reference to
	  union.
	* tsmTile.c (tsmCheckTileFormat, tsmCheckTIFFFormat,
	  tsmWriteTile): Moved to tsmConnection.c as virtual function
	  calls.
	(tsmvCheckTileFormat, tsmvCheckTIFFFormat, tsmvWriteTile): Default
	  assignments for virtual functions.
	* tsmTile_local.c (tsmAddRequest_local): Store conn.actual
	  association here.
	(tsmRemoveRequest_local): Detach conn.actual association
	* tsmTile_web.c (tsmAddRequest_web): Store conn.actual association
	  here.
	(tsmRemoveRequest_web): Detach conn.actual association
	(readNextTile): Update interface to tsmUrlToBuffer
	(tsmCheckTileFormat_web): Update interface to tsmUrlExists
	(tsmCheckTIFFFormat_web): Ditto.
	* tsmUrlToFile.c (tsmOpenHttpConnection): Change to use a
	  http_trans_conn* directly.
	(tsmCloseHTTPConnection): Ditto.
	(tsmReadHttpFile): Change to use a http_trans_conn** directly.
	  Connection caching is handled by storing values the location
	  referred to.
	(tsmUrlToMemory, tsmUrlToBuffer, tsmUrlToFile, tsmUrlToTempFile,
	 tsmUrlMimeType, tsmUrlExists): Ditto.
	
Wed Jan 31 11:17:51 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmRequestSrv.c (tsmReqServerAssignRequests): added Jason Fox's
	mod to lock down the function. This was causing a race condition
	under fast Windows machines.

Wed Jan 17 14:27:51 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmArg.c (tsmParseVRMLArgs): remove unused options

Mon Jan 15 16:45:49 2001    <reddy@MAGNOLIA>

	* tsmDatabase_local.c(tsmReadServer_local): created a new
 	implementation of this function that uses the MSVC functions
 	FindFirstFile/FindNextFile as the POSIX opendir/readdir functions
 	are not available under MSVC.

Sun Jan 14 17:56:34 2001    <reddy@MAGNOLIA>

	* tsmDatabase_local.c (tsmReadServer_local): #ifndef MSVC this
 	function as it uses opendir/readdir which are POSIX functions but
 	not supported by MSVC - need to recode in portable functions!

Tue Jan  9 15:55:47 2001  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c (TsmGeoVRML_createGeoElevationGrid): fix the
 	calculation of valid tile sizes for edge tiles.
	(TsmGeoVRML_writeAllTiles): improve the output of status
 	information as we go
	(TsmGeoVRML_writeHTMLFile): output an HTML comment saying that the
 	file was produced with tsmApi from SRI. Also, create the directory
 	for the index.html file if it does not exist.
	(TsmGeoVRML_progress): do an fflush in order to get the progress
 	display
	(TsmGeoVRML_writeAllTiles): create the index.html file at the
 	start of the tile generation process, not at the end.
	(TsmGeoVRML_normalize): only normalize if the length is != 0.0
	(TsmGeoVRML_calcNormal): compare oi (x,y) against oi pixel bounds,
	not the DEM one. Stops all those 0xnan normals being generated.

Sun Jan 07 13:00:21 2001    <reddy@MAGNOLIA>

	* tsmUtils.c (tsmMakePathAbsolute): [new func] prepends an
 	absolute path to a filename if it is relative.

Wed Dec 20 16:15:21 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmCreate.c (tsmDescribeImportFormat): add the text "big endian"
	to the format description for raw and lrbt to show that we expect
	binary data in big-endian format (Unix type, not PC).

2000-12-15  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmDatabase.c (tsmRemoveMapFromDatabasePos): Provide doc header.
	(tsmRemoveModelFromDatabasePos): Ditto.
	* tsmReadRowsDEM.c (tsmReadRowsDEM_saveDEMAsRAW): Predeclare static.

	* tsmConnection_web.c (tsmDisconnect_web): Don't close HTTP
	  connection until after thread shutdown.

2000-12-13  Lee Iverson  <leei@canoe.ai.sri.com>

	* tsmReadRowsGIF.c (tsmParseCreateParams_GIF): Return FALSE.

	* tsmDatabase.c (tsmRemoveServerSetsFromDatabase): Remove maps
	  using tsmRemoveMapFromDatabasePos and don't skip checking next
	  one.  Ditto for models.
	(tsmRemoveMapFromDatabasePos): New.  Remove map at index.
	(tsmRemoveMapFromDatabase): Find then use
	  tsmRemoveMapFromDatabasePos.
	(tsmRemoveModelFromDatabasePos): New.  Remove model at index.
	(tsmRemoveModelFromDatabase): Find then use
	  tsmRemoveModelFromDatabasePos.

2000-12-11  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection.c (tsmConnect): Store purl into location to clean
	  up memory leak.

Thu Nov 30 17:59:55 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c: removed unused variables "geo_width" and
 	"geo_height"

	* tsmVRMLUtils.c (tsmGetTexCoords): removed unused variables
 	"maxpix_x" and "maxpix_y"
	(tsmCalcRange): commented out unused variables "geo_width" and
 	"geo_height"
	(tsmTileElev): removed unused variable "polyx" and "polyy"

	* tsmImageUtils.c (tsmTileToRgb): removed unused variables "i10",
 	"i01", and "numPixels"

	* tsmTile_local.c (tsmCheckTileFormat_local): remove unused
	variable "connect"
	(tsmCheckTIFFFormat_local): removed unused variable "connect"

	* tsmWriteRows.c (tsmWriteRows_new): reference the SimpleTileSet
 	starting from the minLevel, not zero. Do not assume that the start
 	level is 0.  Bug reported by Jerry Isdale.
	(tsmWriteRows_write): provide more verbose error output when an
 	invalid level number is found. Suggestion from Jerry Isdale.
  	Also, correctly offset the level number with the minLevel value,
 	as above.
	(tsmWriteRows_writeTiles): provide more verbose error output when
 	an invalid level number is found and correctly offset the level
 	number with the minLevel value, as above. Bug report from Jerry
 	Isdale.

Mon Nov 27 15:12:59 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmDatabase.c (tsmFootprintToLatLong): implement approximate
	conversion between an LVCS bounding box and a GDC bounding box
	(assumes 1 deg == 100 km).

2000-11-22  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnect_local.h (tsmReprioRequest_local): New decl.
	* tsmConnect_web.h (tsmReprioRequest_web): New decl.
	* tsmConnection.c (tsmReprioritizeRequest_actual): New.
	  Call reprioritizeRequest virtual function.
	* tsmConnectionInt.h (ActualConnectionVTable): Add
	  reprioritizeRequest virtual function.
	* tsmConnection_dpss.c (vtable_dpss): Add empty entry for
	  reprioritizeRequest
	* tsmConnection_local.c (vtable_local): Add entry for
	  tsmReprioRequest_local
	* tsmConnection_web.c (vtable_web): Add entry for
	  tsmReprioRequest_web
	* tsmIntProts.h (tsmAddRequest_actual): Add proto
	(tsmRemoveRequest_actual): Add proto.
	(tsmReprioritizeRequest_actual): Add proto.
	(tsmReadNextTile_web): Delete decl.
	(tsmWriteTile_local): Delete decl.
	* tsmRequestSrv.c (tsmReqElemReprioritize): New. Adjust the
	  priority of a request.
	(tsmReqServerRescind): Reprioritize a tile if we've removed the
	  highest priority request but not the tile itself.
	(tsmReqServerSubmit): Reprioritize when priority increases.
	* tsmTile_local.c (tsmReprioRequest_local): New. Reprioritize a
	  tile in this connection's queue.
	* tsmTile_web.c (tsmReprioRequest_web): New. Reprioritize a tile
	  in this connection's queue.
	(tsmReadNextTile_web): Delete.

Fri Nov 17 14:22:19 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmCreate.c (tsmInitTspecParams): make the default level number
	for creating DEMs be 0 not 5.

2000-11-13  Michael A. Eriksen  <eriksen@ai.sri.com>

	* tsm.h: Added void tsmTileReqInfo( TsmConnection connect,
 	PRIntervalTime *begin, PRIntervalTime *end, int *num_now, int
 	*num_never, int *num_later );
 	
	* tsmReadRowsTIFF.h: moved #include "tsmReadRowsTIFF.h" to be the
 	first include in order to get config.h loaded

2000-11-01  Michael A. Eriksen  <eriksen@ai.sri.com>

	* Logging.c: Renamed __WIN32__ to WIN32 and _MSVC to MSVC
	* Removed winbuild/config.h

2000-11-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmExtProts.h (tsmRequestDestroy): Expose
	* tsmRequestSrv.c (tsmReqServerNextReady): Handle end >= n.

2000-11-07  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequest.h: Move exposed decls to...
	* tsmExtProts.h: ...here.

	* tsmConnection.c (tsmConnect): Don't initialize removed fields.
	(tsmConnectRequestList): New.  Create and return a new tile
	  request list.
	* tsmConnectionInt.h (struct TsmConnectionCommon): Remove obsolete
	  fields (req_begin, req_end, numb_now, numb_never, numb_later).
	* tsmTile.c (tsmTileReqAdd): Remove references to old
	  implementation.
	(tsmTileReqInfo): Turn into useless stub.  No longer works.

2000-11-06  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): Disable >10000m
	  checking.
	* tsmWriteRows.c (tsmWriteRows_write): Ditto.

Fri Nov  3 16:02:47 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_local.c (tiffCacheHandle): when reading the max number
	of open file descriptors, a previous TIffHandle was popped off the
	stack to use for the new descriptor, however it was stored in a
	local variable with the same name as a more global variable. This
	outer variable was used after the inner scope was deleted and so
	the new TiffHandle pointer was lost, causing core dump time.

2000-11-03  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* configure.in: Use large file compilation environment under
	  Solaris.
	* configure: Regen
	
	* tsmConnection.c (tsmConnect): Check for read failure when
	  mode != TSM_WRITE_ONLY
	* tsmConnection_local.c (tsmConnect_local): Initialize read
	  infrastructure when mode != TSM_WRITE_ONLY
	
	* tsmCreate.c (tsmCreateAllTiles): Properly add TSM_DOWNSAMPLE_DEM
	  flag to tsmDownSample_inmemory calls.
	* tsmCreate_RAW.c (downsample_image_u32): Alternate
	  implementation with checking (disabled).
	(tsmDownSample_byblocks): Check for bad DEM values read in.
	* tsmTile.c (tsmWriteTile): Clean the tracing a bit.
	* tsmWriteRows.c (tsmWriteRows_write): Check for bad DEM values on
	  write.

Thu Nov 02 15:29:26 2000    <reddy@MAGNOLIA>

	* tsmConnection.c (tsmConnect): don't do all that tsmFreePurl()
 	stuff - it's freeing memory that is owned by the connection!

	* tsmConnection_local.c (tsmConnect_local): the new multi-pipe
 	reading architecture made a few assumptions that connection was
 	read only. As a result, write connections always failed.

	* tsmGeoVRML.c: new function - sets an MFColor field with a single
 	value
	(TsmGeoVRML_writeTileModel): create a Background node
	(TsmGeoVRML_writeHTMLFile): fix up the index.html file
	(TsmGeoVRML_writeTileImage): fix so that we can now handle 1-byte
 	(greyscale) images - previously assumed all images were RGB.

	* tsmUtils.c (tsmShowUrl): use "explorer" as the default web
 	browser to use for hyperlinks on a PC for the time being. (Can be
 	overridden.)

	* tsmConnectionParams.c (tsmInitParams): don't generate normals by
 	defaults - still some small bug to track down here

Wed Nov 01 17:14:19 2000    <reddy@MAGNOLIA>

	* tsmGeoVRML.c: guard against NULLs and also free the TsmGeoVRML
 	structure itself.

2000-10-26  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection.c (tsmConnect): Handle failures to creat actual
	  connections more gracefully.

	* tsmConnect_local.h (struct TsmConnectionLocalAux): New.
	  Common to all actuals. Hangs off of parent connection.
	* tsmConnection_local.c (tsmConnect_local): If a TIFF dataset,
	  create locks and TIFF handle space for each level.
	(tsmDisconnectCommon_local): New. Clean up locks and TIFF handle
	  space for each level. Close open TIFF handles using
	  tiffCacheClose.
	* tsmTile_local.c: Include <prinit.h>
	(struct TIFFHandle): New.  Cache for TIFF handles.
	(all_handles): New. List of currently open TIFF handles.
	(tiffInit, tiffInitFunc): New.  PRCallOnceType pair to initialize
	  all_handles.
	(tiffCacheHandle): New.  Cache a newly created TIFF handle,
	  trashing a previous one if we've overrun our limit.
	(tiffCacheClose): New.  Close and forget about a TIFF handle.
	(tsmReadTIFF_local): Lock accesses to a particular TIFF file.
	  Cache open handles using tiffCacheHandle.

2000-10-16  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection.c (tsmConnect): Attempt to read tspec prior to
	  making actual connections.
	* tsmConnectionInt.h (tsmConnect_web): Add idx argument.
	(tsmConnect_dpss): Ditto.
	(tsmConnect_local): Ditto.
	* tsmConnection_dpss.c (tsmConnect_dpss): Add idx argument.
	* tsmConnection_local.c (tsmConnect_local): Add idx argument.
	  Remove tspec initialization (now done in tsmConnect).
	  Make readable thread name.
	* tsmConnection_web.c (tsmConnect_web): Add idx argument.
	  Remove tspec initialization (now done in tsmConnect).
	  Make readable thread name.
	
	* tsmRequest.c (tsmRequestClaim): Increase trace level.
	* tsmRequestSrv.c (tsmReqServerClaimList): Increase trace level.
	
	* tsmTile_local.c (tsmReaderThread_local): Improve tracing of
	  error and shutdown conditions.
	* tsmTile_web.c (tsmReaderThread_web): Improve tracing of error
	  and shutdown conditions.
	
Thu Oct 12 13:11:13 2000    <reddy@MAGNOLIA>

	* tsmImage.c (tsmReadImage): use "rb" for tsmOpenStream, not "r"

	* tsmWriteRowsPPM.c: always use "wb" not "w"

	* tsmUrlToFile.c: always use "rb" not just "r" - Windows will not
 	read a binary file correctly if you just specify "r"

	* tsmReadRowsRAW.c (tsmReadRowsRAW_new): always use "rb" not "r"

	* tsmReadRowsJPEG.c: always use "rb", not just "r" with fopen

	* tsmReadRowsDOQ.c: always use "rb", not just "r"

	* tsmReadRowsDEM.c: always use "rb" and "wb" with fopen!

	* tsmImage.c (tsmSaveImageJFIF): always use "rb" with fopen, not
 	"r"!

	* tsmReadRowsPBM.c: always use "rb" with fopen when then file is
 	binary as Windows gets picky about this.

Mon Oct  9 14:28:38 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_local.c (tsmReaderThread_local): make robust in face of
	req being returned NULL.

	* tsmConnection_local.c (tsmConnect_local): make sure that we
	create a connect->name string, even if we don't have a tspec file
	to get the name from.

	* tsmRequestSrv.c (tsmReqServerThread): guard against NULL tspec
	pointer - this can happen when connection is write-only, i.e. the
	tspec hasn't been created yet.

2000-10-02  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmTile.c (tsmReadTile): Call tsmAllocReadTile() instead of vice
	  versa.
	(tsmAllocReadTile): The basic implementation that does no data
	  copying (maybe a speed boost).

2000-09-29  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequest.h (struct tsmSimpleRequestList): Don't limit to 32768
	  items in request list.

2000-09-29  Lee Iverson  <leei@Mission.AI.SRI.COM>

	* tsmGeoVRML.c (TsmGeoVRML_new): Remove strange cruft.
	* tsmTile_local.c (tsmCheckTileFormat_local): Use PR_GetFileInfo64
	  so that we don't crap out on large TIFF files.
	(tsmCheckTIFFFormat_local): Ditto.

2000-09-29  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmTile_local.c (tsmCheckTileFormat_local): Improve tracing.

2000-09-28  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): Remove warining
	  on h1_span.

	* tsmTile.c (receiveTile, tsmReadTile): Improve tracing.
	
	* tsmTile_local.c (tsmReaderThread_local): Change direction of
	  heap_is_empty test.  Ooops.  Copy rest of error handling
	  etc. from tsmReaderThread_web.
	* tsmTile_web.c (tsmReaderThread_web): Use heap_is_empty test.

2000-09-27  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmRequestSrv.c (struct tsmRequestServer_): Add destroying flag
	  so we can avoid recursive locks.
	(tsmReqServerCreate): Initialize destroying to FALSE.
	(tsmReqServerDestroy): Set destroying TRUE once we are locked.
	(tsmReqServerForgetList): Only lock if !destroying.
	(tsmReqServerRescind): Ditto.

	* tsmTile.c (receiveTile): Status is TRUE if tileBuffer is non-zero.

	* tsmRequestSrv.c (tsmReqElemCreate): Zero errCount.
	(tsmReqServerDequeueTile): Return failure if NULL buffer queued.
	* tsmRequestSrv.h (struct tsmReqElem_): Add errCount field.
	* tsmTile_web.c (tsmReaderThread_web): Rerequeue tiles after
	  errors, counting number of failures.  If a tile request fails
	  three times, then complete the request by queueing a NULL
	  tileBuffer.
	(readNextTile): Improve failure tracing.
	* tsmUrlToFile.c (tsmReadHttpFile): Reset the connection after an
	  error response from ghttp.

Tue Sep 26 10:43:09 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): swap lat/long
	info from GeoTIFF file - got it the wrong way round.

Tue Sep 26 13:52:24 2000    <leei@MAGNOLIA>

	* configure.in: libxml inclusion references ../libxml
	* configure: Regen.

	* tsmRequestSrv.c (tsmReqServerForgetElem): If not found in
	  eqhash_delete, don't destroy. 

Tue Sep 26 10:43:09 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* logging.c (sys_err_str): removed references to sys_nerr and
 	sys_errlist as these do not appear to be defined under Solaris
 	2.7.

2000-09-25  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmArg.c (tsmParseReadArgs): Add -read_multi arg for setting the
	  TSM_PARAM_READ_MULTI value.
	* tsmConnection.c (tsmConnect): Default read_multi to 4, and read
	  from params if set.
	* tsmConnectionParams.c (tsmSetParam): Parse TSM_PARAM_READ_MULTI
	  and TSM_PARAM_WRITE_MULTI.
	* tsmConnectionParams.h (TSM_PARAM_READ_MULTI): Define.
	(TSM_PARAM_WRITE_MULTI): Define.
	* tsmConnectionParamsInt.h (struct TsmConnectionParamsStruct): Add
	  read_multi and write_multi value slots.

2000-09-20  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmDatabase.c (tsmPersistDatabase): Update for libxml 2.x

2000-09-14  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* Makefile.am (EXTRA_HEADERS): Add tsmConnect_web.h,
	  tsmConnect_local.h and tsmConnect_dpss.h
	* Makefile.in: Regen

	* tsmConnection.c (tsmConnect): Start request server and create
	  initial (compatibility) request list.
	(tsmDisconnect): Clean up request server and request lists.
	(tsmAddRequest_actual): New. Generic function to add a request to
	  the actual connection.
	(tsmRemoveRequest_actual): New. Generic function to remove a
	  request from the actual connection.
	
2000-09-14  Lee Iverson  <leei@Canada.AI.SRI.COM>

	*: First step in implementing multiple connections per server.

	* Makefile.am (EXTRA_HEADERS): Add tsmRequestSrv.h
	* Makefile.in: Regen

	* tsmConnectionInt.h (ActualConnection): New typedef.
	(TsmConnectionCommon): Move ConnectionCommonFields into here.
	(tsmActualConnect_dpss): Declare.
	(tsmActualConnect_http): Declare.
	(tsmActualConnect_local): Declare.
	(ActualConnectionVTable): New typedef.
	(struct ActualConnection_): Declare base class.
	(struct TsmConnectionDpss): First field is now 
	  struct ActualConnection_.  Move jpegBuffer here.
	(struct TsmConnectionLocal): Ditto.
	(struct TsmConnectionHttp): Ditto.
	* tsmConnection.c (tsmConnect): Allocate allocate one
	  ActualConnection and establish it.
	  Don't allocate jpegBuffer
	(tsmDisconnect): Call tsmDisconnect_actual.
	  Don't free jpegBuffer.
	(tsmBeginLogging): Defer to tsmBeginLogging_actual
	(tsmEndLogging): Defer to tsmEndLogging_actual
	(tsmDisconnect_actual): New.
	(tsmReadNextTile_actual): New.
	(tsmWriteTile_actual): New.
	(tsmCheckTileFormat_actual): New.
	(tsmCheckTIFFFormat_actual): New.
	(tsmBeginLogging_actual): New.
	(tsmEndLogging_actual): New.
	* tsmConnection_dpss.c (vtable_dpss): Instantiate
	  ActualConnectionVTable for DPSS.
	(*_dpss): Adapt for new structure.
	* tsmTile_dpss.c: Adapt for new structure.
	* tsmTspec_dpss.c: Ditto.
	* tsmConnection_local.c (vtable_local): Instantiate
	  ActualConnectionVTable for local files.
	(*_local): Adapt for new structure.
	* tsmTile_local.c: Adapt for new structure.
	* tsmConnection_web.c (vtable_web): Instantiate
	  ActualConnectionVTable for HTTP.
	(*_web): Adapt for new structure.
	* tsmTile_web.c: Adapt for new structure.
	* tsmUrlToFile.c (tsmOpenHttpConnection): Grab type from
	  TsmConnection
	(tsmReadHttpFile, tsmUrlToMemory, tsmUrlToBuffer, tsmUrlToFile,
	 tsmUrlToTempFile, tsmUrlMimeType, tsmUrlExists): Take
	 TsmConnectionHttp argument directly.
	
2000-09-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* Makefile.am (libtsmApi_a_SOURCES): Add tsmRequest.c and
	  tsmRequestSrv.c.
	(EXTRA_HEADERS): Add tsmRequest.h and tsmRequestSrv.h
	* Makefile.in: Regen
	* tsmRequest.[ch]: New files.  Request list management.
	* tsmRequestSrv.[ch]: New files. TsmConnection-specific request
	  list manager.

2000-08-29  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* configure.in (DO_RPCGEN): Define automake conditional only when
	  we have rpcgen on an SGI Irix.
	* Makefile.am: Turn off rpcgen derivations if !DO_RPCGEN
	* configure, Makefile.in: Regen

Mon Aug 28 11:16:30 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmTile_local.c (tsmWriteTIFF_local): when writing TIFF files,
	then set the PHOTOMETRIC tag correctly for greyscale images -
	previously we were setting this to be RGB. This caused the JPEG
	library to fail when writing JPEG compressed greyscale (1
	component) tilesets.

	* tsmLAS_IO.c: [file deleted]

	* tsmLAS_IO.h: [file deleted]

	* tsmCreate_RAW.c (tsmReadRow_RAW): [removed]
	(tsmCreateLevelTiles_generic): [removed]
	(tsmDownSample_generic): [removed]
	(tsmDownSample_generic_ps): [removed]
	(tsmDownSample_generic_gaus): [removed]
	(tsmCreateLevelTiles_RAW): [removed]
	(tsmDownSample_RAW): [removed]

	* tsmCreate_LRBT.c (tsmCreateLevelTiles_LRBT): [removed]
	(tsmDownSample_LRBT): [removed]

	* tsmCreate_TIFF.c: [file deleted]

	* tsmCreate.c (tsmCreateLevelTiles): [removed]
	(tsmMakeTempImageName): [removed]
	(tsmRemoveTempImages): [removed]
	(tsmDownSample): [removed]

	* mtables.c: [file deleted]

	* sih.h: [file deleted]

	* sihDecs.h: [file deleted]

	* sihHash.c: [file deleted]

	* sihProts.h: [file deleted]

	* All .[ch] files: added Apache Software License notice
	
	* AUTHORS: added Yong Tze Chi

	* LICENSE: change the tsmApi license to the Apache Software
	License, version 1.1

Sat Aug 26 18:24:26 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmReadRowsDEM.c (tsmParseCreateParams_DEM): don't constrain
 	USGS DEM based data to be output as 16-bit pyramids. This should
 	be user customizable.

	* tsmReadRowsTIFF.c (tsmParseCreateParams_TIFF): allow grayscale
	TIFF images as well as RGB and colour palette

Thu Aug 24 10:21:59 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmReadRowsTIFF.c: [new file] TIFF/GeoTIFF file reader

	* tsmReadRowsTIFF.h: [new file] TIFF/GeoTIFF file reader

	* tsmCreate.c: Added instructions in the header comment for the
 	file on how to write your own file format reader functions for
 	tsmApi
	(tsmGetFileType): remove function - tsmFindImportFormat does all
 	of this already.
	(tsmInitTspecParams): the default coordinate system when
	generating a dataset should be TSM_NONE_COORDSYS, not UTM.

Tue Aug 22 11:37:31 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmGeoVRML.c (TsmGeoVRML_new): guard against NULL ferror field
 	don't create an error.txt file when generating GeoVRML content
	(TsmGeoVRML_usage): correct the help text and correctly describe
	the purpose of the make_geovrml utility (this really shouldn't be
	in the tsmApi library but in tsmUtils/make_geovrml).
	(TsmGeoVRML_writeHTMLFile): correct the path output to the
	index.html <embed> tag for the root tree file

	* tsmCreate_RAW.c (tsmDownSample_inmemory_levels): deal with the
 	case where the target pyramid has only one level (i.e. the entire
 	image is contained within a single tile - can happen for small
 	DEMs).

Fri Aug 18 17:53:04 2000  Yong Tze Chi  <chi@Lomond.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): Modified so that this
 	function sets the numBytesPerComponent in tspec correctly.

	* tsmReadRowsDEM.c: (tsmReadRowsDEM_read): Fixed bug in reading
 	DEM data from temporary RAW file.

Fri Aug 18 11:48:07 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmCreate.c (tsmInitTileParams): Modified to initialize
 	out_bytespercomp properly.

	* tsmCreate.h: Added the field 'out_bytespercomp' in TsmTileParams
 	struct to suuport byte format conversion.

	* tsmWriteRows.h: Added the the field 'outBytesPerComp' in
 	TsmWriteRows struct for byte format conversion.

	* tsmWriteRows.c: (tsmWriteRows_convertTileFormat): New function
 	to convert input tile byte format into output byte format desired,
 	e.g. 16-bit to 32-bit conversion.
	
Thu Aug 17 20:55:59 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmWriteRows.c (tsmWriteRows_writeTile): This function now calls
 	tsmUpdateTileStats to update the min/max value of the dataset.

	* tsmCreate.c: Modified to support reading of USGS DOQ format.

	* tsmReadRowsDOQ.c: Added support for reading USGS DOQ format.

	* tsmReadRowsDOQ.h: Added support for reading USGS DOQ format.

Wed Aug 16 11:32:37 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmCreate.c: Added support for LRBT images.

	* tsmReadRowsPBM.c: Changed functions only used in this module to
 	static.

	* tsmReadRowsGIF.c: Changed functions only used in this module to
 	static.

	* tsmReadRowsJPEG.c: Changed functions only used in this module to
 	static.

	* tsmReadRowsDTED.c: Modified tsmParseCreateParams_DTED to
 	initialize tile's geographic coordinate.

	* tsmReadRowsDEM.c: Added progress report while resampling
 	elevation data. Also modified tsmParseCreateParams_DEM to
 	initialize tile's geographic coordinate.

	* tsmWriteRows.c: Added progress report while writing data.

	* tsmReadRowsDTED.c: Added tsmReadRowsDTED.c to support reading of
 	DTED files for TerraVision dataset creation.

	* tsmReadRowsDTED.h: Added tsmReadRowsDTED.h to support reading of
 	DTED files for TerraVision dataset creation.

	* tsmCreate.h: Modified to add support for DTED reader.

	* tsmCreate.c: Modified to add support for DTED reader.

Tue Aug 15 13:37:29 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmDatabase.c (tsmFootprintToLatLong): [new func] convert a
 	footprint in any coordinate system into a lat/long footprint.
	(tsmIsFootprintInside): support comparisons against different
 	coordinate systems by first converting both footprints into
 	lat/long and then performing the comparison.
	(tsmBuildGeosets): compare resolutions in a common unit system
	(convert degrees into meters)
	(tsmAddDataSetToDatabase): change message reporting different min
 	or max resolution between a newly read dataset and a dataset that
 	exists in the database. This is now a debug message, not an error
 	report.

Fri Aug 04 10:07:15 2000    <reddy@MAGNOLIA>

	* tsmGeoVRML.c: add <float.h> include for DBL_MAX definition under
 	Windows

	* tsmReadRowsGIF.h: need to undefine DrawText if it exists because
 	winuser.h under Windows defines this and thus causes a conflict
 	with the DrawText function in libungif.

	* tsmGeoVRML.c: replace Unix-specific code with calls to
 	tsmMakeDirIfNotExist that works under Windows too.

Thu Aug 10 15:08:54 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmCreate.c: Modified to support reading USGS DEM file.

	* tsmReadRowsDEM.c: Added support for reading USGS DEM file.

	* tsmReadRowsDEM.h: Added support for reading USGS DEM file.

	* tsmWriteRows.c: Minor bug fix: inadequate memory allocation for
 	temporary buffer.

Tue Aug  8 10:19:48 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmCreate.c: Modified to support RAW data format.

	* tsmReadRowsRAW.h: Added tsmReadRowsRAW.h.

	* tsmReadRowsRAW.c: Added tsmReadRowsRAW.c - support for reading
 	RAW data format.

	* tsmWriteRowsPPM.c: Added comments.

	* tsmWriteRows.c: Bug fix for handling non-LRBT image with
 	overlapping region, and added comments.

Mon Aug  7 18:20:59 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmWriteRows.h: Modified to handle non-LRBT image formats
 	correctly.

	* tsmWriteRows.c: Modified to handle non-LRBT image formats such
 	as JPEG, GIF, and PBM correctly.

2000-08-07  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmCreate_RAW.c (tsmDownSample_image, tsmDownSample_inmemory_r,
	tsmDownSample_inmemory_levels, tsmDownSample_inmemory):
	  Change print() traces to TSMTRACE.

Mon Aug  7 10:57:13 2000  Yong Tze Chi  <chi@Silver.AI.SRI.COM>

	* tsmWriteRowsPPM.h: Added tsmWriteRowsPPM.h

	* tsmWriteRowsPPM.c: Added tsmWriteRowsPPM.c. Write TerraVision
 	tiles out to PPM files. Used for debugging purposes.

	* tsmReadRowsPBM.h: Added tsmReadRowsPBM.h.

	* tsmReadRowsJPEG.h: Added tsmReadRowsJPEG.h.

	* tsmReadRowsGIF.h: Added tsmReadRowsGIF.h.

	* tsmWriteRows.h: Added tsmWriteRows.h.

	* tsmReadRowsPBM.c: Added tsmReadRowsPBM.c. Read rows of data from
 	PPM and PGM image.

	* tsmReadRowsJPEG.c: Added tsmReadRowsJPEG.c. Read rows of data
 	from JPEG image.

	* tsmReadRowsGIF.c: Added tsmReadRowsGIF.c.  Read rows of data
	from GIF image.

	* tsmWriteRows.c: Added tsmWriteRows.c.  Contain functions to
 	write out TerraVision tiles.  To be used with
 	tsmDownSample_inmemory.

2000-08-04  Lee Iverson  <leei@Canada.AI.SRI.COM>

	(tsmDownSample_byblocks): Redo initialization of top and bottom
	  borders to avoid memory overruns.

2000-08-04  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmIntProts.h (TSM_DOWNSAMPLE_SIGNED): Changed from UNSIGNED,
	  since most integer datasets (e.g. OI) will be unsigned.
	* tsmCreate_RAW.c (tsmDownSample_image): Adapt for change to
	  SIGNED flag.
	(tsmDownSample_inmemory_r, tsmDownSample_inmemory_levels):
	  Properly set flags for TOP and BOTTOM borders.

2000-08-03  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmCreate_RAW.c (tsmDownSample_byblocks): Properly initialize
	  in_dex array.
	(tsmDownSample_inmemory_r): Fix recursion to properly distribute
	  data.
	
Tue Aug  1 14:25:04 2000  Yong Tze Chi  <chi@Lomond.AI.SRI.COM>

	* tsmGeoCoordBuffer.h: Renamed from tsmGeoCoord.h to avoid name
 	clash.

	* tsmGeoCoordBuffer.c: Renamed from tsmGeoCoord.c to avoid name
 	clash.

	* tsmGeoVRML.c: Renamed from TsmGeoCoord to GeoCoordBuffer to
 	avoid name clash.

2000-08-01  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmCreate_RAW.c (struct LevelBuf): Add span_h field (necessary?)
	(tsmDownSample_inmemory_levels): Simplify and correct iin
	  preparation for rolling updates when overlap needed.
	(tsmDownSample_inmemory): Initialize span_h.
	
	* tsmGeoVRML.c (TsmGeoVRML_writeHTMLFile): Correct format string
	  to print percent signs.

Fri Jul 21 11:31:14 2000  Yong Tze Chi  <chi@Lomond.AI.SRI.COM>

	* tsmConnectionInt.h (ConnectionCommonFields): add new fields to
 	connection params structure for GeoVRML support

	* tsmConnectionParams.c (tsmInitParams): initialise new GeoVRML
 	variables
	(tsmSetParam): support new GeoVRML variables: TSM_PARAM_MODELS and
	TSM_PARAM_TEXTURES

	* tsmArg.c (tsmParseVRMLArgs): removed obsolete VRML creation options
	(tsmDescribeArgs): ditto

Thu Jun 29 10:47:17 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): updated the tspec generation
	routine to support the creation of LVCS datasets. 

	* tsmCreate.c (tsmInitTspecParams): initialise lvcs_x and lvcs_y
	to 0.0.

	* tsmCreate.h: add lvcs_x and lvcs_y parameters to specify the
	LVCS offset from the lat/long origin

	* tsmCreate.c (tsmCreateTspec): allow LVCS coordinate systems when
	creating tspec files

2000-07-12  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection_web.c (tsmConnect_web): Default connection caching
	  to TRUE.

2000-06-29  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): tm_month needs to be offset
	  by 1, since tm_month==0 => January.

Wed Jun 28 15:24:46 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): don't ignore the user's
	-comps setting when defining the default components per pixel for
	an OI. Previously this was getting hardcoded to 3.

2000-06-28  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): Downsample by (w+1)/2
	* tsmCreate.c (tsmCreateAllTiles): Downsample by (w+1)/2
	* tsmCreate_RAW.c (tsmDownSample_generic_ps): Downsample to
	  (w+1)/2 instead of w/2.  Handle edge conditions.
	(tsmDownSample_generic_gaus): Downsample to (w+1)/2 instead of
	  w/2.  Use a 4x4 kernel for gaussian downsampling to avoid image
	  creep.

2000-06-26  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmUrlToFile.c (tsmOpenHttpConnection): Call
	  tsmCloseHttpConnection if failed to connect, instead of rolling
 	  our own disconnect.
	(tsmCloseHttpConnection): Don't assume that
	  http_trans_conn_destroy() won't access host and proxy_host.

Sat Jun 17 19:26:06 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmConnection.c (tsmSet): don't do the va_arg inside of the
 	min() MACRO because it gets expanded twice and we lose the
 	argument value. This meant that you could never set the jpeg
 	quality for writing datasets.
	
Sat Jun  3 22:40:51 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmOpenStream): make the "http writes not
	supported" message a debug message rather than an error
	report. Let's the calling function fail silently if it wants to.

Fri Jun 09 17:49:30 2000    <reddy@MAGNOLIA>

	* tsmConnection.c (tsmConnect): only create the tileBasePurl and
 	tspecBasePurl structures if they are NULL. This was causing a mem
 	leak before because we were creating a new Purl without looking to
 	see if one already existed.

	* tsmPurl.c (tsmMakePurl): remove the constant string initialisers
 	to the new Purl - make them NULL instead. This ties up a number of
	potential mem free errors.

Mon Jun 05 15:06:31 2000    <reddy@MAGNOLIA>

	* tsm.h: add #include for stdlib.h because Visual Studio's
 	stdlib.h defines min() and max() without checking for their
 	existence. We check, so let's bring in the MS stuff first.

	* tsmPurl.c (tsmMakePurl): initialise the uri string also
	(tsmCopyPurl): do a tsmMemStrdup on the protocolString field of a
 	Purl when we copy it. This used to be a pointer copy and that
 	worries me.
	(tsmFreePurl): free the protocolString too now
	(tsmParseUrl): do a tsmMemStrdup() when setting the protocolString

	* tsmEmulate.c (tsmOpen): add protocolString to list of Purl
 	fields initialised

	* tsmUrlToFile.c (tsmOpenStream): free the Purl that was allocated
 	when bombing out upon an error

	* tsmConnection.c (tsmConnect): the Purl we create here is now
 	local in its scope and we can free it when we're done. Fixes a
 	potential duplicate mem free when tspec not parsed.

	* tsmConnection_dpss.c (tsmConnect_dpss): take a copy of the
 	Purl for the dataset location, don't just grab the pointer.

	* tsmConnection_web.c (tsmConnect_web): take a copy of the
 	Purl for the dataset location, don't just grab the pointer.

	* tsmConnection_local.c (tsmConnect_local): take a copy of the
 	Purl for the dataset location, don't just grab the pointer.

2000-06-09  Michael A. Eriksen  <eriksen@AI.SRI.COM>

	* added #define HAVE_ERRNO_H to config.h in winbuild

2000-06-09  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* configure.in (AC_CHECK_HEADERS): Add errno.h
	* configure, config.h.in: Regenerate.
	* logging.c: Include <errno.h> if HAVE_ERRNO_H, otherwise use
	  hopeful definitions.

2000-06-08  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmAllocTspecs.c (tsmFreeTspec): Add tracing.
	* tsmConnection.c (tsmDisconnect): Add tracing.
	* tsmUrlToFile.c (tsmOpenHttpConnection): Destroy connection on
	  http connection failure.

2000-06-05  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* TsTileSpecIn.c (tspReadIdentityTspec1): Remove redundant strcpy().
	* TsTileSpecIntProts.h (tspReadSimpleTileSet): Declare.

	* configure.in (AC_CHECK_HEADERS): Add unistd.h
	* configure, config.h.in: Regen
	
	* tsmHost.c: Don't include <ctype.h>
	* tsmImage.c: Include <unistd.h> if HAVE_UNISTD_H defined.
	* tsmInternal.h: Include <ctype.h>
	* tsmUtils.c: Include <unistd.h> if HAVE_UNISTD_H defined.
	(tsmShowUrl): We can only call unlink() if HAVE_UNISTD_H

Thu May 18 15:31:59 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmDatabase.c (tsmPrintMap): save the geo-name field for map
	entries in the dataset database
	(tsmPrintModel): save the geo-name field for model entries also

	* tsmDatabase_local.c (tsmParseDatabaseLine): read the geo-name
	field for model and map entries in the dataset database

Wed May 10 17:10:13 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmReadHttpFile): only check for connection
	close if a TsmConnection structure has been passed in, otherwise
	we stand the risk of dereferencing a NULL pointer.

2000-04-24  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnectionInt.h (struct TsmConnectionHttp): Add cache_conns
	  flag and use bitfields.
	* tsmConnectionParams.h (TSM_PARAM_CACHE_CONNS): New flag.
	* tsmConnectionParamsInt.h (struct TsmConnectionParamsStruct): Add
	  cache_conns flag associated with TSM_PARAM_CACHE_CONNS
	* tsmConnection_web.c (tsmConnect_web): Use TSM_PARAM_CACHE_CONNS
	  and param->cache_conns to initialize cache_conns
	* tsmUrlToFile.c (tsmOpenHttpConnection): Optionally cache
	  connection based on value of connect->cache_conns.

2000-04-24  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmUrlToFile.c (tsmOpenHttpConnection): Use ASYNC mode.
	  Expand buffer to 16K.  Call http_trans_buf_reset() to clean up
	  between requests.
	(tsmCloseHTTPConnection): Correct Doc++ comment.
	(tsmReadHttpFile): Check for a "Connection: close" reponse from
	  server and close connection if seen.

	* TsTileSpecOut.c (tspSaveTspec): Comment out unused funcName.
	* tsmArg.c (tsmParseVRMLArgs): Comment out unused funcName.
	* tsmChecksum.c (tsmUpdateTileStats, tsmChecksumPyramid_col):
	  Comment out unused funcName.
	* tsmConnection.c (tsmDisconnect): Comment out unused funcName.
	* tsmConnectionParams.c (tsmPrintParams): Comment out unused
	  funcName.
	* tsmCreate_LAS.c (tsmCreateLevelTiles_LASRGB): Remove unused vars.
	* tsmCreate_RAW.c (tsmReadRow_RAW): Comment out unused funcName.
	* tsmEmulate_local.c (tsmIsTIFFPresent_local): Comment out unused
	  funcName.
	* tsmEmulate_web.c (tsmIsTIFFPresent_web): Comment out unused
	  funcName.
	* tsmImageUtils.c (tsmRgbBufferToGifFile): Comment out unused
	  funcName.
	* tsmMem.c (tsmMemManagerFree): Comment out unused funcName.
	* tsmPyramidInfo.c (tsmPrintServerGroup, tsmPrintPyramidInfo):
	  Comment out unused funcName.
	* tsmTspecUtils.c (fprint_Purl, fprint_IdentityTspec,
	 fprint_TileTspec, fprint_CoordTspec, fprint_PixelTspec,
	 fprint_ImageTransformationTspec, fprint_ProjectionTspec,
	 fprint_SimpleTileSet, fprint_Pyramid, fprint_NameUrlPairs,
	 check_TileTspec_for_strings, check_CoordTspec_for_strings,
	 check_PixelTspec_for_strings, 
	 check_ImageTransformationTspec_for_strings,
	 check_ProjectionTspec_for_strings): Comment out unused funcName.
	* tsmTspec_web.c (tsmReadTspec_web): Comment out unused funcName.
	* tsmUTM.c (projection_limit_check): Remove unused var
	* tsmUtils.c (tsmCheckString): Comment out unused funcName.
	* tsmVRML.c (tsmWriteGeotile): Make funcName static.
	* tsmVRMLUtils.c (tsmVRMLCacheAdd): Remove unused vars.
	(tsmTileElev): Comment out unused funcName.

Sun Apr 23 14:55:09 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmCreate.c (tsmInitTileParams): set the default DEM tile size
	to be 128 x 128.

	* tsmCreate_RAW.c (tsmCreateLevelTiles_generic): calculate the
	tile size based upon the pyramid's pixel dimensions not those of
	the input data

	* TsTileSpecGen.c (tspCreatePyramid): set tspec pixel info to a
	default value (e.g. 1 comp of 4 bytes) and don't use the values
	from the params structures as these as for the input data not the
	output pyramid.

	* tsmChecksum.c (tsmCalcTileStats): added code to calculate the
	min/max tile values for 2-byte input data.

2000-04-13  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmUrlToFile.c (tsmOpenHttpConnection): Use HTTP_TRANS_SYNC
	  mode.  Identify connection in TSMTRACE.
	(tsmCloseHttpConnection): Identify connection in TSMTRACE.
	(tsmCloseStream): Pass funcName to TSMTRACE

Thu Apr  6 16:48:45 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmOpenHttpConnection): disabled the http
	connection caching for the time being - it doesn't work on avila
	for some reason - need to investigate this further!! 

	* tsmTile_web.c (tsmReadNextTile_web): create a URL that will use
	the Apache mod on the server (if installed), otherwise stick with
	the old cgi-bin style URL.

	* tsmConnection_web.c (tsmConnect_web): remove the code that
	checks for the existence of tile formats over the web - this is
	done by the apache mod/cgi script.
	(tsmConnect_web): check whether the http server has the
	mod_terravision Apache mod installed

2000-04-06  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmTile_local.c: Include <prerror.h>
	(tsmReadNextTile_local): Check for PR_PENDING_INTERRUPT_ERROR on
	  failure and return TSM_NODATA.
	* tsmTile_web.c: Include <prerror.h>
	(tsmReadNextTile_web): Check for PR_PENDING_INTERRUPT_ERROR on
	  failure and return TSM_NODATA.

2000-04-06  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* tsmConnection.c (tsmGet, tsmDescribeConnection): Move
	  DPSS-specific variables inside #ifdef region.
	(tsmConnectionType): Remove unused vars.
	* tsmCreate_PBM.c (tsmParseCreateParams_PPM,
	  tsmParseCreateParams_PGM): Remove unused vars.
	* tsmDatabase.c (tsmAppendDataSet, tsmPersistDatabase,
	  tsmIsFootprintInside, tsmCalcFootprintFromXform,
	  tsmUpdateDatabaseFromServerCB, tsmRemoveMapFromDatabase,
	  tsmRemoveModelFromDatabase): Remove unused vars.
	(tsmUpdateDatabaseFromServerCB): Move fast_dpss check inside DPSS
	  ifdefed region.
	* tsmDatabase_local.c (tsmReadDatabase_local): Remove unused vars.
	  Delete #if 0 section.
	* tsmPyramidInfo_local.c (tsmReadNameUrlIds): Remove unused vars.
	* tsmTile.c (tsmTileReqEnd): Remove unused vars.
	* tsmTile_local.c (tsmReadTIFF_local): Remove unused vars.
	(tsmWriteTIFF_local): Ditto.
	* tsmTspec_web.c (tsmReadTspecNEW_web): Remove unused tmpPathName
	* tsmUrlToFile.c (tsmUrlToTempFile): Remove unused vars.
	(tsmOpenStream): Add funcName to TSMTRACE().

	* tsmUrlToFile.c (tsmFilenameFromHandle): Correct usage of
	  list_next() and list_delete()

Wed Apr  5 15:43:06 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* TsTileSpecGen.c (tspCreatePyramid): changed the behaviour of how
	many levels to create. Previously we created levels until the
	lowest res version fitted inside a 32x32 tile. This is no longer a
	requirement, so now we go down until the lowest version fits
	inside a single tile of the dimensions set for that dataset,
	e.g. 128x128 for OIs by default.

	* tsmCreate_RAW.c (tsmCreateLevelTiles_generic): minor fix for
	dealing with arbitrary tile sizes

	* tsmUrlToFile.c (tsmReadHttpFile): explicitly set the HTTP
	version number of GETs/HEADs to 1.1

	* TsTileSpecGen.c (tspCreatePyramid): no longer hardcoded to
	128x128 for OIs and 32x32 for DEMs. Accepts a TsmTileParams
	structure and sets up the tile dimensions from that.

Fri Mar 17 09:23:31 2000    <reddy@MAGNOLIA>

	* tsmUrlToFile.c (tsmReadHttpFile): move range string to top of
 	function otherwise it is destroyed before we are finished with its
 	value
	(tsmReadHttpFile): only read the body if we doing a GET

	* tsmPurl.c (tsmFilenameToUrl): don't assume that getcwd() returns
 	a string starting with '/'. This is not the case under Windows.

Thu Mar 16 09:45:13 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c: updated all http routines to use the low-level
	ghttp functions.

Wed Mar 15 16:15:31 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmConnection_web.c (tsmDisconnect_web): if we have an http
	connection open, then close it.

	* tsmConnection.c (tsmDisconnect): call the new HTTP disconnect
	function when closing a connection

Mon Mar 06 00:40:31 2000    <reddy@MAGNOLIA>

	* tsmTile_web.c (tsmReadNextTile_web): include the port number in
 	the http URL to the server's get_http_tile CGI entry point.
	(tsmCheckTileFormat_web): include the port number in the test for
 	whether a file exists at the specified URL
	(tsmCheckTIFFFormat_web): ditto

Thu Mar  2 17:15:48 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* configure.in (ac_cv_have_dash_pthread): removed libwww and ghttp
	from the command line

Tue Feb 29 18:24:56 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUtils.c (tsmMakeDirIfNotExist): should check for
 	PR_GetFileInfo returning a value NOT equal to PR_SUCCESS in order
	to create the directory structure (logic was inverted).

2000-02-11  Lee Iverson  <leei@Canada.AI.SRI.COM>

	* configure.in: Remove check for ../thread/pthread.h
	* configure, config.h.in: Regen

Thu Jan 27 10:59:06 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmInitHttp): initialise out http PRLock 
	(tsmCleanupHttp): destroy our http PRLock
	(tsmSetHttpProxy): enclose the mechanics of this function inside a
	PR_Lock...PR_Unlock block because libwww is not thread safe
	(tsmUrlToMemory): ditto on the locking to maintain thread safe
	(tsmUrlToBuffer): ditto on the locking to maintain thread safe
	(tsmUrlMimeType): ditto on the locking to maintain thread safe

	* tsmTile_web.c (tsmReadNextTile_web): use the new tsmUrlToBuffer
	call to read an http tile into memory
	(tsmCheckTileFormat_web): use the new tsmUrlExists call to check
	the tile format of the remote dataset
	(tsmCheckTIFFFormat_web): use the new tsmUrlExists call to check
	for the specific TIFF image on an http server

	* tsmUrlToFile.c (tsmUrlToFile): [new func] takes an http url and
 	downloads it to a file on local disk using the libwww routines.
	(tsmUrlToBuffer): [new func] loads an http url to a preallocated
 	buffer, with the ability to specify a maximum number of bytes to
 	read.
	(tsmUrlMimeType): [new func] performs a HEAD request on the URL
	and returns its MIME type using libwww
	(tsmUrlExists): [new func] checks to see if a valid file exists at
	the end of a URL (not exist means MIME type = "www/unknown").
	(tsmHttpUrlToFile): [deleted]
	(tsmHttpUrlToBuffer): [deleted]
	(tsmHttpUrlFd): [deleted]
	(tsmHttpFdToStream): [deleted]
	(tsmSkipHttpHeader): [deleted]
	(tsmSkipHttpHeaderFd): [deleted]
	(tsmSocketRequestFd): [deleted]
	(tsmFileDescToFile): [deleted]
	(tsmFileDescToBuffer): [deleted]

Wed Jan 26 17:17:59 2000  Martin Reddy  <reddy@Lomond.AI.SRI.COM>

	* tsmUrlToFile.c (tsmInitHttp): [new func] initialises the libwww
 	library (if not already initialised)
	(tsmCleanupHttp): [new func] closes down the libwww (if previously
 	inited)
	(tsmSetHttpProxy): [new func] set and remove a proxy server for all
	http accesses
	(tsmUrlToMemory): [new func] uses libwww to download a file from
	an http server into memory. Returns the buffer and its size.

	* tsmUtils.c: change name of our HTTP define to USE_HTTP in order
	to avoid conflict with a definition in libwww

	* tsmConnection_web.c: ditto

	* tsmEmulate_web.c: ditto

	* tsmLocalDbase_web.c: ditto

	* tsmPyramidInfo_web.c: ditto

	* tsmTile_web.c: ditto

	* tsmTspec_web.c: ditto

	* configure.in: added libwww include files to the compile line for
	tsmApi

Tue Jan 18 17:16:03 2000    <reddy@MAGNOLIA>

	* tsmUrlToFile.c (tsmAddHandle): remembers a FILE stream and
 	filename pair.
	(tsmFilenameFromHandle): returns a filename given a FILE stream,
 	as previously supplied to tsmAddHandle
	(tsmHttpFdToStream): remember the name of the temp file that we
 	create when we pull the http file over to localdisk
	(tsmCloseStream): delete the temp file associate with this handle
 	(if there is one)

Fri Jan 14 11:07:21 2000    <reddy@MAGNOLIA>

	* tsmPurl.c (tsmParseUrl): update to support Windows style full
 	paths, e.g. C:/foo. This involves correctly realizing that C:/ is
 	not a full URL with an unknown protocol (http://), that this is
 	the root directory and doesn't need a '/' prefixed, as well as
 	converting '\' style slashes to '/'.

Thu Jan 06 15:21:07 2000  Martin Reddy  <reddy@MAGNOLIA>

	* tsmUrlToFile.c (tsmSocketRequestFd): don't do an htons on the
 	port. This caused http streams to not work on the PC. Also, the
 	3rd param of PR_Connect is a timeout not a byte size.

Tue Jan  4 09:44:26 2000  Martin Reddy  <reddy@Lomond.AI.S