Hi Alexandre,

I agree that it's better to get the exact error. So I think the negative
check is necessary, however Character class>>value: works in my image for
values greater than 255 (Character value: 257) = $? ... I don't known if
there's un upper limit to this or if depends on the character set...

Character class>>value: already checks for > 255 and in that case don't use
the table....

The <0 assertion must be done.

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...

Any comments are welcome.

Thanks for the help,
Gabriel

On Wed, May 27, 2009 at 6:33 PM, Alexandre Bergel <[email protected]>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
> > <[email protected]> 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 <[email protected]>:
> > >> 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 <[email protected]>
> > >> 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
> > >> [email protected]
> > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>
> > >> _______________________________________________
> > >> Pharo-project mailing list
> > >> [email protected]
> > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>
> > >> --
> > >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > >> Alexandre Bergel  http://www.bergel.eu
> > >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> Pharo-project mailing list
> > >> [email protected]
> > >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >>
> > >
> > > _______________________________________________
> > > Pharo-project mailing list
> > > [email protected]
> > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> > >
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [email protected]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [email protected]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to