tdf#104334 DOC import: don't map STYLREF with switches to SwChapterField
Commit d635b351849b8b576c907abf22500d0fa89ab54f (tdf#99100 DOC import: handle subset of STYLEREF natively, 2016-04-06) started to import the STYLEREF field code as SwChapterField in case it had \[a-z] switches after the field argument. The bugdoc has a \s switch, which is not documented in ISO/IEC 29500-1:2012 17.16.5.59 "STYLEREF", nor is really clear what it would do. The original use-case was for the " STYLEREF 1 \* MERGEFORMAT " syntax, so just keep using fieldmarks for the " STYLEREF <field argument> \[a-z] " case. Change-Id: Ibd094e72be4e179c779a79a75769b599d4d9bba8 Reviewed-on: https://gerrit.libreoffice.org/33489 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
This commit is contained in:
parent
06202a90d6
commit
44cb1d16f2
BIN
sw/qa/extras/ww8export/data/tdf104334.doc
Normal file
BIN
sw/qa/extras/ww8export/data/tdf104334.doc
Normal file
Binary file not shown.
@ -74,6 +74,14 @@ DECLARE_WW8EXPORT_TEST(testTdf104805, "tdf104805.doc")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DECLARE_WW8EXPORT_TEST(testTdf104334, "tdf104334.doc")
|
||||||
|
{
|
||||||
|
// This failed with a container::NoSuchElementException: STYLEREF was
|
||||||
|
// mapped to SwChapterField, and the field result was "This is a Heading 1"
|
||||||
|
// instead of just "1".
|
||||||
|
CPPUNIT_ASSERT_EQUAL(OUString("1"), getRun(getParagraph(2), 3)->getString());
|
||||||
|
}
|
||||||
|
|
||||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
@ -914,6 +914,14 @@ long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes)
|
|||||||
if (nRet == -2 && !aReadParam.GetResult().isEmpty())
|
if (nRet == -2 && !aReadParam.GetResult().isEmpty())
|
||||||
// Single numeric argument: this can be handled by SwChapterField.
|
// Single numeric argument: this can be handled by SwChapterField.
|
||||||
bHasHandler = rtl::isAsciiDigit(aReadParam.GetResult()[0]);
|
bHasHandler = rtl::isAsciiDigit(aReadParam.GetResult()[0]);
|
||||||
|
|
||||||
|
if (bHasHandler)
|
||||||
|
{
|
||||||
|
nRet = aReadParam.SkipToNextToken();
|
||||||
|
// Handle using SwChapterField only in case there is no \[a-z]
|
||||||
|
// switch after the field argument.
|
||||||
|
bHasHandler = nRet < 0 || nRet == '*';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// keine Routine vorhanden
|
// keine Routine vorhanden
|
||||||
|
Loading…
x
Reference in New Issue
Block a user