RV: [Glorp-development] SmallInteger>>printPaddedWith:to:base: should consider padded only the number right?

Philippe Marschall philippe.marschall at gmail.com
Mon Apr 2 18:15:00 UTC 2007


Fixed in 3.9

2007/4/2, Sebastian Sastre <ssastre at seaswork.com>:
>
>
> Hi there,
>
>     I found this Squeak specific issue that is used by Glorp.
>
>     cheers,
>
>
>
> Sebastian Sastre
>
>
>
>
>
>
>
>
>  ________________________________
>  De: Alan Knight [mailto:knight at acm.org]
> Enviado el: Sábado, 31 de Marzo de 2007 22:41
> Para: Sebastian Sastre;
> glorp-development at lists.sourceforge.net
> Asunto: Re: [Glorp-development]
> SmallInteger>>printPaddedWith:to:base: should consider
> padded only the number right?
>
>
> Yes, that's what I'd expect too. But I note that that sounds to me like a
> more general Squeak issue. Unless the Glorp port for Squeak is adding the
> printOn:paddedWith:to:base: method. And then that sounds like something to
> pester Todd about :-)
>
> At 08:37 PM 3/29/2007, Sebastian Sastre wrote:
>
> Hi there,
>
>     trying to store some binary content on a postgreSQL database with Glorp
> lead me to see how SmallInteger does it's octal representation.
>
>     If you evaluate:
>
>  str := String new writeStream.
>  12 printOn: str paddedWith: $0 to: 3 base: 8.
>  str
> a displayIt on the str gives you:  a WriteStream '8r14'
>
>     This was suprising. I rather would espect '8r014' or '014' (as in
> VisualWorks) because the padded size is related to the size of the symbolic
> representation of the number (without involving it's header wich only
> indicates how one should make the interpretation of the symbolic
> representation of the number).
>
>     cheers,
>
>
> <?xml:namespace prefix = st1 ns =
> "urn:schemas-microsoft-com:office:smarttags" />Sebastian
> Sastre
>
> <?xml:namespace prefix = o ns =
> "urn:schemas-microsoft-com:office:office" />
> PD1: this method is expecting that #printOn:base:showRadix DO NOT print the
> radix header:
>
> printPaddedWith: aCharacter to: anInteger base: aRadix
>  "Answer the string containing the ASCII representation of the receiver
>  padded on the left with aCharacter to be at least anInteger characters."
>  | aStream padding digits |
>  #Numeric.
>  "2000/03/04  Harmon R. Added Date and Time support"
>  aStream := WriteStream on: (String new: 10).
>  self
>   printOn: aStream
>   base: aRadix
>   showRadix: false.
>  digits := aStream contents.
>  padding := anInteger - digits size.
>  padding > 0 ifFalse: [^ digits].
>  ^ ((String new: padding) atAllPut: aCharacter;
>   yourself) , digits
>
> PD2: so.. it would act as expected if we patch #printOn:base:showRadix to:
>
> SmallInteger>>printOn: outputStream base: baseInteger showRadix: flagBoolean
>  "Write a sequence of characters that describes the receiver in radix
>  baseInteger with optional radix specifier.
>  The result is undefined if baseInteger less than 2 or greater than 36."
>  | tempString startPos |
>  #Numeric.
>  "2000/03/04  Harmon R. Added ANSI <integer> protocol"
>  tempString := self printStringRadix: baseInteger.
>  "rh 6/9/2005 20:24 change to make it half-work (when you don't want radix
> printed) instead of being completely broken"
>  flagBoolean ifTrue: [^ outputStream nextPutAll: tempString].
>  startPos := (tempString indexOf: $r ifAbsent: [self error: 'radix indicator
> not found.'])
>     + 1.
>  self negative ifTrue: [outputStream nextPut: $-].
>  outputStream nextPutAll: (tempString copyFrom: startPos to: tempString
> size)
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Glorp-development mailing list
> Glorp-development at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/glorp-development
>
> --
> Alan Knight [|], Cincom Smalltalk Development
> knight at acm.org
> aknight at cincom.com
> http://www.cincom.com/smalltalk
>
> "The Static Typing Philosophy: Make it fast. Make it right. Make it run." -
> Niall Ross
>
>
>


More information about the Squeak-dev mailing list