MCMczWriter.st
author Claus Gittinger <cg@exept.de>
Sat, 20 Aug 2011 14:06:32 +0200
changeset 295 1fa997fa1eae
parent 199 6e1b0c7e6685
child 564 e90d2909c9ae
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCWriter subclass:#MCMczWriter
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'zip infoWriter'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Storing'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    11
!MCMczWriter class methodsFor:'initialization'!
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    12
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    13
new
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    14
    ^self basicNew initialize
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    15
! !
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    16
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCMczWriter class methodsFor:'as yet unclassified'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
fileOut: aVersion on: aStream
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    20
	| inst |
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    21
	inst := self on: aStream.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    22
	inst writeVersion: aVersion.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    23
	inst flush.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    24
	
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    25
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
readerClass
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ MCMczReader
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!MCMczWriter methodsFor:'accessing'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
format
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^ '1'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
snapshotWriterClass
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	^ MCStWriter
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    42
stream: aStream
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    43
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    44
    super stream: aStream.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    45
    self zip.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    46
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    47
    "Created: / 11-09-2010 / 14:18:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    48
!
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    49
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
zip
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    51
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    52
    zip ifNil:[zip := ZipArchive writingTo: stream].
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    53
    ^ zip
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    54
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    55
    "Modified: / 11-09-2010 / 14:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!MCMczWriter methodsFor:'initializing'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
initialize
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    61
        super initialize.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    62
        "/zip := ZipArchive new.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    63
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    64
    "Modified: / 11-09-2010 / 14:13:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!MCMczWriter methodsFor:'serializing'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
serializeDefinitions: aCollection
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    70
        | writer s |
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    71
        s := WriteStream on: (String new: 64).
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    72
        writer := self snapshotWriterClass on: s.
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    73
        writer writeDefinitions: aCollection.
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    74
        ^ s contents
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    75
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    76
    "Modified: / 11-09-2010 / 14:26:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    79
serializeInBinary:aSnapshot 
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    80
    |writer s|
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    81
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    82
    s := ReadWriteStream on:ByteArray new.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    83
    writer := DataStream on:s.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    84
    writer nextPut:aSnapshot.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    85
    ^ s contents
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
    86
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    87
    "Modified: / 11-09-2010 / 19:24:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
serializePackage: aPackage
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	^ '(name ''', aPackage name, ''')'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
serializeVersionInfo: aVersionInfo
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
    95
	infoWriter ifNil: [infoWriter := MCVersionInfoWriter new].
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
	^ String streamContents:
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
		[:s |
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
		infoWriter stream: s.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
		infoWriter writeVersionInfo: aVersionInfo]
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!MCMczWriter methodsFor:'visiting'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
writeDefinitions: aVersion
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	self writeSnapshot: aVersion snapshot
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
writeFormat
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
"	self addString: self format at: 'format'."
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
writePackage: aPackage
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
	self addString: (self serializePackage: aPackage) at: 'package'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
writeSnapshot: aSnapshot
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	self addString: (self serializeDefinitions: aSnapshot definitions) at: 'snapshot/source.', self snapshotWriterClass extension.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	self addString: (self serializeInBinary: aSnapshot) at: 'snapshot.bin'
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
writeVersion: aVersion
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	self writeFormat.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
	self writePackage: aVersion package.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	self writeVersionInfo: aVersion info.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	self writeDefinitions: aVersion.
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	aVersion dependencies do: [:ea | self writeVersionDependency: ea]
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
writeVersionDependency: aVersionDependency
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	| string |
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   131
	string := (self serializeVersionInfo: aVersionDependency versionInfo).
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
	self addString: string at: 'dependencies/', aVersionDependency package name
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
writeVersionInfo: aVersionInfo
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
	| string |
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   137
	string := self serializeVersionInfo: aVersionInfo.
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	self addString: string at: 'version'.
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   139
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
!MCMczWriter methodsFor:'writing'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
addString: string at: path
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
   145
        | member |
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   146
        member := zip addString: string as: path.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   147
        "/member desiredCompressionMethod: ZipArchive compressionDeflated
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
   148
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   149
    "Modified: / 11-09-2010 / 14:19:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
flush
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   153
        "zip writeTo: stream."
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   154
        zip closeFile.
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   155
        stream close
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
   156
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   157
    "Modified: / 11-09-2010 / 19:36:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
! !
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
!MCMczWriter class methodsFor:'documentation'!
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
295
1fa997fa1eae initial checkin
Claus Gittinger <cg@exept.de>
parents: 199
diff changeset
   162
version
1fa997fa1eae initial checkin
Claus Gittinger <cg@exept.de>
parents: 199
diff changeset
   163
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczWriter.st,v 1.4 2011-08-20 12:06:32 cg Exp $'
1fa997fa1eae initial checkin
Claus Gittinger <cg@exept.de>
parents: 199
diff changeset
   164
!
1fa997fa1eae initial checkin
Claus Gittinger <cg@exept.de>
parents: 199
diff changeset
   165
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   166
version_CVS
295
1fa997fa1eae initial checkin
Claus Gittinger <cg@exept.de>
parents: 199
diff changeset
   167
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczWriter.st,v 1.4 2011-08-20 12:06:32 cg Exp $'
142
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
   168
!
4a05a68fe582 more porting (but still unfinished)
Claus Gittinger <cg@exept.de>
parents: 33
diff changeset
   169
199
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   170
version_SVN
6e1b0c7e6685 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 142
diff changeset
   171
    ^ '§Id: MCMczWriter.st 7 2010-09-12 07:18:55Z vranyj1 §'
33
210977d2e998 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
! !