vhclmaps-0.7.2-0.7.3.diffs Vectaport Inc. June 14th 1999 This file, when applied with patch, transforms a vhclmaps source tree with all the changes made to Vectaport's copy between 0.7.2 and 0.7.3. See the diff to the vhclmaps-0.7/CHANGES file below for details of what's new. To apply this patch, cd to the top directory of the vhclmaps-0.7 source tree (the directory with "config" and "src" sub-directories), and pipe the file to patch, i.e.: patch menu()->append_item(kit.menu_item_separator()); MakeMenu(mbi, new OvQuitCmd(new ControlInfo("Quit", KLBL_QUIT, CODE_QUIT)), "Quit "); --- 221,228 ---- "Load Map Features... "); MakeMenu(mbi, new DemExportVRMLCmd(new ControlInfo("Export", "^X", "\030")), "Export VRML..."); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vhclmaps demviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About vhclmaps demviewer"); mbi->menu()->append_item(kit.menu_item_separator()); MakeMenu(mbi, new OvQuitCmd(new ControlInfo("Quit", KLBL_QUIT, CODE_QUIT)), "Quit "); Index: Dlg/dlgfclass.c diff -c Dlg/dlgfclass.c:1.1 Dlg/dlgfclass.c:1.2 *** Dlg/dlgfclass.c:1.1 Wed Mar 24 11:47:22 1999 --- src/Dlg/dlgfclass.c Sun May 16 17:40:21 1999 *************** *** 88,97 **** return _path; } - DlgFeature* DlgFeatureClass::feature(unsigned fclsnum) const { - return (DlgFeature*)MapFeatureClass::feature(fclsnum); - } - const char* DlgFeatureClass::description() const { sprintf(((DlgFeatureClass*)this)->dlgdesc, "%s feature class", name()); return dlgdesc; --- 88,93 ---- Index: Dlg/dlgfclass.h diff -c Dlg/dlgfclass.h:1.1 Dlg/dlgfclass.h:1.2 *** Dlg/dlgfclass.h:1.1 Wed Mar 24 11:47:22 1999 --- src/Dlg/dlgfclass.h Sun May 16 17:40:21 1999 *************** *** 44,51 **** DlgCoverage* coverage() const { return (DlgCoverage*)_coverage; } virtual void coverage(DlgCoverage* cov) { _coverage = (MapCoverage*)cov; } - DlgFeature* feature(unsigned fnum) const; - virtual const char* description() const; PJ* projection(); void projection(PJ*); --- 44,49 ---- Index: DlgUnidraw/dlgkit.c diff -c DlgUnidraw/dlgkit.c:1.1 DlgUnidraw/dlgkit.c:1.2 *** DlgUnidraw/dlgkit.c:1.1 Wed Mar 24 11:48:34 1999 --- src/DlgUnidraw/dlgkit.c Sun May 16 18:33:45 1999 *************** *** 264,271 **** MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About ivmaps dlgviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About ivmaps dlgviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new DlgIdrawComp), "New "); --- 264,271 ---- MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vhclmaps dlgviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About vhclmaps dlgviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new DlgIdrawComp), "New "); Index: Map/mapfclass.c diff -c Map/mapfclass.c:1.1 Map/mapfclass.c:1.2 *** Map/mapfclass.c:1.1 Wed Mar 24 11:46:51 1999 --- src/Map/mapfclass.c Sat Jun 12 15:27:56 1999 *************** *** 185,191 **** return _path; } ! int MapFeatureClass::nfeats() const{ if (!initialized()) ((MapFeatureClass*)this)->init_features(); return _nfeats; --- 185,191 ---- return _path; } ! int MapFeatureClass::nfeats() { if (!initialized()) ((MapFeatureClass*)this)->init_features(); return _nfeats; *************** *** 206,212 **** out << "Feature Class: " << fclass.name() << "\n"; out << "Path: " << fclass.path() << "\n"; out << "Description: " << fclass.description() << "\n"; ! out << "Features: " << fclass.nfeats() << "\n"; return out; } --- 206,212 ---- out << "Feature Class: " << fclass.name() << "\n"; out << "Path: " << fclass.path() << "\n"; out << "Description: " << fclass.description() << "\n"; ! out << "Features: " << ((MapFeatureClass&)fclass).nfeats() << "\n"; return out; } Index: Map/mapfclass.h diff -c Map/mapfclass.h:1.1 Map/mapfclass.h:1.3 *** Map/mapfclass.h:1.1 Wed Mar 24 11:46:51 1999 --- src/Map/mapfclass.h Sat Jun 12 15:27:56 1999 *************** *** 49,56 **** MapCoverage* coverage() const { return _coverage; } virtual void coverage(MapCoverage* cov) { _coverage = cov; } ! int nfeats() const; ! MapFeature* feature(unsigned fnum) const; void append(MapFeature*); virtual const char* description() const; --- 49,56 ---- MapCoverage* coverage() const { return _coverage; } virtual void coverage(MapCoverage* cov) { _coverage = cov; } ! virtual int nfeats(); ! virtual MapFeature* feature(unsigned fnum) const; void append(MapFeature*); virtual const char* description() const; Index: MapServ/mapfunc.c diff -c MapServ/mapfunc.c:1.4 MapServ/mapfunc.c:1.6 *** MapServ/mapfunc.c:1.4 Fri Apr 16 15:03:47 1999 --- src/MapServ/mapfunc.c Sun May 16 18:36:09 1999 *************** *** 1568,1574 **** reset_stack(); ComValue result; ! ComTerpServ* attrterp = new ComTerpServ(); attrterp->add_defaults(); attrterp->read_string(symbol_pntr(expr.string_val())); --- 1568,1574 ---- reset_stack(); ComValue result; ! ComTerpServ* attrterp = new ComTerpServ(BUFSIZ); attrterp->add_defaults(); attrterp->read_string(symbol_pntr(expr.string_val())); *************** *** 1633,1639 **** FPointObj p2(fx2, fy2); FLineObj line(fx1, fy1, fx2, fy2); ! ComTerpServ* attrterp = new ComTerpServ(); attrterp->add_defaults(); attrterp->read_string(symbol_pntr(expr.string_val())); --- 1633,1639 ---- FPointObj p2(fx2, fy2); FLineObj line(fx1, fy1, fx2, fy2); ! ComTerpServ* attrterp = new ComTerpServ(BUFSIZ); attrterp->add_defaults(); attrterp->read_string(symbol_pntr(expr.string_val())); *************** *** 1802,1808 **** } ComponentView* view = (ComponentView*)fclass.obj_val(); ! MapFClassComp* fccomp = (MapFClassComp*)view->GetSubject(); if (bitmap.is_true()) { int ncols, nrows; float scale = 1.; --- 1802,1809 ---- } ComponentView* view = (ComponentView*)fclass.obj_val(); ! MapFClassComp* fccomp = view ? (MapFClassComp*)view->GetSubject() : nil; ! if (!fccomp) return; if (bitmap.is_true()) { int ncols, nrows; float scale = 1.; *************** *** 2156,2162 **** _expr_table = new postfix_token*[_table_siz]; _exprlen_table = new int[_table_siz]; } ! _gsterp = new ComTerpServ(); _gsterp->add_defaults(); } --- 2157,2163 ---- _expr_table = new postfix_token*[_table_siz]; _exprlen_table = new int[_table_siz]; } ! _gsterp = new ComTerpServ(BUFSIZ); _gsterp->add_defaults(); } *************** *** 2242,2248 **** ExprFCFunc::ExprFCFunc(ComTerp* comterp) : ComFunc(comterp) { ! _terp = new ComTerpServ(); _terp->add_defaults(); } --- 2243,2249 ---- ExprFCFunc::ExprFCFunc(ComTerp* comterp) : ComFunc(comterp) { ! _terp = new ComTerpServ(BUFSIZ); _terp->add_defaults(); } Index: MapUnidraw/mapabout.c diff -c MapUnidraw/mapabout.c:1.1 MapUnidraw/mapabout.c:1.2 *** MapUnidraw/mapabout.c:1.1 Wed Mar 24 11:47:53 1999 --- src/MapUnidraw/mapabout.c Fri May 7 14:05:39 1999 *************** *** 88,94 **** *\n\ */\n\ \n\ ! source and online documentation at http://www.vectaport.com/ivmaps/\n\ "; vb->append(kit.label(strtok(banner, "\n"))); char* line = strtok(nil, "\n"); --- 88,94 ---- *\n\ */\n\ \n\ ! source and online documentation at http://www.vectaport.com/vhclmaps/\n\ "; vb->append(kit.label(strtok(banner, "\n"))); char* line = strtok(nil, "\n"); Index: MapUnidraw/mapcomps.c diff -c MapUnidraw/mapcomps.c:1.1 MapUnidraw/mapcomps.c:1.2 *** MapUnidraw/mapcomps.c:1.1 Wed Mar 24 11:47:53 1999 --- src/MapUnidraw/mapcomps.c Fri May 7 14:05:39 1999 *************** *** 1,5 **** /* ! * Copyright 1997-1998 Vectaport Inc. * Copyright 1994,1995 Vectaport Inc., Cartoactive Systems * * Permission to use, copy, modify, distribute, and sell this software and --- 1,5 ---- /* ! * Copyright 1997-1999 Vectaport Inc. * Copyright 1994,1995 Vectaport Inc., Cartoactive Systems * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 430,435 **** --- 430,439 ---- return bm; + } + + void MapFClassComp::AdjustBaseDir(const char* olddir, const char* newdir) { + OverlayComp::AdjustBaseDir(olddir, newdir); } /*****************************************************************************/ Index: MapUnidraw/mapcomps.h diff -c MapUnidraw/mapcomps.h:1.1 MapUnidraw/mapcomps.h:1.2 *** MapUnidraw/mapcomps.h:1.1 Wed Mar 24 11:47:53 1999 --- src/MapUnidraw/mapcomps.h Fri May 7 14:05:39 1999 *************** *** 1,5 **** /* ! * Copyright 1997 Vectaport Inc. * Copyright 1994, 1995 Vectaport Inc., Cartoactive Systems * * Permission to use, copy, modify, distribute, and sell this software and --- 1,5 ---- /* ! * Copyright 1997-1999 Vectaport Inc. * Copyright 1994, 1995 Vectaport Inc., Cartoactive Systems * * Permission to use, copy, modify, distribute, and sell this software and *************** *** 95,100 **** --- 95,103 ---- virtual void ResetIndexedGS() { reset_indexed_gs(); } virtual Graphic* GetIndexedGS(int i) { return get_indexed_gs(i); } + virtual void AdjustBaseDir(const char* oldpath, const char* newpath); + // adjust base directory used for generating pathnames for this component, + // done when a document is saved to a new location. protected: MapFeatureClass* _mapfc; char* _pathname; Index: MapUnidraw/mapinspect.c diff -c MapUnidraw/mapinspect.c:1.1 MapUnidraw/mapinspect.c:1.2 *** MapUnidraw/mapinspect.c:1.1 Wed Mar 24 11:47:54 1999 --- src/MapUnidraw/mapinspect.c Fri May 7 14:05:39 1999 *************** *** 152,171 **** } } ! GraphicView* MapInspectTool::FindInList(OverlaysView* vs, Event& e) { GraphicView* view = nil; Iterator i; for (vs->Last(i); !vs->Done(i); vs->Prev(i)) { GraphicView* iview = vs->GetView(i); if (iview->IsA(MAPFCLASS_VIEW)) { ! GraphicView* fview = FindInFCView((MapFClassView*)iview, e); if (fview) { view = fview; break; } } else if (iview->IsA(OVERLAYS_VIEW)) { ! GraphicView* lview = FindInList((OverlaysView*)iview, e); if (lview) { view = lview; break; --- 152,172 ---- } } ! /* static */ GraphicView* MapInspectTool::FindInList(OverlaysView* vs, ! IntCoord x, IntCoord y) { GraphicView* view = nil; Iterator i; for (vs->Last(i); !vs->Done(i); vs->Prev(i)) { GraphicView* iview = vs->GetView(i); if (iview->IsA(MAPFCLASS_VIEW)) { ! GraphicView* fview = FindInFCView((MapFClassView*)iview, x, y); if (fview) { view = fview; break; } } else if (iview->IsA(OVERLAYS_VIEW)) { ! GraphicView* lview = FindInList((OverlaysView*)iview, x, y); if (lview) { view = lview; break; *************** *** 175,182 **** return view; } ! GraphicView* MapInspectTool::FindInFCView(MapFClassView* vs, Event& e) { ! Selection* fs = vs->ViewIntersecting(e.x-SLOP, e.y-SLOP, e.x+SLOP, e.y+SLOP); if (!fs->IsEmpty()) { Iterator fi; fs->First(fi); --- 176,184 ---- return view; } ! /* static */ GraphicView* MapInspectTool::FindInFCView(MapFClassView* vs, ! IntCoord x, IntCoord y) { ! Selection* fs = vs->ViewIntersecting(x-SLOP, y-SLOP, x+SLOP, y+SLOP); if (!fs->IsEmpty()) { Iterator fi; fs->First(fi); *************** *** 186,193 **** return nil; } ! GraphicView* MapInspectTool::FindFeature(OverlaysView* sel, Event& e, Selection* vs) { GraphicView* view = nil; #if 0 Iterator i; --- 188,200 ---- return nil; } ! /* static */ GraphicView* MapInspectTool::FindFeature(OverlaysView* sel, Event& e, Selection* vs) { + return FindFeature(sel, e.x, e.y, vs); + } + + /* static */ GraphicView* MapInspectTool::FindFeature(OverlaysView* sel, IntCoord x, + IntCoord y, Selection* vs) { GraphicView* view = nil; #if 0 Iterator i; *************** *** 203,209 **** Iterator g; for (kview->Last(g); !kview->Done(g); kview->Prev(g)) { MapFClassView* fcview = (MapFClassView*)kview->GetView(g); ! Selection* fs = fcview->ViewIntersecting(e.x-SLOP, e.y-SLOP, e.x+SLOP, e.y+SLOP); if (!fs->IsEmpty()) { Iterator f; fs->First(f); --- 210,216 ---- Iterator g; for (kview->Last(g); !kview->Done(g); kview->Prev(g)) { MapFClassView* fcview = (MapFClassView*)kview->GetView(g); ! Selection* fs = fcview->ViewIntersecting(x-SLOP, y-SLOP, x+SLOP, y+SLOP); if (!fs->IsEmpty()) { Iterator f; fs->First(f); *************** *** 221,227 **** } break; } else if (iview->IsA(MAPFCLASS_VIEW)) { ! Selection* fs = iview->ViewIntersecting(e.x-SLOP, e.y-SLOP, e.x+SLOP, e.y+SLOP); if (!fs->IsEmpty()) { Iterator f; fs->First(f); --- 228,234 ---- } break; } else if (iview->IsA(MAPFCLASS_VIEW)) { ! Selection* fs = iview->ViewIntersecting(x-SLOP, y-SLOP, x+SLOP, y+SLOP); if (!fs->IsEmpty()) { Iterator f; fs->First(f); *************** *** 316,322 **** } } #endif ! view = FindInList(sel, e); if (view) { vs->Clear(); --- 323,329 ---- } } #endif ! view = FindInList(sel, x, y); if (view) { vs->Clear(); Index: MapUnidraw/mapinspect.h diff -c MapUnidraw/mapinspect.h:1.1 MapUnidraw/mapinspect.h:1.2 *** MapUnidraw/mapinspect.h:1.1 Wed Mar 24 11:47:55 1999 --- src/MapUnidraw/mapinspect.h Fri May 7 14:05:39 1999 *************** *** 45,56 **** virtual Tool* Copy(); virtual ClassId GetClassId(); virtual boolean IsA(ClassId); protected: virtual void Localize(Selection*, Viewer*); virtual void DoInspect(GraphicView*, Viewer*); - GraphicView* FindFeature(OverlaysView*, Event&, Selection*); - GraphicView* FindInList(OverlaysView*, Event&); - GraphicView* FindInFCView(MapFClassView*, Event&); MapSelectionState* selstate; }; --- 45,57 ---- virtual Tool* Copy(); virtual ClassId GetClassId(); virtual boolean IsA(ClassId); + static GraphicView* FindFeature(OverlaysView*, Event&, Selection*); + static GraphicView* FindFeature(OverlaysView*, IntCoord x, IntCoord y, Selection*); + static GraphicView* FindInList(OverlaysView*, IntCoord x, IntCoord y); + static GraphicView* FindInFCView(MapFClassView*, IntCoord x, IntCoord y); protected: virtual void Localize(Selection*, Viewer*); virtual void DoInspect(GraphicView*, Viewer*); MapSelectionState* selstate; }; Index: ProjServ/projfunc.c diff -c ProjServ/projfunc.c:1.3 ProjServ/projfunc.c:1.4 *** ProjServ/projfunc.c:1.3 Fri Apr 16 15:04:03 1999 --- src/ProjServ/projfunc.c Sun May 16 17:40:37 1999 *************** *** 146,152 **** VpfFeatureClass* fc = cov->feature_class("tileref"); int nfeats = fc->nfeats(); for (int i = 0; i < nfeats; i++) { ! VpfFeature* tile = fc->feature(i); MapFace* tile_face = tile->face_primitive(); TopoFace* tile_topo_face = tile_face->topo(); FFillPolygonObj* tile_fpoly = tile_topo_face->polygon(); --- 146,152 ---- VpfFeatureClass* fc = cov->feature_class("tileref"); int nfeats = fc->nfeats(); for (int i = 0; i < nfeats; i++) { ! VpfFeature* tile = (VpfFeature*)fc->feature(i); MapFace* tile_face = tile->face_primitive(); TopoFace* tile_topo_face = tile_face->topo(); FFillPolygonObj* tile_fpoly = tile_topo_face->polygon(); Index: ProjUnidraw/projkit.c diff -c ProjUnidraw/projkit.c:1.2 ProjUnidraw/projkit.c:1.3 *** ProjUnidraw/projkit.c:1.2 Mon Mar 29 10:05:48 1999 --- src/ProjUnidraw/projkit.c Sun May 16 18:33:56 1999 *************** *** 306,313 **** MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About ivmaps projviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About ivmaps projviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new MapIdrawComp), "New "); --- 306,313 ---- MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vhclmaps projviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About vhclmaps projviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new MapIdrawComp), "New "); Index: UtmUnidraw/utmkit.c diff -c UtmUnidraw/utmkit.c:1.6 UtmUnidraw/utmkit.c:1.7 *** UtmUnidraw/utmkit.c:1.6 Tue Apr 27 14:24:33 1999 --- src/UtmUnidraw/utmkit.c Sun May 16 18:33:51 1999 *************** *** 365,372 **** MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About ivmaps utmviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About ivmaps utmviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new MapIdrawComp(false)), "New "); --- 365,372 ---- MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vhclmaps utmviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About vhclmaps utmviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new MapIdrawComp(false)), "New "); Index: Vpf/vpffclass.c diff -c Vpf/vpffclass.c:1.1 Vpf/vpffclass.c:1.3 *** Vpf/vpffclass.c:1.1 Wed Mar 24 11:47:16 1999 --- src/Vpf/vpffclass.c Sun May 16 17:40:19 1999 *************** *** 938,944 **** long int start_edge, vpf_table_type edgetable, int ftype) const { - MapFace* mface = new MapFace(); edge_rec_type edge_rec; long int next, prevnode; boolean done=FALSE; --- 938,943 ---- *************** *** 956,964 **** float* y = new float[size]; add_polygon_edge(&edge_rec, x, y, &n, &size); if (edge_rec.coord) free(edge_rec.coord); - MapEdge* edge = new MapEdge; - edge->insert_pointers(n, x, y, nil, true); - MapNode* start_node, *end_node; while (!done) { if (next < 0) { printf(" VPF topology error! Edge: %ld face: %ld left: %ld right: %ld\n", --- 955,960 ---- *************** *** 977,983 **** } } MapFace* mf = new MapFace(); ! mf->insert_pointers(n, x, y); return mf; } --- 973,979 ---- } } MapFace* mf = new MapFace(); ! mf->insert_pointers(n, x, y, nil, true); return mf; } *************** *** 998,1007 **** ftype,row); vf->face_primitive(mf); return vf; - } - - VpfFeature* VpfFeatureClass::feature(int i) const { - return (VpfFeature*)MapFeatureClass::feature(i); } /* Inspired by DosVpfviews\'s table_pos */ --- 994,999 ---- Index: Vpf/vpffclass.h diff -c Vpf/vpffclass.h:1.1 Vpf/vpffclass.h:1.3 *** Vpf/vpffclass.h:1.1 Wed Mar 24 11:47:16 1999 --- src/Vpf/vpffclass.h Wed Jun 9 10:09:07 1999 *************** *** 65,71 **** static int primitive_class (const char*); static int feature_class_type (const char*); - VpfFeature* feature(int) const; void delete_features(); int ncolumns() const { return _ncolumns; } --- 65,70 ---- *************** *** 78,87 **** void dump_ring_table() const; void dump_dict() const; ! void tilename(char* tn); ! char* tilename() { return _tilename; } protected: ! char* _tilename; boolean _makefeatures; char* _desc; char* _tabl; --- 77,86 ---- void dump_ring_table() const; void dump_dict() const; ! void tilename(char* tn); ! char* tilename() { return _tilename; } protected: ! char* _tilename; boolean _makefeatures; char* _desc; char* _tabl; Index: Vpf/vpflib.c diff -c Vpf/vpflib.c:1.1 Vpf/vpflib.c:1.2 *** Vpf/vpflib.c:1.1 Wed Mar 24 11:47:16 1999 --- src/Vpf/vpflib.c Sun May 16 17:40:19 1999 *************** *** 448,454 **** outfile.form(",%f,%f", point_rec.x, point_rec.y); for (int j = 1; j < fc->nfeats(); j++) { // avoid first dummy tile ! VpfFeature* tile = fc->feature(j); VpfExtent* extent = tile->extent(); FBoxObj extbox(extent->x1, extent->y1, extent->x2, extent->y2); if (extbox.Contains(npoint)) { --- 448,454 ---- outfile.form(",%f,%f", point_rec.x, point_rec.y); for (int j = 1; j < fc->nfeats(); j++) { // avoid first dummy tile ! VpfFeature* tile = (VpfFeature*)fc->feature(j); VpfExtent* extent = tile->extent(); FBoxObj extbox(extent->x1, extent->y1, extent->x2, extent->y2); if (extbox.Contains(npoint)) { Index: Vpf/vpftiledfc.c diff -c Vpf/vpftiledfc.c:1.1 Vpf/vpftiledfc.c:1.3 *** Vpf/vpftiledfc.c:1.1 Wed Mar 24 11:47:17 1999 --- src/Vpf/vpftiledfc.c Sat Jun 12 15:28:01 1999 *************** *** 46,51 **** --- 46,52 ---- const char* tilename) : VpfFeatureClass(vc, name) { + _last_tileid = -1; _tilename = tilename ? strdup(tilename) : nil; if (!_tilename) { VpfFeatureClass* tileref = coverage()->library()->coverage("tileref")-> *************** *** 131,137 **** if (!_tilename) { VpfFeatureClass* tileref = coverage()->library()->coverage("tileref")-> feature_class("tileref"); ! VpfFeature* tile = tileref->feature(tileid-1); tilename = (char*)tile->named_row_element("TILE_NAME", (void*)NULL, &count); } else --- 132,138 ---- if (!_tilename) { VpfFeatureClass* tileref = coverage()->library()->coverage("tileref")-> feature_class("tileref"); ! VpfFeature* tile = (VpfFeature*)tileref->feature(tileid-1); tilename = (char*)tile->named_row_element("TILE_NAME", (void*)NULL, &count); } else *************** *** 190,216 **** vpf_close_table(&table); } free(tilename); } int VpfTiledFeatureClass::nfeats(int tileid) { if (tilestart[tileid] == 0) init_tile(tileid); return tileend[tileid]-tilestart[tileid]+1; } ! VpfFeature* VpfTiledFeatureClass::feature(int tileid, int fnum) { if (_tfeatures[tileid] == nil) ! make_tile_features(tileid); return (_tfeatures[tileid])[fnum]; } void VpfTiledFeatureClass::make_tile_features(int tileid) { char* tilename; long int count; if (!_tilename) { VpfFeatureClass* tileref = coverage()->library()->coverage("tileref")-> feature_class("tileref"); ! VpfFeature* tile = tileref->feature(tileid-1); tilename = (char*)tile->named_row_element("TILE_NAME", (void*)NULL, &count); fixpath(tilename); rjust(tilename); --- 191,235 ---- vpf_close_table(&table); } free(tilename); + _last_tileid = tileid; + } + + int VpfTiledFeatureClass::nfeats() { + return nfeats(-1); } int VpfTiledFeatureClass::nfeats(int tileid) { + if (tileid>0) + _last_tileid = tileid; + else + tileid = _last_tileid; if (tilestart[tileid] == 0) init_tile(tileid); return tileend[tileid]-tilestart[tileid]+1; } ! MapFeature* VpfTiledFeatureClass::feature(unsigned fnum) const { ! if (_last_tileid != -1) ! return feature(_last_tileid, (int)fnum); ! else ! return 0; ! } ! ! MapFeature* VpfTiledFeatureClass::feature(int tileid, int fnum) const { ! ((VpfTiledFeatureClass*)this)->_last_tileid = tileid; if (_tfeatures[tileid] == nil) ! ((VpfTiledFeatureClass*)this)->make_tile_features(tileid); return (_tfeatures[tileid])[fnum]; } void VpfTiledFeatureClass::make_tile_features(int tileid) { + _last_tileid = tileid; char* tilename; long int count; if (!_tilename) { VpfFeatureClass* tileref = coverage()->library()->coverage("tileref")-> feature_class("tileref"); ! VpfFeature* tile = (VpfFeature*)tileref->feature(tileid-1); tilename = (char*)tile->named_row_element("TILE_NAME", (void*)NULL, &count); fixpath(tilename); rjust(tilename); Index: Vpf/vpftiledfc.h diff -c Vpf/vpftiledfc.h:1.1 Vpf/vpftiledfc.h:1.4 *** Vpf/vpftiledfc.h:1.1 Wed Mar 24 11:47:17 1999 --- src/Vpf/vpftiledfc.h Sat Jun 12 15:28:01 1999 *************** *** 32,39 **** public: VpfTiledFeatureClass(VpfCoverage*, const char* name, const char* =nil); virtual ~VpfTiledFeatureClass(); int nfeats(int tileid); ! VpfFeature* feature(int tileid, int fnum); protected: /* Ok, so this may be end up being DCW specific, but let\'s give it a shot */ --- 32,42 ---- public: VpfTiledFeatureClass(VpfCoverage*, const char* name, const char* =nil); virtual ~VpfTiledFeatureClass(); + virtual int nfeats(); int nfeats(int tileid); ! virtual MapFeature* feature(unsigned fnum) const; ! MapFeature* feature(int tileid, int fnum) const; ! int last_tileid() { return _last_tileid; } protected: /* Ok, so this may be end up being DCW specific, but let\'s give it a shot */ *************** *** 43,48 **** --- 46,52 ---- int _ntiles; VpfFeature*** _tfeatures; char* _tilename; + int _last_tileid; virtual MapFeature** make_features(int &nfeats) const; void init_tile(int tileid); void make_tile_features(int tileid); Index: VpfUnidraw/vpfcomps.c diff -c VpfUnidraw/vpfcomps.c:1.1 VpfUnidraw/vpfcomps.c:1.2 *** VpfUnidraw/vpfcomps.c:1.1 Wed Mar 24 11:48:24 1999 --- src/VpfUnidraw/vpfcomps.c Sun May 16 17:40:29 1999 *************** *** 268,274 **** } else { int tid = ((MapShowCmd*)cmd)->GetTileId(); ! tile = tfc->feature(tid-1); } if (!tname) tile->named_row_element("ID", &tileid, &count); --- 268,274 ---- } else { int tid = ((MapShowCmd*)cmd)->GetTileId(); ! tile = (VpfFeature*)tfc->feature(tid-1); } if (!tname) tile->named_row_element("ID", &tileid, &count); Index: VpfUnidraw/vpfkit.c diff -c VpfUnidraw/vpfkit.c:1.2 VpfUnidraw/vpfkit.c:1.3 *** VpfUnidraw/vpfkit.c:1.2 Mon Mar 29 10:12:39 1999 --- src/VpfUnidraw/vpfkit.c Sun May 16 18:33:42 1999 *************** *** 302,309 **** MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vpfviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About ivmaps vpfviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new VpfIdrawComp), "New "); --- 302,309 ---- MenuItem *mbi = kit.menubar_item(kit.label("File")); mbi->menu(kit.pulldown()); ! MakeMenu(mbi, new MapAboutCmd(new ControlInfo("About vhclmaps vpfviewer", KLBL_ABOUT, CODE_ABOUT)), ! "About vhclmaps vpfviewer"); MakeMenu(mbi, new OvNewCompCmd(new ControlInfo("New", KLBL_NEWCOMP, CODE_NEWCOMP), new VpfIdrawComp), "New "); Index: VpfUnidraw/vpfscripts.c diff -c VpfUnidraw/vpfscripts.c:1.1 VpfUnidraw/vpfscripts.c:1.2 *** VpfUnidraw/vpfscripts.c:1.1 Wed Mar 24 11:48:25 1999 --- src/VpfUnidraw/vpfscripts.c Wed Jun 9 10:09:18 1999 *************** *** 29,36 **** #include #include - #include #include #include --- 29,36 ---- #include #include #include + #include #include *************** *** 398,404 **** } /*****************************************************************************/ ! VpfFClassRawScript::VpfFClassRawScript (VpfFClassComp* subj) : MapFClassScript(subj) {} ClassId VpfFClassRawScript::GetClassId () { return VPFFCLASS_RAW; } --- 398,404 ---- } /*****************************************************************************/ ! VpfFClassRawScript::VpfFClassRawScript (VpfFClassComp* subj) : MapFClassScript(subj) {_tileid = -1;} ClassId VpfFClassRawScript::GetClassId () { return VPFFCLASS_RAW; } *************** *** 628,637 **** VpfFClassComp* comp = (VpfFClassComp*)GetSubject(); MapFeatureClass* fclass = comp->GetFeatureClass(); if (fclass->tiled()) { ! comps = ((VpfFClassComp*)comp)->TileComps()[_tileid]; } else comps = GetOverlayComp(); Iterator i; for (comps->First(i); !comps->Done(i); comps->Next(i)) { --- 628,642 ---- VpfFClassComp* comp = (VpfFClassComp*)GetSubject(); MapFeatureClass* fclass = comp->GetFeatureClass(); if (fclass->tiled()) { ! int tileid = _tileid < 0 ! ? ((VpfTiledFeatureClass*)fclass)->last_tileid() ! : _tileid; ! comps = tileid < 0 ? nil : ((VpfFClassComp*)comp)->TileComps()[tileid]; } else comps = GetOverlayComp(); + + if (!comps) return; Iterator i; for (comps->First(i); !comps->Done(i); comps->Next(i)) { Index: VpfUnidraw/vpfscripts.h diff -c VpfUnidraw/vpfscripts.h:1.1 VpfUnidraw/vpfscripts.h:1.2 *** VpfUnidraw/vpfscripts.h:1.1 Wed Mar 24 11:48:25 1999 --- src/VpfUnidraw/vpfscripts.h Wed Jun 9 10:09:18 1999 *************** *** 92,98 **** virtual boolean Definition(ostream&); virtual void Update(); ! void TileId(int i) { _tileid = i; } protected: OverlayScript* CreateRawMapScript(OverlayComp*); --- 92,98 ---- virtual boolean Definition(ostream&); virtual void Update(); ! void TileId(int i) { _tileid = i; } protected: OverlayScript* CreateRawMapScript(OverlayComp*); Index: VpfUnidraw/vpftilesel.c diff -c VpfUnidraw/vpftilesel.c:1.2 VpfUnidraw/vpftilesel.c:1.3 *** VpfUnidraw/vpftilesel.c:1.2 Mon Mar 29 10:12:39 1999 --- src/VpfUnidraw/vpftilesel.c Sun May 16 17:40:29 1999 *************** *** 155,161 **** char* tname = (char*)tile->named_row_element("TILE_NAME", NULL, &count); fixpath(tname); VpfExtent* ext = tile->extent(); ! printf("%s %f %f %f %f\n", tname, ext->x1, ext->y1, ext->x2, ext->y2); free(tname); } printf("\n"); --- 155,163 ---- char* tname = (char*)tile->named_row_element("TILE_NAME", NULL, &count); fixpath(tname); VpfExtent* ext = tile->extent(); ! int tileid; ! tile->named_row_element("ID", &tileid, &count); ! printf("tileid %d path %s extent %f %f %f %f\n", tileid, tname, ext->x1, ext->y1, ext->x2, ext->y2); free(tname); } printf("\n"); Index: config_vhclmaps/local.def diff -c config_vhclmaps/local.def:1.4 config_vhclmaps/local.def:1.5 *** config_vhclmaps/local.def:1.4 Mon May 3 13:18:38 1999 --- config/local.def Sat Jun 12 15:28:23 1999 *************** *** 4,10 **** /*********************************************************/ /* start of things you might want to change in this file */ ! #define IvtoolsVersion 0.7.7 /* * What you need to turn on debugging --- 4,10 ---- /*********************************************************/ /* start of things you might want to change in this file */ ! #define IvtoolsVersion 0.7.8 /* * What you need to turn on debugging Index: config_vhclmaps/params.def diff -c config_vhclmaps/params.def:1.5 config_vhclmaps/params.def:1.6 *** config_vhclmaps/params.def:1.5 Mon May 3 13:18:38 1999 --- config/params.def Mon Jun 14 17:00:41 1999 *************** *** 26,32 **** * VersionNumber */ #ifndef Version ! #define Version 0.7.2 #endif VERSION = Version --- 26,32 ---- * VersionNumber */ #ifndef Version ! #define Version 0.7.3 #endif VERSION = Version Index: dlgviewer/README diff -c dlgviewer/README:1.1 dlgviewer/README:1.2 *** dlgviewer/README:1.1 Wed Mar 24 11:48:38 1999 --- src/dlgviewer/README Fri May 7 14:05:45 1999 *************** *** 1,9 **** ! README for dlgviewer (ivmaps 0.6) ! dlgviewer is a program for viewing DLG 1:2M data from the USGS. See ! the top-level ivmaps README for details on how to acquire this data, ! or call 1-800-USA-MAPS to buy the CD-ROM. Arguments specific to dlgviewer are: -mapdb pathname (or -database pathname) --- 1,9 ---- ! README for dlgviewer (vhclmaps 0.7) ! dlgviewer is a program for viewing DLG 1:2M data (and DLG 100K data) ! from the USGS. See the top-level vhclmaps README for details on how to ! acquire this data, or call 1-800-USA-MAPS to buy the CD-ROM. Arguments specific to dlgviewer are: -mapdb pathname (or -database pathname) *************** *** 29,32 **** dlgviewer document.dlgs "dlgviewer -help" lists other parameters. More instructions on ! running dlgviewer at http://www.vectaport.com/ivmaps/. --- 29,32 ---- dlgviewer document.dlgs "dlgviewer -help" lists other parameters. More instructions on ! running dlgviewer at http://www.vectaport.com/vhclmaps/. Index: projserv/main.c diff -c projserv/main.c:1.1 projserv/main.c:1.3 *** projserv/main.c:1.1 Fri Apr 16 15:26:46 1999 --- projserv/main.c Mon Jun 14 16:49:57 1999 *************** *** 114,122 **** typedef ACE_Singleton OPTIONS; ! // Our ACE_Test_and_Set Singleton. typedef ACE_Singleton, ACE_Null_Mutex> QUIT_HANDLER; // ---------------------------------------- --- 114,124 ---- typedef ACE_Singleton OPTIONS; ! // ACE_Test_and_Set Singletons. typedef ACE_Singleton, ACE_Null_Mutex> QUIT_HANDLER; + typedef ACE_Singleton, ACE_Null_Mutex> + SIGPIPE_HANDLER; // ---------------------------------------- *************** *** 153,158 **** --- 155,165 ---- (SIGINT, QUIT_HANDLER::instance ()) == -1) cerr << "projserv: error registering QUIT_HANDLER with ACE_Reactor\n"; + // Handle SIGPIPE + if (REACTOR::instance ()->register_handler + (SIGPIPE, SIGPIPE_HANDLER::instance ()) == -1) + cerr << "projserv: error registering SIGPIPE_HANDLER with ACE_Reactor\n"; + // Start up one on stdin ProjservHandler* stdin_handler = new ProjservHandler(); if (!OPTIONS::instance ()->debug ()) *************** *** 176,184 **** } // Run forever performing map service until QUIT_HANDLER receives SIGINT. ! while (QUIT_HANDLER::instance ()->is_set () == 0) ! REACTOR::instance ()->handle_events (); ! return 0; } #else --- 183,195 ---- } // Run forever performing map service until QUIT_HANDLER receives SIGINT. ! while (QUIT_HANDLER::instance ()->is_set () == 0) { ! REACTOR::instance ()->handle_events (); ! if (SIGPIPE_HANDLER::instance()->is_set() ) { ! SIGPIPE_HANDLER::instance()->set(0); ! cerr << "SIGPIPE ignored\n"; ! } ! } return 0; } #else Index: top_vhclmaps/COPYRIGHT diff -c top_vhclmaps/COPYRIGHT:1.1 top_vhclmaps/COPYRIGHT:1.2 *** top_vhclmaps/COPYRIGHT:1.1 Wed Mar 24 11:46:43 1999 --- ./COPYRIGHT Mon Jun 14 17:00:15 1999 *************** *** 1,5 **** /* ! * Copyright 1996-1999 Vectaport Inc. * Copyright 1994,1995 Vectaport Inc., Cartoactive Systems, Cider Press * * Permission to use, copy, modify, distribute, and sell this software and its --- 1,5 ---- /* ! * Copyright 1996-1999 Vectaport Inc., I.E.T. Inc. * Copyright 1994,1995 Vectaport Inc., Cartoactive Systems, Cider Press * * Permission to use, copy, modify, distribute, and sell this software and its Index: top_vhclmaps/INSTALL diff -c top_vhclmaps/INSTALL:1.5 top_vhclmaps/INSTALL:1.6 *** top_vhclmaps/INSTALL:1.5 Mon May 3 13:18:16 1999 --- ./INSTALL Mon Jun 14 17:00:15 1999 *************** *** 1,7 **** INSTALL for vhclmaps-0.7 ! Instructions for building vhclmaps-0.7.2 from source: 0. Compilation Environment --- 1,7 ---- INSTALL for vhclmaps-0.7 ! Instructions for building vhclmaps-0.7.3 from source: 0. Compilation Environment Index: top_vhclmaps/README diff -c top_vhclmaps/README:1.3 top_vhclmaps/README:1.4 *** top_vhclmaps/README:1.3 Mon May 3 13:18:16 1999 --- ./README Mon Jun 14 17:00:15 1999 *************** *** 1,7 **** README for vhclmaps 0.7 ! This directory contains a release of the vhclmaps 0.7.2 distribution from Vectaport Inc.. You should read the rest of this file for information on what vhclmaps is (formerly ivmaps) and the INSTALL file for instructions on how to build it. It is known to build on Linux, --- 1,7 ---- README for vhclmaps 0.7 ! This directory contains a release of the vhclmaps 0.7.3 distribution from Vectaport Inc.. You should read the rest of this file for information on what vhclmaps is (formerly ivmaps) and the INSTALL file for instructions on how to build it. It is known to build on Linux, Index: top_vhclmaps/VERSION diff -c top_vhclmaps/VERSION:1.3 top_vhclmaps/VERSION:1.4 *** top_vhclmaps/VERSION:1.3 Mon May 3 13:18:16 1999 --- ./VERSION Mon Jun 14 17:00:16 1999 *************** *** 1,2 **** ! Release 0.7.2 --- 1,2 ---- ! Release 0.7.3 Index: top_vhclmaps/configure diff -c top_vhclmaps/configure:1.3 top_vhclmaps/configure:1.4 *** top_vhclmaps/configure:1.3 Fri Apr 16 15:03:04 1999 --- ./configure Fri May 7 14:05:27 1999 *************** *** 632,638 **** ACE_ENABLED=0 if test x"$ACE" = x; then echo "" ! echo "No ACE path specified!" echo "Use --with-ace= to point to ACE installed directory." echo "" else --- 632,638 ---- ACE_ENABLED=0 if test x"$ACE" = x; then echo "" ! echo "No ACE path specified." echo "Use --with-ace= to point to ACE installed directory." echo "" else *************** *** 680,686 **** CLIPPOLY_ENABLED=0 if test x"$CLIPPOLY" = x; then echo "" ! echo "No clippoly path specified!" echo "Use --with-clippoly= to point to clippoly installed directory." echo "" else --- 680,686 ---- CLIPPOLY_ENABLED=0 if test x"$CLIPPOLY" = x; then echo "" ! echo "No clippoly path specified." echo "Use --with-clippoly= to point to clippoly installed directory." echo "" else *************** *** 734,740 **** if test x"$IVTOOLS" = x then echo "" ! echo "No ivtools path specified!" echo "Use --with-ivtools= to point to ivtools installed directory." else if test ! -f "$IVTOOLS/src/OverlayUnidraw/oved.h" --- 734,740 ---- if test x"$IVTOOLS" = x then echo "" ! echo "No ivtools path specified." echo "Use --with-ivtools= to point to ivtools installed directory." else if test ! -f "$IVTOOLS/src/OverlayUnidraw/oved.h" *************** *** 775,789 **** if test "${with_proj+set}" = set; then withval="$with_proj" PROJ=$withval ! if test -f $PROJ/proj.h ; then ! echo "$ac_t""Found proj.h in $PROJ " 1>&6 else ! if test -f $PROJ/include/proj.h ; then ! echo "$ac_t""Found proj.h in $PROJ/include " 1>&6 ! PROJ=$PROJ/include PROJ_LIBS=$PROJ/lib else ! { echo "configure: error: Can not find proj.h in $PROJ given with option --with-proj=$PROJ " 1>&2; exit 1; } fi fi --- 775,789 ---- if test "${with_proj+set}" = set; then withval="$with_proj" PROJ=$withval ! if test -f $PROJ/projects.h ; then ! echo "$ac_t""Found projects.h in $PROJ " 1>&6 else ! if test -f $PROJ/include/projects.h ; then ! echo "$ac_t""Found projects.h in $PROJ/include " 1>&6 PROJ_LIBS=$PROJ/lib + PROJ=$PROJ/include else ! { echo "configure: error: Can not find projects.h in $PROJ given with option --with-proj=$PROJ " 1>&2; exit 1; } fi fi *************** *** 803,809 **** if test -f /usr/local/lib/libproj.a -o -f /usr/local/lib/libproj.so ; then echo "Building with PROJ support" echo "$ac_t""Found libproj.* in /usr/local/lib " 1>&6 ! PROJ=/usr/local PROJ_LIBS=/usr/local/lib PROJ_ENABLED=1 else --- 803,809 ---- if test -f /usr/local/lib/libproj.a -o -f /usr/local/lib/libproj.so ; then echo "Building with PROJ support" echo "$ac_t""Found libproj.* in /usr/local/lib " 1>&6 ! PROJ=/usr/local/include PROJ_LIBS=/usr/local/lib PROJ_ENABLED=1 else *************** *** 859,865 **** if test x"$VTK" = x then echo "" ! echo "No VTK path specified!" echo "Use --with-vtk= to point to VTK installed directory." else if test ! -f "$VTK"/common/vtkActor2D.h --- 859,865 ---- if test x"$VTK" = x then echo "" ! echo "No VTK path specified." echo "Use --with-vtk= to point to VTK installed directory." else if test ! -f "$VTK"/common/vtkActor2D.h Index: top_vhclmaps/configure.in diff -c top_vhclmaps/configure.in:1.4 top_vhclmaps/configure.in:1.5 *** top_vhclmaps/configure.in:1.4 Tue Apr 13 13:56:34 1999 --- ./configure.in Fri May 7 14:05:28 1999 *************** *** 183,197 **** AC_ARG_WITH(proj,[ --with-proj= Path to proj include file], PROJ=$withval ! if test -f $PROJ/proj.h ; then ! AC_MSG_RESULT( Found proj.h in $PROJ ) else ! if test -f $PROJ/include/proj.h ; then ! AC_MSG_RESULT( Found proj.h in $PROJ/include ) ! PROJ=$PROJ/include PROJ_LIBS=$PROJ/lib else ! AC_MSG_ERROR( Can not find proj.h in $PROJ given with option --with-proj=$PROJ ) fi fi ) --- 183,197 ---- AC_ARG_WITH(proj,[ --with-proj= Path to proj include file], PROJ=$withval ! if test -f $PROJ/projects.h ; then ! AC_MSG_RESULT( Found projects.h in $PROJ ) else ! if test -f $PROJ/include/projects.h ; then ! AC_MSG_RESULT( Found projects.h in $PROJ/include ) PROJ_LIBS=$PROJ/lib + PROJ=$PROJ/include else ! AC_MSG_ERROR( Can not find projects.h in $PROJ given with option --with-proj=$PROJ ) fi fi ) *************** *** 205,211 **** if test -f /usr/local/lib/libproj.a -o -f /usr/local/lib/libproj.so ; then echo "Building with PROJ support" AC_MSG_RESULT( Found libproj.* in /usr/local/lib ) ! PROJ=/usr/local PROJ_LIBS=/usr/local/lib PROJ_ENABLED=1 else --- 205,211 ---- if test -f /usr/local/lib/libproj.a -o -f /usr/local/lib/libproj.so ; then echo "Building with PROJ support" AC_MSG_RESULT( Found libproj.* in /usr/local/lib ) ! PROJ=/usr/local/include PROJ_LIBS=/usr/local/lib PROJ_ENABLED=1 else Index: vpfviewer/README diff -c vpfviewer/README:1.1 vpfviewer/README:1.2 *** vpfviewer/README:1.1 Wed Mar 24 11:48:29 1999 --- src/vpfviewer/README Fri May 7 14:05:43 1999 *************** *** 1,9 **** ! README for vpfviewer (ivmaps 0.6) ! vpfviewer is a program for viewing DCW data in VPF format. See ! the top-level ivmaps README for details on how to acquire this data, ! or call 1-800-USA-MAPS to buy the 4 CD-ROM set. Arguments specific to vpfviewer are: -mapdb pathname (or -database pathname) pathname of DCW database --- 1,9 ---- ! README for vpfviewer (vhclmaps 0.7) ! vpfviewer is a program for viewing DCW and VMAP Level 0 data in VPF ! format. See the top-level vhclmaps README for details on how to acquire ! this data, or call 1-800-USA-MAPS to buy the 4 CD-ROM set. Arguments specific to vpfviewer are: -mapdb pathname (or -database pathname) pathname of DCW database *************** *** 19,25 **** File menu of a running vpfviewer. To launch on a vpfviewer document, simply supply it as the only argument to vpfviewer, i.e.: ! vpfviewer document.dlgs "vpfviewer -help" lists other parameters. More instructions on running ! vpfviewer at http://www.vectaport.com/ivmaps/. --- 19,25 ---- File menu of a running vpfviewer. To launch on a vpfviewer document, simply supply it as the only argument to vpfviewer, i.e.: ! vpfviewer document.vpfs "vpfviewer -help" lists other parameters. More instructions on running ! vpfviewer at http://www.vectaport.com/vhclmaps/.