Association.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18120 e3a375d5f6a8
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
379
5b5a130ccd09 revision added
claus
parents: 154
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
5792
519350369ee5 , for squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 5234
diff changeset
    12
"{ Package: 'stx:libbasic' }"
519350369ee5 , for squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 5234
diff changeset
    13
154
d4236ec280a6 *** empty log message ***
claus
parents: 92
diff changeset
    14
LookupKey subclass:#Association
1283
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    15
	instanceVariableNames:'value'
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    16
	classVariableNames:''
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    17
	poolDictionaries:''
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    18
	category:'Collections-Support'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    21
!Association class methodsFor:'documentation'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    22
82
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    23
copyright
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    24
"
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    25
 COPYRIGHT (c) 1989 by Claus Gittinger
379
5b5a130ccd09 revision added
claus
parents: 154
diff changeset
    26
	      All Rights Reserved
82
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    27
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    28
 This software is furnished under a license and may be used
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    29
 only in accordance with the terms of that license and with the
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    31
 be provided or otherwise made available to, or used by, any
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    32
 other person.  No title to or ownership of the software is
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    33
 hereby transferred.
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    34
"
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    35
!
0147b4f725ae *** empty log message ***
claus
parents: 68
diff changeset
    36
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    37
documentation
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    38
"
92
0c73b48551ac *** empty log message ***
claus
parents: 82
diff changeset
    39
    Associations are a key-value pair; conceptionally, they are the elements of 
0c73b48551ac *** empty log message ***
claus
parents: 82
diff changeset
    40
    Dictionaries - storing value under the key. (However, the real implementation
0c73b48551ac *** empty log message ***
claus
parents: 82
diff changeset
    41
    of Dictionary is different).
154
d4236ec280a6 *** empty log message ***
claus
parents: 92
diff changeset
    42
    Taken by itself, an association is not very useful.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    43
1283
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    44
    [Instance variables:]
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    45
1283
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    46
        key             <Object>        the key (inherited)
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    47
        value           <Object>        the value
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    48
1290
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 1283
diff changeset
    49
    [author:]
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 1283
diff changeset
    50
        Claus Gittinger
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 1283
diff changeset
    51
1283
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    52
    [See also:]
2c533653efa3 commentary
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    53
        Dictionary IdentityDictionary
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    54
"
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    55
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    56
a27a279701f8 Initial revision
claus
parents:
diff changeset
    57
!Association class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    58
a27a279701f8 Initial revision
claus
parents:
diff changeset
    59
key:aKey value:aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    60
    "return a new Association"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    61
a27a279701f8 Initial revision
claus
parents:
diff changeset
    62
    ^ self basicNew key:aKey value:aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    63
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    64
a27a279701f8 Initial revision
claus
parents:
diff changeset
    65
!Association methodsFor:'accessing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    66
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    67
key:aKey value:aValue
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    68
    "set both the key and value of the receiver.
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    69
     Return the receiver"
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    70
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    71
    key := aKey.
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    72
    value := aValue
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    73
!
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    74
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
    "return the value of the association"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
    ^ value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    79
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    80
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
value:anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    82
    "set the value of the receiver to be anObject.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    83
     Return the receiver"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    84
a27a279701f8 Initial revision
claus
parents:
diff changeset
    85
    value := anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    86
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    87
11908
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    88
!Association methodsFor:'collection mimicri'!
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    89
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    90
keysAndValuesDo:aBlock
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    91
    "evaluate the argument, aBlock for each element in the collection.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    92
     Pass both index and element to the block.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    93
     Added here to allow for an association to be added via the comma operation
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    94
     to an existing dictionary"
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    95
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    96
    aBlock value:key value:value.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    97
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    98
    "
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
    99
     |d1 d2|
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   100
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   101
     d1 := Dictionary new.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   102
     d1 at:#a put:'aaa'.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   103
     d1 at:#b put:'bbb'.
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   104
     d2 := d1 , (#c -> 'ccc').
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   105
     d2
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   106
    "
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   107
! !
1034accdce84 + keysAndValuesDo: for collection mimicri
Claus Gittinger <cg@exept.de>
parents: 5793
diff changeset
   108
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   109
!Association methodsFor:'comparing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   110
a27a279701f8 Initial revision
claus
parents:
diff changeset
   111
= anAssociation
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   112
    "return true if the receiver equals the argument.
154
d4236ec280a6 *** empty log message ***
claus
parents: 92
diff changeset
   113
     Notice, that this compares both key AND value.
d4236ec280a6 *** empty log message ***
claus
parents: 92
diff changeset
   114
     Time will show if this is ok."
43
00ca34676cbf *** empty log message ***
claus
parents: 5
diff changeset
   115
16767
42a305a493e1 class: Association
Stefan Vogel <sv@exept.de>
parents: 16740
diff changeset
   116
    ^ self species == anAssociation species 
42a305a493e1 class: Association
Stefan Vogel <sv@exept.de>
parents: 16740
diff changeset
   117
        and:[anAssociation key = key and:[anAssociation value = value]]
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   118
!
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   119
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   120
hash
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   121
    "return an integer useful for hashing on the receiver;
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   122
     redefined since = is redefined here."
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   123
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   124
    ^ (key hash) bitXor:(value hash)
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   125
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   126
a27a279701f8 Initial revision
claus
parents:
diff changeset
   127
!Association methodsFor:'printing & storing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   128
14118
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   129
displayOn:aGCOrStream
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   130
    "Compatibility
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   131
     append a printed desription on some stream (Dolphin,  Squeak)
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   132
     OR:
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   133
     display the receiver in a graphicsContext at 0@0 (ST80).
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   134
     This method allows for any object to be displayed in some view
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   135
     (although the fallBack is to display its printString ...)"
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   136
14118
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   137
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   138
    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
16740
4d956eba7683 displayOn: cleanup
Claus Gittinger <cg@exept.de>
parents: 14118
diff changeset
   139
    (aGCOrStream isStream) ifFalse:[
14118
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   140
        ^ super displayOn:aGCOrStream
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   141
    ].
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   142
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   143
    key displayOn:aGCOrStream.
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   144
    aGCOrStream nextPutAll:'->'.
c4375f1867f6 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 12161
diff changeset
   145
    value displayOn:aGCOrStream.
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   146
!
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   147
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   148
printOn:aStream
12161
d7e47cf2f086 changed: #printOn:
Claus Gittinger <cg@exept.de>
parents: 11908
diff changeset
   149
    "append a printed representation of the receiver to aStream"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   150
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   151
    key printOn:aStream.
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   152
    aStream nextPutAll:'->'.
06dbdeeed4f9 *** empty log message ***
claus
parents: 43
diff changeset
   153
    value printOn:aStream
5234
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   154
!
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   155
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   156
storeOn:aStream
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   157
    "append a string representing an expression to reconstruct the receiver
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   158
     to aStream."
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   159
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   160
    aStream nextPut:$(. 
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   161
    key storeOn:aStream.
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   162
    aStream nextPutAll:'->'. 
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   163
    value storeOn:aStream.
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   164
    aStream nextPut:$).
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   165
9b61a0e55765 better storeString
Claus Gittinger <cg@exept.de>
parents: 1397
diff changeset
   166
    "Created: / 3.2.2000 / 22:31:28 / cg"
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   167
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   168
1397
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   169
!Association methodsFor:'queries'!
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   170
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   171
isAssociation
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   172
    "return true, if the receiver is some kind of association;
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   173
     true is returned here - the method is redefined from Object."
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   174
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   175
    ^ true
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   176
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   177
    "Created: 14.5.1996 / 17:04:13 / cg"
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   178
! !
c6491de53723 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
   179
629
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   180
!Association class methodsFor:'documentation'!
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   181
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   182
version
16767
42a305a493e1 class: Association
Stefan Vogel <sv@exept.de>
parents: 16740
diff changeset
   183
    ^ '$Header: /cvs/stx/stx/libbasic/Association.st,v 1.26 2014-07-11 09:55:51 stefan Exp $'
12161
d7e47cf2f086 changed: #printOn:
Claus Gittinger <cg@exept.de>
parents: 11908
diff changeset
   184
!
d7e47cf2f086 changed: #printOn:
Claus Gittinger <cg@exept.de>
parents: 11908
diff changeset
   185
d7e47cf2f086 changed: #printOn:
Claus Gittinger <cg@exept.de>
parents: 11908
diff changeset
   186
version_CVS
16767
42a305a493e1 class: Association
Stefan Vogel <sv@exept.de>
parents: 16740
diff changeset
   187
    ^ '$Header: /cvs/stx/stx/libbasic/Association.st,v 1.26 2014-07-11 09:55:51 stefan Exp $'
629
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   188
! !
16740
4d956eba7683 displayOn: cleanup
Claus Gittinger <cg@exept.de>
parents: 14118
diff changeset
   189