Hi Max,
Max Bowsher wrote on Thursday, March 29, 2007 1:46 PM:
> Max Bowsher wrote:
>> John Casey wrote:
>>> Max: I'm tempted to say that we should look for decimal versions of
>>> common octal expressions, then prefix the rest with '0' to ensure
>>> they're interpreted as octal (unless they have 0x in front, that
>>> is).
>>>
>>> Is that a decent solution?
>>
>> I think that it is the best compromise between maintaining the same
>> behaviour with existing descriptors, and fixing the bug going
>> forward into the future.
>>
>>
>> Would this behaviour apply to all modes in the descriptor, or just
>> <file><fileMode> ? (I'd lean toward the latter).
>>
>>
>> OOI, why prepend a leading zero, rather than using
>> Integer.parseInt(x,8) and Integer.parseInt(x,10) as appropriate? I
>> was thinking of something along the lines of:
>>
>> HashMap commonModes = new HashMap() {{
>> add("
>
> Oh, grr. I'd really like to know how Thunderbird managed to save a
> previous version than was showing when I did save-to-Drafts.
>
> Anyway, I meant:
>
> private static HashMap commonDecimalModes = new HashMap() {{
> add("420"); add("436");
> add("493");
> add("509");
> }}
>
> .....
>
> if ( commonDecimalModes.contains( mode ) )
> return Integer.parseInt( mode, 10 );
> else
> return Integer.parseInt( mode, 8 );
Why not letting Java decide? It handles decimal, octal and hex values
automatically:
public Integer fromString(String str) {
long value = Long.decode(str).longValue();
if(value < Integer.MIN_VALUE || value > 0xFFFFFFFFl) {
throw new NumberFormatException("For input string: \"" + str +
'"');
}
return new Integer((int)value);
}
Note: Integer.decode(String) is not used here because it will not handle
negative hex-coded integer values. With this approach you can express -1 as
0xFFFFFFFF ...
- Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]