changed #printOn:based:showRadix:
authorStefan Vogel <sv@exept.de>
Tue, 07 Jul 2009 19:21:10 +0200
changeset 11793 87abb9669c47
parent 11792 6782c723834a
child 11794 ad5fcc151a09
changed #printOn:based:showRadix:
Integer.st
--- a/Integer.st	Tue Jul 07 19:20:10 2009 +0200
+++ b/Integer.st	Tue Jul 07 19:21:10 2009 +0200
@@ -3230,21 +3230,21 @@
 
     base := b.
     (base between:2 and:36) ifFalse:[
-	self error:'invalid base' mayProceed:true.
-	base := 10.
+        ConversionError raiseRequestErrorString:' - invalid base'.
+        base := 10.
     ].
 
     showRadix ifTrue:[
-	base printOn:aStream.
-	aStream nextPutAll:'r'.
+        base printOn:aStream.
+        aStream nextPut:$r.
     ].
 
     (self = 0) ifTrue:[aStream nextPut:$0. ^ self].
     (self negative) ifTrue:[
-	aStream nextPut:$- .
-	num := self negated.
+        aStream nextPut:$- .
+        num := self negated.
     ] ifFalse:[
-	num := self.
+        num := self.
     ].
 
     "
@@ -3269,11 +3269,11 @@
     r2 := base*base.   "/ radix^2
     r4 := r2*r2.             "/ radix^4
     base <= 10 ifTrue:[
-	r := r4*r2.        "/ radix^6
-	nD := 6.
+        r := r4*r2.        "/ radix^6
+        nD := 6.
     ] ifFalse:[
-	r := r4*base.    "/ radix^5
-	nD := 5.
+        r := r4*base.    "/ radix^5
+        nD := 5.
     ].
 
     "get a Stream with space for the digits we are going to print.
@@ -3283,38 +3283,38 @@
     s := WriteStream on:(String new:((num highBit // base highBit - 1) + 1)).
 
     [num >= r] whileTrue:[
-	"/
-	"/ chop off nD digits.
-	"/
-	divMod := num divMod:r.
-	num := divMod at:1.
-	numN := divMod at:2.
-
-	"/ process them
-	nD timesRepeat:[
-	    divMod := numN divMod:base.
-	    numN := divMod at:1.
-	    mod := divMod at:2.
-	    s nextPut:(Character digitValue:mod).
-	].
+        "/
+        "/ chop off nD digits.
+        "/
+        divMod := num divMod:r.
+        num := divMod at:1.
+        numN := divMod at:2.
+
+        "/ process them
+        nD timesRepeat:[
+            divMod := numN divMod:base.
+            numN := divMod at:1.
+            mod := divMod at:2.
+            s nextPut:(Character digitValue:mod).
+        ].
     ].
 
     [num ~= 0] whileTrue:[
-	divMod := num divMod:base.
-	num := divMod at:1.
-	mod := divMod at:2.
-	s nextPut:(Character digitValue:mod).
+        divMod := num divMod:base.
+        num := divMod at:1.
+        mod := divMod at:2.
+        s nextPut:(Character digitValue:mod).
     ].
 
     aStream nextPutAll:(s contents reverse).
 
     "
-	3000 factorial printOn:Transcript base:10
-	10 printOn:Transcript base:3
-	31 printOn:Transcript base:3
-	-20  printOn:Transcript base:16
-	-20  printOn:Transcript base:10
-	Time millisecondsToRun:[10000 factorial printString]   7650
+        3000 factorial printOn:Transcript base:10
+        10 printOn:Transcript base:3
+        31 printOn:Transcript base:3
+        -20  printOn:Transcript base:16
+        -20  printOn:Transcript base:10
+        Time millisecondsToRun:[10000 factorial printString]   7650
     "
 
     "Modified: / 20.1.1998 / 18:05:02 / stefan"
@@ -3329,12 +3329,12 @@
 
     |stream string actualSize|
 
-    stream := '' writeStream.
+    stream := WriteStream on:(String new:sz).
     self printOn:stream base:baseInteger showRadix:false.
     string := stream contents.
     actualSize := string size.
     actualSize < sz ifTrue:[
-	aStream next:sz-actualSize put:fillCharacter.
+        aStream next:sz-actualSize put:fillCharacter.
     ].
     aStream nextPutAll:string.
 
@@ -3465,12 +3465,12 @@
     "return a string representation of the receiver in the specified
      base; does NOT prepend XXr to the string.
      See also: radixPrintStringRadix:
-	       printOn:base:showRadix:"
+               printOn:base:showRadix:"
 
     |s|
 
     s := WriteStream on:(String basicNew:20).
-    self printOn:s base:base.
+    self printOn:s base:base showRadix:false.
     ^ s contents
 
     "Created: / 19.1.1998 / 17:20:58 / stefan"
@@ -3662,6 +3662,7 @@
     "Modified: 15.10.1997 / 18:43:49 / cg"
 ! !
 
+
 !Integer methodsFor:'special bit operators'!
 
 bitAnd_32:anInteger
@@ -4072,7 +4073,7 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.222 2009-03-23 14:50:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.223 2009-07-07 17:21:10 stefan Exp $'
 ! !
 
 Integer initialize!