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]