--- a/GIFReader.st Wed Jun 02 12:21:55 2010 +0200
+++ b/GIFReader.st Wed Jun 02 12:24:25 2010 +0200
@@ -782,55 +782,55 @@
tShift := 0.
fCode := tSize.
- [fCode < 65536] whileTrue:
- [tShift := tShift + 1.
- fCode := fCode * 2].
+ [fCode < 65536] whileTrue:[
+ tShift := tShift + 1.
+ fCode := fCode * 2
+ ].
tShift := 8 - tShift.
1 to: tSize do: [:i | suffixTable at: i put: -1].
self writeCodeAndCheckCodeSize: clearCode.
ent := self readPixelFrom: bits.
- [(pixel := self readPixelFrom: bits) == nil] whileFalse:
- [
- fCode := (pixel bitShift: maxBits) + ent.
- index := ((pixel bitShift: tShift) bitXor: ent) + 1.
- (suffixTable at: index) = fCode
- ifTrue: [ent := prefixTable at: index]
- ifFalse:
- [nomatch := true.
- (suffixTable at: index) >= 0
- ifTrue:
- [disp := tSize - index + 1.
- index = 1 ifTrue: [disp := 1].
- "probe"
- [(index := index - disp) < 1 ifTrue: [index := index + tSize].
- (suffixTable at: index) = fCode
- ifTrue:
- [ent := prefixTable at: index.
- nomatch := false.
- "continue whileFalse:"].
- nomatch and: [(suffixTable at: index) > 0]]
- whileTrue: ["probe"]].
- "nomatch"
- nomatch ifTrue:
- [self writeCodeAndCheckCodeSize: ent.
- ent := pixel.
- freeCode < maxMaxCode
- ifTrue:
- [prefixTable at: index put: freeCode.
- suffixTable at: index put: fCode.
- freeCode := freeCode + 1]
- ifFalse:
- [self writeCodeAndCheckCodeSize: clearCode.
- 1 to: tSize do: [:i | suffixTable at: i put: -1].
- self setParameters: initCodeSize]]]].
+ [(pixel := self readPixelFrom: bits) == nil] whileFalse:[
+ fCode := (pixel bitShift: maxBits) + ent.
+ index := ((pixel bitShift: tShift) bitXor: ent) + 1.
+ (suffixTable at: index) = fCode
+ ifTrue: [ent := prefixTable at: index]
+ ifFalse:[
+ nomatch := true.
+ (suffixTable at: index) >= 0
+ ifTrue:[
+ disp := tSize - index + 1.
+ index = 1 ifTrue: [disp := 1].
+ "probe"
+ [(index := index - disp) < 1 ifTrue: [index := index + tSize].
+ (suffixTable at: index) = fCode
+ ifTrue:[
+ ent := prefixTable at: index.
+ nomatch := false.
+ "continue whileFalse:"].
+ nomatch and: [(suffixTable at: index) > 0]]
+ whileTrue: ["probe"]].
+ "nomatch"
+ nomatch ifTrue:[
+ self writeCodeAndCheckCodeSize: ent.
+ ent := pixel.
+ freeCode < maxMaxCode
+ ifTrue:[
+ prefixTable at: index put: freeCode.
+ suffixTable at: index put: fCode.
+ freeCode := freeCode + 1]
+ ifFalse:[
+ self writeCodeAndCheckCodeSize: clearCode.
+ 1 to: tSize do: [:i | suffixTable at: i put: -1].
+ self setParameters: initCodeSize]]]].
prefixTable := suffixTable := nil.
self writeCodeAndCheckCodeSize: ent.
self writeCodeAndCheckCodeSize: eoiCode.
self flushCode.
outStream nextPut: 0. "zero-length packet"
- "Modified: 15.10.1997 / 19:56:28 / cg"
+ "Modified: / 02-06-2010 / 12:24:20 / cg"
!
writeCode: aCode
@@ -988,11 +988,11 @@
!GIFReader class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.97 2010-06-02 10:21:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.98 2010-06-02 10:24:25 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.97 2010-06-02 10:21:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/GIFReader.st,v 1.98 2010-06-02 10:24:25 cg Exp $'
! !
GIFReader initialize!