Please remove the upper limit, I think this was a pre-internationalization method which should have been updated but was not because not used. For the lower limit, (CharacterTable at: anInteger + 1) in #value: already does the job of signalling the out of bound error, but yes, translation of the codePoint with this + 1 might be troubling. My POV is this one: Since #value: is responsible of possible mis-interpretation, #value: should handle disambiguation of the Error. That is a kind of encapsulation. I suggest error report be moved in #value:, not in every sender of #value: On the other hand, the test could eventually be omitted for efficiency reasons. Though, if efficiency really matters, I would rather see Character becoming immediate. Nicolas 2009/5/27 Alexandre Bergel <alexandre@bergel.eu>:
Yes, with a negative argument. Adding the check: Â (0 > integer or: [255 < integer]) ifTrue: [self error: 'parameter out of range 0..255']. is probably enough. Alexandre
On 27 May 2009, at 08:27, Gabriel Cotelli wrote:
The ANSI Specification doesn't mention anything about that the integer must be in some range... the only thing that expects is that (Character codePoint: x) codePoint = x ....
anyway... I can add the verification... but that's not specified in the ANSI... anybody knowns some senders of this? I checked Pharo-Dev and found none.. maybe in the Web Image?
Alexandre, how you obtain an error using value: ? given a negative argument? I tried with values greater than 255 and works in my image...
Tonight I check that
2009/5/27 Alexandre Bergel <Alexandre.Bergel@inria.fr> I went through all the changes proposed by this slice. I am not sure how should I review the code, but here is my try: - the new version of Character class>>codePoint: anInteger seems to have a different behavior: The old (current) code is codePoint: integer "Return a character whose encoding value is integer." #Fundmntl. (0 > integer or: [255 < integer]) ifTrue: [self error: 'parameter out of range 0..255']. ^ CharacterTable at: integer + 1 The new one is: codePoint: anInteger "Just for ANSI Compliance" ^self value: anInteger value: anInteger "Answer the Character whose value is anInteger." anInteger > 255 ifTrue: [^self basicNew setValue: anInteger]. ^ CharacterTable at: anInteger + 1. At the end an error is raised, but this is not the same. Was this review useful? Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project