I agree Character class>>value: accepts values above 256, we were talking about codePoint: however. Maybe codePoint is obsolete and should be removed. There is sender in a last Pharo + Mondrian + Moose + other stuffs. Side node. This is very strange, using a DejaVu font, I can printIt "Character value: 300". But printint-It "Character value: 257" takes forever. I am the only one? If not, then I open a ticket.
The <0 assertion must be done.
An error saying that character values cannot be negative would be helpful.
So if it's ok I want to do this:
Retain Character class>>codePoint: anInteger ^self value: anInteger
And change Character class>>value: anInteger
to perform the negative check and raise a better error in that case... the >255 case don't raises an error (at least not always) so I open to suggestions...
Looks good to me.
Thanks for the help,
Glad it helped Alexandre
On Wed, May 27, 2009 at 6:33 PM, Alexandre Bergel <alexandre@bergel.eu> wrote: I agree with what has been previously said. However, I think there is a fundamental difference between getting en error: 'Character code point ranges between 1 and 256 only' and 'subscript is out of bound'. Currently, CharacterTable has 256 slots. Maybe an initialization has to be done or something, but if you provide a value > 255, then you will get an error.
Alexandre
On 27 May 2009, at 17:26, Gabriel Cotelli wrote:
Yes, but if "value:" cannot lookup in the table uses some extended character set...
I think the negative check mut be done... about the > 255 I'm not sure...
On Wed, May 27, 2009 at 3:42 PM, Alexandre Bergel <alexandre@bergel.eu> wrote:
Please remove the upper limit, I think this was a pre-internationalization method which should have been updated but was not because not used.
But CharacterTable is an array of 256 characters long.
Alexandre
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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.