MCStXSnapshotPreWriteTransformation.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 22:20:43 +0100
branchjv
changeset 1163 61b803d8324e
parent 1160 1539e58bab91
child 1164 b2f0322f5c53
permissions -rw-r--r--
Strip Smalltalk/X C++ style namespace prefix when writing package This is to improve ability to interchange code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
     1
"
1160
1539e58bab91 Add utility method `MCRepository >> storePackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1155
diff changeset
     2
COPYRIGHT (c) 2020-2022 LabWare
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
     3
"
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/monticello' }"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     6
"{ NameSpace: Smalltalk }"
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
     7
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
MCStXSnapshotTransformation subclass:#MCStXSnapshotPreWriteTransformation
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
     9
	instanceVariableNames:'extensionMethodCategoryMap projectDefinition includeExtrasForSTX'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	classVariableNames:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	poolDictionaries:''
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	category:'SCM-Monticello-St/X Storing'
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    17
copyright
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    18
"
1160
1539e58bab91 Add utility method `MCRepository >> storePackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1155
diff changeset
    19
COPYRIGHT (c) 2020-2022 LabWare
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    20
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    21
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    22
"
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    23
!
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
    24
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
documentation
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    documentation to be added.
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    [author:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        Jan Vrany <jan.vrany@fit.cvut.cz>
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    [instance variables:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    [class variables:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    [see also:]
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    41
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    42
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    43
monticelloName
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    44
    | def code package |
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    45
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    46
    def := self projectDefinition.
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    47
    def notNil ifTrue:[^ def monticelloName].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    48
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    49
    "/ No project definition - the package is proably
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    50
    "/ pure Monticello / Tonel package with no St/X extras.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    51
    "/ 
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    52
    "/ Since all we have now is just a snapshot, we have to look
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    53
    "/ at any class or method definition and get the package name
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    54
    "/ from there.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    55
    code := original definitions detect: [:e | e isClassDefinition ] ifNone: [ nil ].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    56
    code notNil ifTrue: [
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    57
        package := code actualClass package.
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    58
    ] ifFalse: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    59
        "/ Look for some method definition
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    60
        code := original definitions detect: [:e | e isMethodDefinition ] ifNone: [ nil ].
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    61
        code notNil ifTrue: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    62
            package := (code actualClass compiledMethodAt: code selector) package.
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    63
        ].
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    64
    ].
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    65
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    66
    "/ If package DOES NOT look like Smalltalk/X package name,
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    67
    "/ return it...
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    68
    (package notNil and:[ package includesAny:':/']) ifFalse: [ 
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    69
         ^ package
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    70
    ].
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    71
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    72
    "/ ...otherwise, we cannot make a guess.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
    73
    self error: 'Cannot guess (monticello) package name!!'
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    74
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    75
    "Created: / 31-05-2013 / 00:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1154
e6c2ad3972c9 Fix writing packages consisting of extension methods only
Jan Vrany <jan.vrany@labware.com>
parents: 1151
diff changeset
    76
    "Modified (format): / 28-10-2021 / 15:52:39 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    77
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    78
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    79
projectDefinition
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
    80
    original definitions reverseDo:[:d|
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    81
        | c |
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
    82
        (d isClassDefinition
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    83
            and:[(c := d actualClass) notNil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    84
                and:[c isProjectDefinition]])
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    85
                    ifTrue:[ ^ c  ]
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    86
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    87
    ^nil
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    88
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    89
    "Created: / 31-05-2013 / 00:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
    90
    "Modified: / 31-05-2013 / 10:45:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    91
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    92
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    93
!MCStXSnapshotPreWriteTransformation methodsFor:'accessing - templates'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    94
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    95
monticelloSmalltalkXExtensionMethodCategories_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    96
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    97
'monticelloSmalltalkXExtensionMethodCategor
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    98
    "Returns an array of triples (class name, selector , St/X category)
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
    99
     This information is used by Smalltalk/X when reading back Monticello package
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   100
     to patch methods category as in Monticello extensions must have funny name
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   101
     to be recognized by Monticello as extensions."
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   102
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   103
    ^#(
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   104
%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   105
    )
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   106
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   107
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   108
    "Created: / 31-05-2013 / 00:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   109
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   110
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   111
monticelloSmalltalkXProjectType_Code
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   112
^
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   113
'monticelloSmalltalkXProjectType
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   114
    "Returns either #library or #application.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   115
     This information is used by Smalltalk/X when reading back Monticello package
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   116
     to patch my superclass as neither LibraryDefinition nor ApplicationDefinition classes
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   117
     are present in Squeak/Pharo images."
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   118
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   119
    ^%1
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   120
'
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   121
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   122
    "Created: / 30-05-2013 / 12:42:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   123
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   124
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   125
!MCStXSnapshotPreWriteTransformation methodsFor:'testing'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   126
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   127
isExtensionMethodDefinition: definition
875
cc0588b2a9db class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 873
diff changeset
   128
    ^(transformed includesClassNamed: definition className) not
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   129
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   130
    "Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
875
cc0588b2a9db class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 873
diff changeset
   131
    "Modified: / 31-05-2013 / 01:16:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   132
!
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   133
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   134
isSmalltalkXPackage
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   135
    ^ projectDefinition notNil
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   136
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   137
    "Created: / 12-06-2013 / 09:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   138
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   139
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   140
!MCStXSnapshotPreWriteTransformation methodsFor:'transforming'!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   141
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   142
transform: anMCSnapshot
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   143
    "Returns a transformed **copy** of the original snapshot"
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   144
1002
54b4906215ca Introduced MCSnapshotOptions for more fine-graned control over contents of .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1001
diff changeset
   145
    includeExtrasForSTX := anMCSnapshot options includeExtrasForSTX.
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   146
    extensionMethodCategoryMap := OrderedCollection new.
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   147
    original := anMCSnapshot.
886
850e6b54a054 Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 877
diff changeset
   148
    projectDefinition := self projectDefinition.
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   149
    super transform: anMCSnapshot.
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   150
    includeExtrasForSTX ifTrue:[
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   151
        (projectDefinition notNil and:[projectDefinition isPackageManifest not and:[extensionMethodCategoryMap notEmpty]]) ifTrue:[
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   152
            | source |
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   153
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   154
            source :=
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   155
                self monticelloSmalltalkXExtensionMethodCategories_Code bindWith:
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   156
                    (String streamContents:[:s|
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   157
                        extensionMethodCategoryMap do:[:entry|
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   158
                            s tab; tab; nextPutLine:  entry storeString
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   159
                        ].
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   160
                    ]).
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   161
1000
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   162
             transformed definitions addFirst:
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   163
                (MCMethodDefinition
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   164
                    className:  projectDefinition name
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   165
                    classIsMeta: true
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   166
                    selector: 'monticelloSmalltalkXExtensionMethodCategories'
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   167
                    category: 'accessing - monticello'
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   168
                    timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   169
                    source: source)
dbc3a47007d6 Do not include #monticelloSmalltalkXExtensionMethodCategories method when St/X extras are NOT included
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   170
        ].
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   171
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   172
    ^transformed.
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   173
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   174
    "Created: / 31-05-2013 / 00:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1002
54b4906215ca Introduced MCSnapshotOptions for more fine-graned control over contents of .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1001
diff changeset
   175
    "Modified: / 07-09-2015 / 15:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   176
    "Modified: / 29-11-2021 / 14:46:02 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   177
! !
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   178
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
!MCStXSnapshotPreWriteTransformation methodsFor:'visiting'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
1150
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   181
visitClassComment: definition
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   182
    | comment source |
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   183
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   184
    comment := definition comment asStringWithNativeLineEndings."/ Make sure comment has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   185
    comment := comment spacesToTabs.                            "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   186
    comment := comment asStringWithSqueakLineEndings.           "/ Make sure comment has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   187
    comment := comment asSingleByteStringIfPossible.            "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   188
    definition comment: comment.     
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   189
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   190
    source := definition source asStringWithNativeLineEndings.  "/ Make sure source has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   191
    source := source spacesToTabs.                              "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   192
    source := source asStringWithSqueakLineEndings.             "/ Make sure source has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   193
    source := source asSingleByteStringIfPossible.              "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   194
    definition source: source.
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   195
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   196
    "Created: / 17-09-2021 / 12:12:39 / Jan Vrany <jan.vrany@labware.com>"
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   197
    "Modified: / 17-09-2021 / 15:18:37 / Jan Vrany <jan.vrany@labware.com>"
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   198
!
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   199
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
visitClassDefinition: definition
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   201
    "
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   202
     save ProjectDefinition classes with Object as superclass   
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   203
     (because ProjectDefinition is not present in Pharo/Squeak).
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   204
     When reading back into ST/X, the PostReadTransformation undoes this
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   205
    "
1150
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   206
    | comment class |
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   207
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   208
    comment := definition commentOrNil.
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   209
    comment notNil ifTrue: [
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   210
        comment := definition comment asStringWithNativeLineEndings."/ Make sure comment has native line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   211
        comment := comment spacesToTabs.                            "/ Make sure there are only tabs (norm on Squeak / Pharo)
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   212
        comment := comment asStringWithSqueakLineEndings.           "/ Make sure comment has Squeak line endings
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   213
        comment := comment asSingleByteStringIfPossible.            "/ Convert to single byte string
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   214
        definition comment: comment.     
167bfe697a5d Convert line ends and tabs also in class comments
Jan Vrany <jan.vrany@labware.com>
parents: 1147
diff changeset
   215
    ].
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   217
    includeExtrasForSTX ifFalse: [ 
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   218
        "/ Strip any Smalltalk/X-type namespace (if any)
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   219
        | lastColonIndex |
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   220
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   221
        lastColonIndex := definition className lastIndexOf: $:.
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   222
        lastColonIndex ~~ 0 ifTrue: [
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   223
            definition className: (definition className copyFrom: lastColonIndex + 1)
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   224
        ].
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   225
    ].
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   226
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    class := definition actualClass.
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   228
    (class isProjectDefinition) ifTrue:[
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   229
        includeExtrasForSTX ifTrue:[            
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   230
            definition
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   231
    "/            className:(definition className capitalized);
1001
ab90b7b78d2a Transform project definition classes as subclasses of PackageManifest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
   232
                superclassName: #PackageManifest;
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   233
                category: class monticelloName.
877
493a70407896 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 875
diff changeset
   234
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   235
            transformed definitions addFirst:
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   236
                (MCMethodDefinition
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   237
                    className: definition className
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   238
                    classIsMeta: true
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   239
                    selector: 'monticelloProjectDefinitionTypeName'
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   240
                    category: 'accessing - monticello'
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   241
                    timeStamp: 'Generated by ', self class name , ' at ' , Timestamp now printString
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   242
                    source:
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   243
                        (self monticelloSmalltalkXProjectType_Code bindWith: (class isApplicationDefinition ifTrue:[#application] ifFalse:[#library]) storeString))
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   244
        ] ifFalse:[
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   245
            class isPackageManifest ifFalse: [
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   246
                transformed definitions remove: definition.   
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   247
            ]
998
85a0b8dca6aa Oops, do not filter out project definition class when St/X extras should be kept...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 997
diff changeset
   248
        ].
873
8c7a9dcb9a69 class: MCStXSnapshotPreWriteTransformation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 863
diff changeset
   249
    ]
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   250
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
    "Created: / 29-05-2013 / 12:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1001
ab90b7b78d2a Transform project definition classes as subclasses of PackageManifest
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1000
diff changeset
   252
    "Modified: / 31-07-2015 / 09:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   253
    "Modified: / 02-09-2022 / 22:11:10 / Jan Vrany <jan.vrany@labware.com>"
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   254
!
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   255
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   256
visitMethodDefinition: definition
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   257
    | class source |
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   258
1151
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   259
    class := definition actualClass.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   260
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   261
    includeExtrasForSTX ifFalse:[
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   262
        "/ Remove all version_XX methods
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   263
        (AbstractSourceCodeManager isVersionMethodSelector: definition selector) ifTrue:[
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   264
            transformed definitions remove: definition.
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   265
        ].
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   266
988
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   267
        "/ If St/X extras should not be included, then remove all methods
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   268
        "/ that belong to project definition class.
1155
d8c45f2af03f Always include `PackageManifest`s even if not including St/X extras
Jan Vrany <jan.vrany@labware.com>
parents: 1154
diff changeset
   269
        (class theNonMetaclass == projectDefinition and:[projectDefinition isPackageManifest not]) ifTrue:[ 
1160
1539e58bab91 Add utility method `MCRepository >> storePackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1155
diff changeset
   270
            transformed definitions remove: definition ifAbsent: [ "Might have been removed in previous step" ].
987
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   271
            ^ self.
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   272
        ].
7dbc6348209e mcz writing: do not include project definition class when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 977
diff changeset
   273
    ].
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   274
1131
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   275
    "/ Use source porter to perform automagic porting.
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   276
    "/ See MCSnapshotOptions >> porter.
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   277
    definition accept: original options porter.
79318af3b3c4 Use (specified) source code porter when writing .mcz
Jan Vrany <jan.vrany@labware.com>
parents: 1002
diff changeset
   278
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   279
    includeExtrasForSTX ifFalse: [ 
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   280
        "/ Strip any Smalltalk/X-type namespace (if any)
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   281
        | lastColonIndex |
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   282
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   283
        lastColonIndex := definition className lastIndexOf: $:.
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   284
        lastColonIndex ~~ 0 ifTrue: [
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   285
            definition className: (definition className copyFrom: lastColonIndex + 1)
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   286
        ].
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   287
    ]. 
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   288
1151
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   289
    "/ Now a horrible hack - do not read the chunk below.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   290
    "/ In Squeak / Pharo world, the method source does not
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   291
    "/ (shall not?) contain trailing new lines. St/X browser,
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   292
    "/ OTOH, puts a trailing new line in methods' source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   293
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   294
    "/ So, when code is loaded into St/X and modified then saved 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   295
    "/ back, it adds an spurious extra trailing line. This creates
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   296
    "/ a noise, especially when using Tonel.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   297
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   298
    "/ It gets worse. I (JV) did not pay attention to this problem
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   299
    "/ before and start hacking, already adding a spurious new lines
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   300
    "/ to considerable codebase - too bad.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   301
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   302
    "/ To fix while avoiding noise in diffs, we remove trailing newlines
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   303
    "/ for modified methods. However, we have to save back source without
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   304
    "/ trailing new lines to the method itself so that when the package is
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   305
    "/ saved again from the same image, it won't add the new line (because
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   306
    "/ second time the method is no longer 'modified').
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   307
    "/ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   308
    "/ Complicated, isn't it? Stupid, isn't it?
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   309
    source := definition source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   310
    (source last == Character lf or: [ source last == Character return ]) ifTrue: [ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   311
        (ChangeSet current includesChangeForClass: class selector: definition selector) ifTrue: [ 
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   312
            | method |
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   313
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   314
            source := source withoutTrailingSeparators.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   315
            method := class compiledMethodAt: definition selector.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   316
            method source: source.
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   317
        ].
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   318
    ].
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   319
6959d29b6409 Remove trailing new line in methods source
Jan Vrany <jan.vrany@labware.com>
parents: 1150
diff changeset
   320
    source := source asStringWithNativeLineEndings.  "/ Make sure source has native line endings
1145
ee708f06f612 Use (newer) `#spacesToTabs` and `#tabsToSpaces` in St/X transformation
Jan Vrany <jan.vrany@labware.com>
parents: 1131
diff changeset
   321
    source := source spacesToTabs.                              "/ Make sure there are only tabs (norm on Squeak / Pharo)
992
f46203ad6470 .mcz reading/writing: change indentation of method source to respect platform's convention
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 988
diff changeset
   322
    source := source asStringWithSqueakLineEndings.             "/ Make sure source has Squeak line endings
f46203ad6470 .mcz reading/writing: change indentation of method source to respect platform's convention
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 988
diff changeset
   323
    source := source asSingleByteStringIfPossible.              "/ Convert to single byte string
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   324
    definition source: source.
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   325
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   326
    (self isExtensionMethodDefinition: definition) ifTrue:[
936
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   327
        | prefix |
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   328
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   329
        prefix := '*' , self monticelloName asLowercase.
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   330
        (definition category asLowercase startsWith: prefix) ifFalse:[
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   331
            extensionMethodCategoryMap add:
938
f544f968df1d Expand tabs before writing .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 936
diff changeset
   332
                (Array
936
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   333
                    with: definition className , (definition classIsMeta ifTrue:[' class'] ifFalse:[''])
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   334
                    with: definition selector
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   335
                    with: definition category).
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   336
            definition category: '*' , self monticelloName.
c4564a0396b9 Fix in MCStXSnapshotPreWriteTransformation: do not fix extension cstegory if the prefix in OK.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 932
diff changeset
   337
        ]
863
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   338
    ].
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   339
310347ceb9df More improvements in pre-write transformations.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 842
diff changeset
   340
    "Created: / 30-05-2013 / 22:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
997
c9b7bdd4088a Oops, do not include methods for removed project definition class!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 992
diff changeset
   341
    "Modified: / 10-05-2015 / 15:08:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1163
61b803d8324e Strip Smalltalk/X C++ style namespace prefix when writing package
Jan Vrany <jan.vrany@labware.com>
parents: 1160
diff changeset
   342
    "Modified: / 02-09-2022 / 22:15:39 / Jan Vrany <jan.vrany@labware.com>"
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   343
!
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   344
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   345
visitOrganizationDefinition: defintion
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   346
    "Add a category in which project definition class is..."
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   347
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   348
    | categories |
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   349
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   350
    projectDefinition notNil ifTrue: [
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   351
        categories := defintion categories.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   352
        (categories includes: projectDefinition monticelloName) ifFalse:[
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   353
            categories := categories copyWith: projectDefinition monticelloName asSymbol.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   354
            defintion categories: categories.
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   355
        ].
932
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   356
    ].
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   357
b74cf6420afc Fix in MCStXSnapshotPreWriteTransformation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 898
diff changeset
   358
    "Created: / 05-10-2014 / 00:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
d9ff96becc42 tonel: use snapshot transformation when reading / writing packages
Jan Vrany <jan.vrany@labware.com>
parents: 1145
diff changeset
   359
    "Modified: / 04-05-2021 / 11:42:08 / Jan Vrany <jan.vrany@labware.com>"
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
!MCStXSnapshotPreWriteTransformation class methodsFor:'documentation'!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
version
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   365
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
!
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
version_CVS
977
f95b01954348 class: MCStXSnapshotPreWriteTransformation
Claus Gittinger <cg@exept.de>
parents: 938
diff changeset
   369
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXSnapshotPreWriteTransformation.st,v 1.11 2015-03-30 19:54:21 cg Exp $'
988
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   370
!
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   371
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   372
version_HG
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   373
536fd853efeb mcz writing: do not include version_XX methods when include St/X extras is not wanted
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 987
diff changeset
   374
    ^ '$Changeset: <not expanded> $'
842
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
! !
5d2a3cd1bb44 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376