--- a/CharacterArray.st Mon Sep 12 16:51:19 2016 +0200
+++ b/CharacterArray.st Tue Sep 13 11:59:27 2016 +0200
@@ -350,7 +350,6 @@
"Created: 3.8.1997 / 18:16:40 / cg"
! !
-
!CharacterArray class methodsFor:'cleanup'!
lowSpaceCleanup
@@ -2356,15 +2355,36 @@
greater, 0 if equal and -1 if less than the argument in a sorted list.
Compare as version numbers in the form a.b.c... ."
- |rev1 rev2|
+ |rev1 rev2 removeTrailingZerosBlock trailingZerosCount|
rev1 := self asCollectionOfSubstringsSeparatedBy:$..
aStringOrCollection isString ifTrue:[
- rev2 := aStringOrCollection asCollectionOfSubstringsSeparatedBy:$..
+ rev2 := aStringOrCollection asCollectionOfSubstringsSeparatedBy:$..
].
rev1 := rev1 collect:[:each| each asInteger].
rev2 := rev2 collect:[:each| each asInteger].
+ removeTrailingZerosBlock :=
+ [:numbers |
+ trailingZerosCount := 0.
+ numbers reversed doWithExit:[:each :exit |
+ each == 0 ifTrue:[
+ trailingZerosCount := trailingZerosCount + 1.
+ ] ifFalse:[
+ exit value:nil.
+ ].
+ ].
+
+ trailingZerosCount > 0 ifTrue:[
+ numbers copyTo:numbers size - trailingZerosCount
+ ] ifFalse:[
+ numbers
+ ]
+ ].
+
+ rev1 := removeTrailingZerosBlock value:rev1.
+ rev2 := removeTrailingZerosBlock value:rev2.
+
^ rev1 compareWith:rev2
"
@@ -4925,8 +4945,6 @@
! !
-
-
!CharacterArray methodsFor:'matching - glob expressions'!
compoundMatch:aString
@@ -8214,7 +8232,6 @@
^ aVisitor visitString:self with:aParameter
! !
-
!CharacterArray class methodsFor:'documentation'!
version