/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 924 by frank, Mon May 19 09:12:42 2003 UTC revision 1053 by bh, Tue May 27 09:34:40 2003 UTC
# Line 1  Line 1 
1    2003-05-27  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
4            effect can be achieved by simply closing the window showing the
5            table.
6            (MainWindow.TableHide): Removed.
7            (main_menu): Removed "table_hide"
8    
9    2003-05-27  Frank Koormann  <[email protected]>
10    
11            Fix legend tree display problems under Win32
12    
13            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
14            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
15            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
16    
17            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
18    
19    2003-05-27  Jan-Oliver Wagner <[email protected]>
20    
21            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
22            'after' now allows to insert separators almost anywhere in the menu.
23    
24    2003-05-27  Frank Koormann  <[email protected]>
25    
26            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
27            "S" of selection box label to hint on hot key (Alt-S). Works under
28            Win32 but is ignored under GTK.
29    
30    2003-05-26  Frank Koormann  <[email protected]>
31    
32            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
33            Center Choices.
34    
35    2003-05-26  Bernhard Herzog  <[email protected]>
36    
37            Remove the Precision methods again. They're too DBF specific to be
38            part of the table interface and they're only used in table_to_dbf
39            anyway.
40            
41            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
42            fixed precision of 12 for doubles.
43            (TransientTableBase.Precision): Removed
44            (AutoTransientTable.Width): Delegate to self.table.
45    
46            * Thuban/Model/table.py (DBFTable.Precision)
47            (MemoryTable.Precision): Removed.
48            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
49            (table_to_dbf): Use a fixed precision of 12 for floats unless the
50            column object specifies something else.
51    
52            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
53            test for table_to_dbf
54    
55    2003-05-26  Bernhard Herzog  <[email protected]>
56    
57            * test/test_transientdb.py
58            (TestTransientTable.run_iceland_political_tests): Fix a comment.
59    
60    2003-05-26  Bernhard Herzog  <[email protected]>
61    
62            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
63            implementation. Mark parts of the file format strings for
64            localization.
65    
66            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
67            file and add the table to the tables managed by the session
68    
69            * test/test_session.py (TestSessionSimple.test_open_table_file):
70            New. test case for OpenTableFile
71    
72    2003-05-26  Jan-Oliver Wagner <[email protected]>
73    
74            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
75            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
76            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
77            Replace the true/false of wxWindows by True/False of Python 2.2.1.
78    
79    2003-05-26  Jan-Oliver Wagner <[email protected]>
80    
81            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
82            already a selection present, update the grid accordingly.
83    
84            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
85            resizeable and increase its initial size.
86    
87    2003-05-26  Frank Koormann  <[email protected]>
88    
89            Table export functionality
90    
91            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
92            Return width (in characters) for a column.
93            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
94            (table_to_dbf): Write table to dbf file.
95            (table_to_csv): Write table to csv file.
96    
97            * Thuban/Model/transientdb.py (TransientTableBase.Width,
98            TransientTableBase.Precision): Return column width and precision.
99    
100            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
101            or table_to_csv depending on file selection.
102    
103            * test/test_dbf_table.py:
104            Test table_to_dbf (extension of former part of test).
105    
106            * test/test_csv_table.py:
107            Test table_to_csv.
108    
109    2003-05-23  Jan-Oliver Wagner <[email protected]>
110    
111            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
112            Use QueryTableFrame instead of TableFrame.
113    
114            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
115            table window with 'Layer Table:' instead of 'Table:'.
116    
117    2003-05-23  Jan-Oliver Wagner <[email protected]>
118    
119            Give all tables a title via mix-in TitledObject.LayerShowTable
120    
121            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
122            only if it exists.
123    
124            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
125            and call its init-method with a default title. Remove Title() method.
126    
127            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
128            AutoTransientTable): mix-in TitledObject and call its init-method with
129            a default title. Remove Title() method.
130    
131    2003-05-23  Bernhard Herzog  <[email protected]>
132    
133            * Thuban/Model/session.py (Session.AddShapeStore): Define
134            AddShapeStore analogously to AddTable.
135    
136            * test/test_session.py (TestSessionSimple.test_add_shapestore):
137            New. Test for AddShapeStore
138    
139    2003-05-23  Jan-Oliver Wagner <[email protected]>
140    
141            Introducing QueryTableFrame and a very coarse ShowTable implementation.
142    
143            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
144            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
145            The latter implements the selection GUI without dependency on a layer.
146            LayerTableFrame now is derived from QueryTableFrame and connects
147            to a layer.
148    
149            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
150            implementation that still needs work.
151    
152            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
153    
154    2003-05-22  Frank Koormann  <[email protected]>
155    
156            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
157            Added "outer_join = False" as optional parameter.
158            (TransientJoinedTable.create): If outer join is true, perform a
159            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
160            the left table. Records not matching are filled with 0 / None.
161    
162            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
163            (JoinDialog.OnJoin): Consider outer join check box.
164    
165    2003-05-22  Bernhard Herzog  <[email protected]>
166    
167            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
168            somewhat safer way. Storing the traceback in a local variable can
169            lead to memory leaks
170    
171    2003-05-22  Bernhard Herzog  <[email protected]>
172    
173            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
174            the wxMessageDialog's Destroy() method.
175    
176    2003-05-22  Frank Koormann  <[email protected]>
177    
178            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
179            TransientTable.Title()
180    
181    2003-05-22  Frank Koormann  <[email protected]>
182    
183            Join Dialog, initial version.
184    
185            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
186    
187            * Thuban/UI/join.py (JoinDialog): Functional implementation of
188            former framework. Renamed Table1/Table2 to LeftTable/RightTable
189            in all occurences.
190    
191            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
192            Typo fixed.
193    
194    2003-05-22  Bernhard Herzog  <[email protected]>
195    
196            Give the tables titles so that the GUI can display more meaningful
197            names. For now the titles are fixed but depend on e.g. filenames
198            or the titles of the joined tables.
199    
200            * Thuban/Model/transientdb.py (TransientTable.Title)
201            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
202    
203            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
204    
205            * test/test_transientdb.py
206            (TestTransientTable.test_auto_transient_table_title): New. Test
207            for the Title method
208            (TestTransientTable.test_transient_joined_table)
209            (TestTransientTable.test_transient_table): Add test for the Title
210            methods
211    
212            * test/test_memory_table.py (TestMemoryTable.test_title): New.
213            Test for the Title method
214    
215            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
216            the Title method
217    
218    2003-05-22  Bernhard Herzog  <[email protected]>
219    
220            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
221            Provide a better way to destroy the layers
222            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
223            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
224            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
225            the new way to destroy the layers.
226            (TestLayer.test_derived_store): New. Test for using a layer with a
227            DerivedShapeStore
228    
229            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
230            filename if the shape store actually has one.
231    
232    2003-05-22  Bernhard Herzog  <[email protected]>
233    
234            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
235            for the filename
236    
237            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
238            for the FileName method
239            (TestDBFTableWriting.test_write): Fix spelling of filename
240    
241    2003-05-22  Thomas Koester  <[email protected]>
242    
243            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
244            from SciParam that now really is immutable.
245    
246    2003-05-22  Frank Koormann  <[email protected]>
247    
248            Layer Top/Bottom placement added to legend.
249    
250            * Thuban/UI/legend.py
251            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
252            bound to tool events.
253            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
254            New, methods binding the event methods with the map methods.
255    
256            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
257            layer at top/bottom of layer stack.
258    
259            * Resources/Bitmaps/top_layer.xpm: New button icon.
260    
261            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
262    
263    2003-05-22  Bernhard Herzog  <[email protected]>
264    
265            * Thuban/Model/session.py (Session.RemoveTable): New method to
266            remove tables
267    
268            * test/test_session.py (TestSessionSimple.test_remove_table): New.
269            Test for RemoveTable
270    
271    2003-05-22  Thomas Koester  <[email protected]>
272    
273            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
274            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
275    
276    2003-05-22  Bernhard Herzog  <[email protected]>
277    
278            Implement a way to discover dependencies between tables and
279            shapestores.
280    
281            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
282            (TransientJoinedTable.Dependencies)
283            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
284            interface
285            (TransientJoinedTable.__init__): Keep tack of the original table
286            objects in addition to the corresponding transient tables.
287    
288            * Thuban/Model/table.py (DBFTable.Dependencies)
289            (MemoryTable.Dependencies): New. Implement the dependencies
290            interface
291    
292            * Thuban/Model/data.py (ShapeTable): New. Helper class for
293            ShapefileStore
294            (ShapefileStore.__init__): Use ShapeTable instead of
295            AutoTransientTable
296            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
297            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
298            methods for filename and type
299            (ShapefileStore.Dependencies): New. Implement the dependencies
300            interface
301            (DerivedShapeStore): New class to replace SimpleStore. The main
302            difference to SimpleStore is that it depends not on a shapefile
303            but another shapestore which expresses the dependencies a bit
304            better
305            (SimpleStore.__init__): Add deprecation warning.
306    
307            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
308            Test for the Dependencies method.
309    
310            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
311            New. Test for the Dependencies method.
312    
313            * test/test_transientdb.py
314            (TestTransientTable.test_auto_transient_table_dependencies): New.
315            Test for the Dependencies method.
316            (TestTransientTable.test_transient_joined_table): Add test for the
317            Dependencies method.
318    
319            * test/test_session.py (TestSessionSimple.setUp)
320            (TestSessionSimple.tearDown): New. Implement a better way to
321            destroy the sessions.
322            (TestSessionSimple.test_initial_state)
323            (TestSessionSimple.test_add_table): Bind session to self.session
324            so that it's destroyed by tearDown
325            (TestSessionSimple.test_open_shapefile): New. Test for
326            OpenShapefile and the object it returns
327    
328    2003-05-22  Bernhard Herzog  <[email protected]>
329    
330            * Thuban/Model/session.py (Session.AddTable): New method to
331            register tables with the session.
332            (Session.Tables): Return the tables registered with AddTable too.
333    
334            * test/test_session.py (TestSessionSimple.test_add_table): New.
335            Test case for the AddTable method
336    
337    2003-05-22  Frank Koormann  <[email protected]>
338    
339            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
340            lower right corner, center labels for selections, initialize controls
341            in reasonable order for keyboard navigation.
342    
343            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
344            (ProjFrame.__DoOnProjAvail): Determine position of current projection
345            using the wxListBox.FindString() method. Still a problem (#1886)
346    
347            * Thuban/UI/classifier.py
348            (Classifier.__init__, SelectPropertiesDialog.__init__)
349    
350            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
351            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
352            different classification types from here to __init__.
353            (GenUniquePanel.__init__): Set the column width of the first field
354            in the Field ListCtrl to the full width.
355    
356            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
357            Button to 'Export'. Center Buttons in Selection Box, set Focus to
358            Grid.
359            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
360            changes focus to the Selection when pressing "Alt-S".
361    
362            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
363            the text if not visible. The italic font sometimes exceeds the
364            rendering area.
365    
366    2003-05-21  Jonathan Coles   <[email protected]>
367    
368            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
369            to OnClose so that Thuban closes correctly.
370    
371            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
372            DockFrame.OnClose, not DockFrame._OnClose.
373    
374    2003-05-21  Jonathan Coles   <[email protected]>
375    
376            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
377            references to 'inf' and use new Range __init__ to pass floats
378            directly rather than converting them to strings first.
379            Fixes RTBug #1876.
380    
381            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
382            Use new Range ___init__ to pass floats.
383    
384            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
385            filename is a valid image file. Throw IOError otherwise.
386    
387            * Thuban/Model/range.py: Brought over new Range from SciParam that
388            is immutable and has an __init__ which can accept floats.
389    
390            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
391            into try block. AddLayer doesn't throw any exceptions anymore.
392            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
393            try block.
394    
395            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
396            the first item in choices. Fixes RTBug #1882.
397    
398            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
399            has gone to 0 which is a serious problem. abort.
400            (MapRenderer.draw_raster_layer): Catch IOError seperately and
401            print the error from GDAL.
402    
403            * Thuban/UI/tableview.py (TableGrid.__init__): Call
404            ToggleEventListeners to turn on listening.
405            (TableGrid.ToggleEventListeners): New. Turns event listening on
406            and off so as to prevent excessive messages.
407            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
408            to suppress excessive messages when selecting many rows.
409            Fixes RTBug #1880.
410    
411            * Thuban/UI/view.py: Added checks against if scale == 0. This
412            is a serious problem that can occur when an image without
413            geo data is loading and causes the map projection bounds to
414            go to infinity. Right now, the solution is to simply try
415            to recover.
416    
417            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
418            to set the MFILEReceiver attributes even if the data is NULL.
419    
420            * extensions/thuban/gdalwarp.cpp: Improved the error handling
421            and passed GDAL messages back up to the Python layer. Also
422            tried to fix some memory leaks that were present in the original
423            utility but didn't matter because the program aborted.
424    
425            * test/test_range.py: Copied over tests from SciParam. Removed
426            tests against importing. Fixes RTBug #1867.
427    
428    2003-05-21  Bernhard Herzog  <[email protected]>
429    
430            * test/test_load.py: Remove unused imports and restructure the
431            test code
432            (LoadSessionTest): Split into one class for each test and turn
433            LoadSessionTest itself into the base class for all such session
434            tests.
435            (ClassificationTest): New base class for load tests that test
436            classifications
437            (TestSingleLayer, TestLayerVisibility, TestClassification)
438            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
439            for the individual tests
440    
441            * test/support.py (FileLoadTestCase.filename): New base class for
442            file loading tests
443    
444    2003-05-21  Jan-Oliver Wagner <[email protected]>
445    
446            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
447            Mercator' to 'UTM Zone 32' as a more convenient example.
448            Added 'Gauss Krueger Zone 6'.
449    
450            * Data/iceland_sample_raster.thuban: political polygon now
451            filled transparent to have the raster image visible at once.
452    
453    2003-05-21  Frank Koormann  <[email protected]>
454    
455            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
456            OnClose() to keep in sync with extensions. Internally Thuban
457            still uses "underscored" names.
458    
459    2003-05-20  Jonathan Coles   <[email protected]>
460    
461            This puts back Raster layer support. These layers support projections
462            through the GDAL library. Currently, the CVS version is being used.
463            There are no Debian packages available although this may change soon.
464            A GDAL driver was extended to support writing to memory rather to
465            files.
466    
467            There is still some work that needs to be done, such as some error
468            handling when loading invalid images or when there is a problem
469            projecting the image. This putback simply checks in the majority
470            of the work.
471    
472            * setup.py: Add gdalwarp library extension.
473    
474            * Thuban/Model/layer.py (BaseLayer.HasClassification): New.
475            Defaults to False, but can be overridden by subclasses if they
476            support classification.
477            (RasterLayer): New. Defines a new layer that represents an
478            image.
479    
480            * Thuban/Model/load.py (SessionLoader.__init__): Add rasterlayer
481            tag handler.
482            (SessionLoader.start_layer): Encode the filename.
483            (SessionLoader.start_rasterlayer, SessionLoader.end_rasterlayer):
484            New. Supports reading a rasterlayer tag.
485    
486            * Thuban/Model/map.py (Map.BoundingBox): Fix typo in comment.
487    
488            * Thuban/Model/save.py (XMLWriter.encode): Don't assume that we
489            get a string in Latin1. If we get such as string convert it to
490            unicode first, otherwise leave if alone before encoding.
491            (SessionSaver.write_layer): Add support for writing both Layers
492            and RasterLayers.
493    
494            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
495            The right argument may not be a string, it could also be a Column.
496    
497            * Thuban/UI/application.py (ThubanApplication.CreateMainWindow):
498            Make initial window size 600x400. Fixes RTBug #1872.
499    
500            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange how
501            the dialog is constructed so that we can support layers that
502            do not have classifications.
503            (Classifier._OnTry): Only build a classification if the layer
504            supports one.
505    
506            * Thuban/UI/legend.py: Change all checks that a layer is an
507            instance of Layer into checks against BaseLayer.
508            (LegendTree.__FillTreeLayer): Only add children to a branch if
509            the layer supports classification.
510    
511            * Thuban/UI/mainwindow.py (MainWindow.NewSession,
512            MainWindow.OpenSession): Don't proceed with an action if the
513            user chooses Cancel when they are asked to save changes.
514            (MainWindow.AddRasterLayer): New. Open a dialog to allow the
515            user to select an image file. Create a new RasterLayer and add
516            it to the map.
517    
518            * Thuban/UI/renderer.py (MapRenderer.render_map): Add support
519            for rendering RasterLayer layers.
520            (MapRenderer.draw_raster_layer): Actually method that calls
521            the GDALWarp python wrapper and constructs an image from the
522            data returned.
523    
524            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Change the
525            Choices symbols to match those used in the table query method.
526            Replace deprecated method calls on table with new method names.
527    
528            * Thuban/UI/view.py (MapCanvas.set_view_transform): Try to limit
529            how small the scale can get. This still needs more testing.
530    
531            * extensions/thuban/bmpdataset.cpp: New, but copied from GDAL.
532            Provides a driver to output in .bmp format.
533    
534            * extensions/thuban/cpl_mfile.cpp, extensions/thuban/cpl_mfile.h:
535            New. Provides IO routines which write to memory, rather than a file.
536    
537            * extensions/thuban/gdalwarp.cpp: New, but basically a direct copy
538            of the gdalwarp utility provided in GDAL. Added function calls
539            that can be accessed from python.
540    
541            * Data/iceland_sample_raster.thuban: New. Sample file that uses
542            a raster layer.
543    
544            * Data/iceland/island.tfw, Data/iceland/island.tif: New. Raster
545            layer image data.
546    
547            * Doc/thuban.dtd: Added rasterlayer attribute definition.
548    
549            * test/test_layer.py, test/test_load.py, test/test_save.py: Added
550            tests associated with the raster layer code.
551    
552            * test/test_transientdb.py
553            (TestTransientTable.test_auto_transient_table_query): Added a test
554            for using a Column object as the "right" parameter to a query.
555    
556    2003-05-19  Frank Koormann  <[email protected]>
557    
558            * Thuban/version.py (get_changelog_date):
559            Catch exceptions if ChangeLog does not exist.
560    
561            * Thuban/UI/view.py (MapCanvas.Export): Bugfix
562    
563  2003-05-19  Frank Koormann  <[email protected]>  2003-05-19  Frank Koormann  <[email protected]>
564    
565          Extended version information for Thuban          Extended version information for Thuban

Legend:
Removed from v.924  
changed lines
  Added in v.1053

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26