To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=84979





------- Additional comments from [EMAIL PROTECTED] Sun Jan  6 16:08:45 +0000 
2008 -------
The enum convention (address.hxx:255) defines 5 types (CONV_OOO, CONV_XL_A1,
CONV_XL_R1C1, CONV_XL_OOX, CONV_LOTUS_A1).  ScRangeData::MakeValidName
enumerates over these calling ScAddress::Parse and ScRange::Parse as object
methods with two acquisition objects: aName and aRange.

The main logic flaw is that these Parse functions process the range name
left-to-right returning a USHORT containing SCA_FLAGS (see address.hxx:201 et
seq) which indicate which component parts of a range have been decoded.  There
is no flag to indicate that garbage is found after the range reference.

However, ScRangeData::MakeValidName treats them as a simple boolean.  Hence if
any of the parse methods see a fragment reference then this is treated as a
match and the _ prefix is applied.

Incidentally these parse methods only decode for CONV_OOO (the default),
CONV_XL_A1 and CONV_XL_R1C1 so CONV_OOO is called 3 times, and as the match
routine does not quit on first match, multiple transformations can occur.  For
example, in the case of
  A123:B124  aRange.Parse(,,CONV_OOO) returns 0xF700   resulting in A123_B124
             aRange.Parse(,,CONV_XLA1) returns 0xC700  resulting in _A123_B124

Because this is processing 10 parse routines which could (partial) match under
various conditions we get the bizarre variants described in the original post.

What is very cleat ro me is that whoever coded this up did not start by getting
a stable logical functional specification, physicalising it and the refactoring
it before moving onto design and implementation.  This whole area of
functionality it a mess.  You are not going to sort it out as a 3.x release. 
You need a consistent detailed specification before you can sort this out so I
think that this is a 4.0 issue.  What you could do in 3.x is a minimum change to
disable some of more bizarre aspects.  

I will make some note on what I regard as a sensible FS.  I wouldn't attempt to
try to fix this tangled code "bottom up".  One options might be to disable all
bar OOO parsing for 3.1.   Thoughts?

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to