This is useful for PDF-based layout-comparison regression testing
where date/time fields were updated upon PDF export and create
lots of false positives. Hopefully these can be eliminated this way,
at least from text documents.
To test:
Download https://bugs.documentfoundation.org/attachment.cgi?id=48452
from tdf#38703 and export it with:
STABLE_FIELDS_HACK=1 instdir/program/swriter --convert-to pdf DeleteStackSample.odt
The date and time fields are now reset to
30/12/1899 00:00:00
Change-Id: Ic89111615074adb50f16a605f920f9a89c437dfd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/24442
Tested-by: Jenkins
Tested-by: Gabor Kelemen <kelemeng@ubuntu.com>
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
Tor reports that NeonLockStore::stopTicker() m_pTickerThread->join()
can deadlock with TickerThread running NeonLockStore::refreshLocks().
This can be avoided by copying m_pTickerThread to the stack, and
releasing the m_aMutex before calling join().
[ port of commit 68ba2785c5 ]
Change-Id: I6d2d993fd5315f27e6559a1e9034e961303fe894
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123180
Tested-by: Michael Stahl <michael.stahl@allotropia.de>
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Since these don't use soffice they need to be tweaked to use RR variable.
A rr git master build from some weeks ago can record all tests, except
CppunitTest_dbaccess_firebird_test which fails.
smoketest is a bit tricky because it spawns soffice which checks RR
variable again and starts a nested rr, but fortunately there's a
flag to prevent it from aborting in this situation.
For UITests currently only the soffice.bin is recorded, not the python
test process.
The size of all the recording is about 35G per run in a --enable-dbgutil
build.
Change-Id: I2143618fa2181e36b6aaeded43637cb3481f5e47
Reviewed-on: https://gerrit.libreoffice.org/60032
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Tested-by: Michael Stahl <Michael.Stahl@cib.de>
The problem with the bugdoc is that SwFrame::GetNextSctLeaf() creates a
follow frame for a section in a table, and puts it outside the table,
below the page's body frame, while moving text frames that have the
mbInfTab flag set into the follow frame.
The situation is different from forcepoint #18 though: the frame "this"
is a SwTabFrame here, and GetNextCellLeaf() *does* return a plausible
looking follow cell frame, however it's ignored later because
CanContainSplitSection(this) is false since it's a SwTabFrame.
IIRC table-in-section-in-table should not be split anyway, so
just add a check here and return early.
(regression f8a76d2183)
Revert "forcepoint #3"
This reverts commit 34627ad7d0
because it was just a work-around not to crash with the invalid table
frames.
Change-Id: I54692a67edade23c6b8e0a9be806728b0012a3fd
Reviewed-on: https://gerrit.libreoffice.org/51751
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
* ooo50432-1.sxw has a move from a page with columns to a page without
columns
* kde327565-1.odt has a move from a page without columns to a page with
columns
* novell348228-1.odt has a section inside a fly frame that has no
mpUpper
Change-Id: I65afbbad7bb1b7aa3bf7cac8ff78e864adf66c3c
Reviewed-on: https://gerrit.libreoffice.org/51572
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
Just for the record, the CVEs don't affect LO because RTP/RTSP/LDAP
are disabled and FTP UCP doesn't use CURLFTPMETHOD_SINGLECWD.
Change-Id: Ib3872aab9592c2388ee4fd03c3a3113cb2e69b59
Reviewed-on: https://gerrit.libreoffice.org/51539
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
An additional way in which column sections are a special case is if
"this" is the SwBodyFrame inside the SwColumnFrame; handle this too.
Happens in ooo31607-2.sxw.
Change-Id: Id07b76e67c34b2335f2802f52e215d37476b3446
Instead of a hard-coded check for (effectively) one project name
"LibreOffice" (which is build-time configurable), check for the string
"LibreOffice_project", which has been produced hard-coded ever since
LO 3.3.0.
This now recognises additional downstreams "LibreOffice_Vanilla"
and "Collabora_Office", and also historic "BrOffice".
An important point here is that the build-time configurable version
numbers of any downstream that retains the hard-coded
"LibreOffice_project" *MUST* be the same as the upstream's at least
in their major and minor versions (micro and further digits are
currently not used), and that such downstreams don't backport
changes with ODF export compatibility impact further than upstream.
Add a unit test too, with a representative sample of 4372 distinct
generators in bugzilla attachments.
This revealed that StarOffice 6 and AOO 4.0.1 were falling through
the cracks and not recognised, so fix that too.
Change-Id: I8105222d3428e7b20cc4a6b8e76732c697812594
Reviewed-on: https://gerrit.libreoffice.org/51171
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
When using the presenter console, the secondary screen has
a small view of the current slide, which is called a "Pane" in sdext.
Clipping for this is done by sd::presenter::PresenterCanvas, which wraps
the full-screen VCL canvas and has a MergeViewState() to intersect
the clip region.
The VCL canvas has a bug in its gradientFill() implemenation where it
overrides the existing clip on the OutputDevice instead of intersecting
it.
This properly fixes the bug that was wrongly and badly attempted
to be fixed by commit 99e373cd4c.
Change-Id: Id02678c2f134fe7b190866d6a6fff5b2e5e3aaff
This reverts commit 99e373cd4c.
This is bogus as it actually does scaling and not clipping, and the
actual clipping bug is in the VCL canvas, see following commit.
Also should fix tdf#115652 and tdf#116196.
Change-Id: Ief7be653a38626c9902ab5c7c453a133c2b9f882
Check that the parents of the section follow frame are the same type as
the parents of the original section frame.
Change-Id: I9845e48834d57b8a93f9b850cb89b6c5544d9ab2
Reviewed-on: https://gerrit.libreoffice.org/50807
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
The problem with the bugdoc is that SwFrame::GetNextSctLeaf() creates a
follow frame for a section in a table, and puts it outside the table,
below the page's body frame, while moving text frames that have the
mbInfTab flag set into the follow frame.
Checking for CanContainSplitSection() at this point doesn't make sense
to me: if it's not allowed to split the section, we can't just split it
anyway and put the follow outside the table.
Just removing it fails in testTableInNestedSection() but it turns out
that the problem there is that the mbInfTab flag is set on a outermost
SwTabFrame itself, so we need to check the parent's flag instead to
check if this frame needs to go into a cell.
(regression from 652556ec3e)
Change-Id: I79663391fb1b2cb10f008676feb01a2607cfb33d
Reviewed-on: https://gerrit.libreoffice.org/50804
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This will now delete these globals on shutdown, hopefully it's only
relatively primitive types...
Change-Id: Ib7a4bb4507da500e1eb1bb69876bb6d670d99cd4
Reviewed-on: https://gerrit.libreoffice.org/50624
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Add a cheap check for this in both SaxWriter and FastSaxSerializer
so we can find such bugs earlier, e.g. with the weekly crashtesting.
Don't do a correct check but a cheap & fast one, let's ignore
non-ASCII characters for now as the only filter with such is UOF
and that is implemented with XSLT, not this sax code.
Change-Id: I4db8f70ffb23684d4cb4211468519edd6c7c465f
Reviewed-on: https://gerrit.libreoffice.org/50507
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
... in SvXMLLegacyToFastDocHandler::startElement(), so that it does not
create invalid "-1" tokens that end up stored as empty-string
attribute names in SvXMLAttrCollection and ultimately exported
as invalid XML.
The maName in struct UnknownAttribute actually stores a QName,
i.e. namespace-prefixed, since commit
bb59a80ee6.
The attributes are read and converted again in
SvXMLImportContext::startUnknownElement().
Change-Id: Ia69a4da293f1a84ce30766abc09ca19e2620edbd
Reviewed-on: https://gerrit.libreoffice.org/50580
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Since commit cb8bfa9a32 the main thread
will read from the timer pipe until it is empty. But evidently this
introduces the problem that the poll() in another thread will not
return, as the file descriptor will no longer be readable; see
https://paste.debian.net/1011306/ for a reproducer of that rather
under-documented poll behaviour. So other threads can get stuck
forever in poll, and then the main thread can block in poll too with
no other thread to wake it up. This is the problem that plagues
UITest_writerperfect_epubexport.
The timer pipe is difficult to fix, since the main thread can block on
either the poll or the subsequent AcquireYieldMutex().
So replace the timer pipe with a condition etc. that is mostly
copied from the OSX AquaSalInstance/SalYieldMutex implementation.
The main thread now does something different than the other threads,
and blocks on a condition_variable with a timeout, while other
threads still block on acquiring the mutex.
Non-main threads can poke the main thread to do a DoYield()
on their behalf, and then get the result back with a blocking
read from a pipe, all while holding the YieldMutex. This
requires some fudging of the YieldMutex so that the main
thread can borrow the ownership temporarily.
Unfortunately SvpSalInstance, in addition to being directly
instantiable for --headless, has a whole bunch of subclasses:
* HeadlessSalInstance
* AndroidSalInstance
* IosSalInstance
* GtkInstance (in the gtk3 case)
* KDE5SalInstance
Of these GtkInstance overrides everything related to the
DoYield/SalYieldMutex implementation, but the others will be
affected by the change.
This commit will probably break IOS due to me not understanding the
point of the undocumented random #ifdef IOS in svpinst.cxx.
Change-Id: I1bbb143952dda89579e97ac32cd147e5b987573c
Reviewed-on: https://gerrit.libreoffice.org/50237
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
...by CppunitTest setting LD_LIBRARY_PATH to include instdir/program.
This causes the spawned gpg-agent to load instdir/program/libassuan.so.0
instead of /usr/... and fail with:
writev(2, [{iov_base="gpg-agent", iov_len=9}, {iov_base=": ",
iov_len=2}, {iov_base="relocation error", iov_len=16}, {iov_base=": ",
iov_len=2}, {iov_base="gpg-agent", iov_len=9}, {iov_base=": ",
iov_len=2}, {iov_base="symbol assuan_sock_set_system_ho"...,
iov_len=118}, {iov_base="", iov_len=0}, {iov_base="", iov_len=0},
{iov_base="\n", iov_len=1}], 10) = 159
The failure happens in the libreoffice-6-0 branch on Fedora 27, whereas
the master branch doesn't fail because it has a newer version of
libassuan that happens to provide the required symbol.
Fix this by applying the patch that was added for ASAN in
d15f042abd to clear LD_LIBRARY_PATH
always on Linux.
Change-Id: I6a5c7fdfdd32234f39a182581b03d79739880c11
Reviewed-on: https://gerrit.libreoffice.org/50056
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Seen in UITest_writer_tests.
Use C++11 thread-safe static initialisation here, which should
avoid the deadlock that is caused by relying on
osl::Mutex::getGlobalMutex().
Thread #1:
2 in osl_acquireMutex(oslMutexImpl*) (pMutex=0x1ad2c70) at sal/osl/unx/mutex.cxx:97
3 in osl::Mutex::acquire() (this=0x7ff3252b9628 <rtl::Static<osl::Mutex, (anonymous namespace)::theImplHelperInitMutex>::get()::instance>) at include/osl/mutex.hxx:56
4 in osl::Guard<osl::Mutex>::Guard(osl::Mutex&) (this=0x7ffca8bdd6c0, t=...) at include/osl/mutex.hxx:129
5 in cppu::getTypeEntries(cppu::class_data*) (cd=0x7ff31e458fe0 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::io::XActiveDataControl, com::sun::star::io::XActiveDataSink>, com::sun::star::io::XActiveDataControl, com::sun::star::io::XActiveDataSink>::operator()()::s_cd>) at cppuhelper/source/implbase_ex.cxx:89
6 in cppu::queryDeepNoXInterface(typelib_TypeDescriptionReference const*, cppu::class_data*, void*) (pDemandedTDR=0x2e643b0, cd=0x7ff31e458fe0 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::io::XActiveDataControl, com::sun::star::io::XActiveDataSink>, com::sun::star::io::XActiveDataControl, com::sun::star::io::XActiveDataSink>::operator()()::s_cd>, that=0x387cbe0) at cppuhelper/source/implbase_ex.cxx:173
[...]
20 in utl::UcbStreamHelper::CreateStream(rtl::OUString const&, StreamMode) (rFileName="file://instdir/program/../share/gallery/sounds.thm", eOpenMode=StreamMode::READ) at unotools/source/ucbhelper/ucbstreamhelper.cxx:149
21 in GalleryTheme::CreateThemeEntry(INetURLObject const&, bool) (rURL=..., bReadOnly=false) at svx/source/gallery2/galtheme.cxx:692
22 in Gallery::ImplLoadSubDirs(INetURLObject const&, bool&) (this=0x38762c0, rBaseURL=..., rbDirIsReadOnly=@0x7ffca8bde7df: false) at svx/source/gallery2/gallery1.cxx:474
23 in Gallery::ImplLoad(rtl::OUString const&) (this=0x38762c0, rMultiPath="file://instdir/program/../share/gallery;file://workdir/UITest/writer_tests/user/user/gallery") at svx/source/gallery2/gallery1.cxx:301
24 in Gallery::Gallery(rtl::OUString const&) (this=0x38762c0, rMultiPath="file://instdir/program/../share/gallery;file://workdir/UITest/writer_tests/user/user/gallery") at svx/source/gallery2/gallery1.cxx:257
25 in Gallery::GetGalleryInstance() () at svx/source/gallery2/gallery1.cxx:273
26 in GalleryExplorer::BeginLocking(unsigned int) (nThemeId=3) at svx/source/gallery2/galexpl.cxx:264
27 in SvxBmpNumValueSet::init() (this=0x3873ed0) at svx/source/dialog/svxbmpnumvalueset.cxx:501
Thread #8 Grammar Checking:
2 in osl_acquireMutex(oslMutexImpl*) (pMutex=0x7ff329045420 <globalMutexImpl>) at sal/osl/unx/mutex.cxx:97
3 in osl::Mutex::acquire() (this=0x7ff32903b780 <osl_getGlobalMutex::globalMutex>) at include/osl/mutex.hxx:56
4 in osl::Guard<osl::Mutex>::Guard(osl::Mutex*) (this=0x7ff2f5b30030, pT_=0x7ff32903b780 <osl_getGlobalMutex::globalMutex>) at include/osl/mutex.hxx:122
5 in com::sun::star::container::cppu_detail_getUnoType(com::sun::star::container::XEnumeration const*) () at workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/container/XEnumeration.hpp:69
6 in cppu::UnoType<com::sun::star::container::XEnumeration>::get() () at include/cppu/unotype.hxx:296
7 in cppu::detail::cppu_detail_getUnoType<com::sun::star::container::XEnumeration>(com::sun::star::uno::Reference<com::sun::star::container::XEnumeration> const*) () at include/cppu/unotype.hxx:259
8 in cppu::UnoType<com::sun::star::uno::Reference<com::sun::star::container::XEnumeration> >::get() () at include/cppu/unotype.hxx:296
9 in com::sun::star::reflection::detail::theXTypeDescriptionEnumerationType::operator()() const (this=0x7ff2f5b30177) at workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/reflection/XTypeDescriptionEnumeration.hpp:30
10 in rtl::StaticWithInit<com::sun::star::uno::Type*, com::sun::star::reflection::detail::theXTypeDescriptionEnumerationType, com::sun::star::reflection::detail::theXTypeDescriptionEnumerationType, com::sun::star::uno::Type*>::get() () at include/rtl/instance.hxx:603
11 in com::sun::star::reflection::cppu_detail_getUnoType(com::sun::star::reflection::XTypeDescriptionEnumeration const*) () at workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/reflection/XTypeDescriptionEnumeration.hpp:57
12 in cppu::UnoType<com::sun::star::reflection::XTypeDescriptionEnumeration>::get() () at include/cppu/unotype.hxx:296
13 in com::sun::star::reflection::XTypeDescriptionEnumeration::static_type(void*) () at workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/reflection/XTypeDescriptionEnumeration.hpp:102
14 in cppu::getTypeEntries(cppu::class_data*) (cd=0x7ff3252b8ac0 <cppu::detail::ImplClassData<cppu::WeakImplHelper<com::sun::star::reflection::XTypeDescriptionEnumeration>, com::sun::star::reflection::XTypeDescriptionEnumeration>::operator()()::s_cd>) at cppuhelper/source/implbase_ex.cxx:96
Change-Id: I3aa3167ca8989b3d6be053e1c97f3b7a64bfbfb8
Reviewed-on: https://gerrit.libreoffice.org/49986
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
These scripts were never shipped to end users (the corresponding
install_linux.sh was only added to the instset in LO times,
see 117b3242db) but were used
by QA and developers to install multiple Solaris builds
as non-root using getuid.so.
But the "archive" installation set can be used for the
same purpopse and doesn't require a custom script.
Change-Id: I665277bef7c5ddd58e798f5f1b1c6a97a0f3cfc5
Somehow a8ea79b10b caused another warning
to appear in the MSVC 2015 that is used in jenkins builds. Whyever.
Change-Id: Iba73de5739078972129d0a2de7d8a6437c12b2e0
It's possible that an ODF document contains redlines that will be
deduplicated by CompressRedlines().
If that happens during some editing operation, then a SwRedline
will be deleted and the nodes array becomes smaller by at least 3
nodes; any Undo actions that were created prior to the operation
that called CompressRedlines() will store invalid node indexes now
and Undo will crash.
So presumably it's a precondition of editing operations
that CompressRedlines() is a no-op.
Interestingly CompressRedlines() is also called from
SwEditShell::Undo()/Redo().
Ensure it's a no-op later by calling CompressRedlines() immediately
after load.
(Hopefully this should also work for the Insert File case.)
Add a test too.
Change-Id: Iec8135cc60260ed5cfff05a196b5c92cc03265f9
Reviewed-on: https://gerrit.libreoffice.org/49721
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
ODF 1.2 has added some mandatory requirements for protection-key hashes
which did not exist in ODF 1.1.
This affects sections and indexes in ODT documents, as well as
spreadsheets and sheets in ODS documents.
1. Accept the following hashed passwords:
* UTF16 LE/BE encoded StarOffice-SHA1, OOo legacy and allowed by ODF 1.1
* UTF8 encoded proper SHA1, as required by ODF 1.2
* UTF8 encoded SHA256, as required by ODF 1.2
- specified either with the wrong URL used in the ODF 1.2 spec
or the correct URL from the W3C spec, see OFFICE-3702
* Excel+SHA1 double-hash, only in Calc, see OFFICE-2112
2. Round-trip any of the above as-is
* for SHA256 only write the URL from the ODF 1.2 spec
3. Generate only UTF16 LE encoded SHA1 for now, so that older LO
releases can still verify the password
* some time in the future, switch to generating some valid ODF 1.2 hash
More changes are necessary in Calc, which can actually preserve
different hashes for the same passwords in its runtime data model,
whereas Writer just has a single buffer without even any metadata.
For the Calc unit tests we need one document per hash because the
protection-key attribute can be set on the entire spreadsheet, which
is an unique element in the document.
There are further uses of SvlPasswordHelper for change-tracking passwords,
but apparently those are stored in settings.xml, so ODF has no
requirements for them, so let's leave that as it is.
Change-Id: Icb720b14ae9c0d9c04d2e082769ae2b74e3af8aa
Reviewed-on: https://gerrit.libreoffice.org/49352
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This looks like some defensive programming to avoid a crash only in
DBG_UTIL mode, which is a pretty moronic thing to want to do.
Change-Id: I93c791a76cf9114359be3fef6b604c86ec49da51
If SwCache::Insert() happens to delete the object that m_pFirst or
m_pRealFirst point to, which is unlikely as it means every other object
is locked, then these pointers must be updated.
This sometimes happens in the bugdoc after scrolling around for some
time.
Change-Id: I13f04d28c37969469efa4e1109c7f5b751ceba96
Reviewed-on: https://gerrit.libreoffice.org/49151
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Could not find a single instance where the return value of
SwCacheAccess::Get() was actually checked, so let's have
SwCache::Insert() automatically resize the cache, since it starts
out with just 100 capacity; also, check that the size doesn't overflow.
Change-Id: I3cd7cf2aea79e01816b12e4dbaf79c3bf82bf8fe
Reviewed-on: https://gerrit.libreoffice.org/49140
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This sometimes fails, since months, and nobody has fixed it.
Let's improve the reliability of CI a bit.
Change-Id: Ic4d2e085151855d35804f8ed6ebca04366815c0b
Reviewed-on: https://gerrit.libreoffice.org/49144
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
According to the crash reports, it's possible for the grammar checking
thread to call GetGrammarChecker, instantiating lightproof, at the same
time as the main thread instantiates LngSvcMgr, which also instantiates
(some?) (all?) grammar checkers.
Ensure that pyuno_loader::CreateInstance() initialises Python only
once with a C++11 thread safe static.
Change-Id: I5b1faba9107355c508831a078366e4a29fdbfadf
OBookmarkContainer actually re-uses the reference count of
ODatabaseSource, so converting ODatabaseSource::m_aBookmark to Reference
created a cycle, which somehow causes the dataloss, because evidently
something as important as storing the data must be done in the
destructor.
(regression from 2660d24a07)
Change-Id: I4cad01dc9cdaf405c1eb31d6c0e161eb6712b78f
The loext namespace is not defined when exporting standard ODF
versions, which triggers an assert() in SvXMLNamespaceMap.
(regression from 4469b29fae)
Change-Id: Ic93fb0ea8fe092463d3fd18a0fbf4429d8652642
Looking at UpdatePageNum_ it's fairly obvious that the 2 vectors aNums
and aDescs have to be in sync, but aNums is cleared after each iteration
while aDescs is not.
Change-Id: I41d8a8df5c4c3ae51aa5ea89c21b01651af5651c
Very odd things are happening in dbmgr.cxx to override this member,
so add a 2nd member that points to the DBManager that is actually used.
Change-Id: If5d4ea1e4951a0406fddcb71302c53ee7b37a34e
The bugdoc is affected by the change of default vertical alignment;
apparently it's not even possible to set the vertical alignment of a
Word 6 drawing object (\do) so we have to set the Word default.
(regression from c79467ba95)
Change-Id: I4084a7a7e2a55f864cb569e04632e034d59eefdb
... at least since other single line styles than SOLID and DASHED
were added some years ago.
This causes an assertion from MSVC std::max in CppunitTest_sw_odfexport.
Change-Id: I2e0833b3d5c5afab259108be1c8782c4c4d26978
Looking at the HTML4 DTD https://www.w3.org/TR/html4/sgml/dtd.html,
inside TABLE only various elements defining the structure of the table
allowed, except inside cells (TD and TH elements).
DIV in a table but outside cells may cause cursor positions to go
off the rails, so better ignore such invalid DIV tags.
Change-Id: Ia6195d80670631669c252d572242874b13642b74
Reviewed-on: https://gerrit.libreoffice.org/48359
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
The current update MSVC 2017.5 supports fancy new C++ features, but
unfortunately in its default C++14 mode it falls over and dies with
an internal compiler error as soon as it sees the WeakImplHelper
variadic template.
In order to work around the ICE, build everything as C++17,
which somehow doesn't crash.
This causes loads of deprecation warnings about obsolete std::this
and badly designed std::that, almost all of them from boost headers,
which are well known for following every best practice in the C++ book.
Liberally sprinkle macros around to suppress the warnings for now,
like we already do with the other million warnings from boost headers.
Change-Id: Ia6b6ef5e457b5fe3c8cfe361ba5da39376bb7c4c
Reviewed-on: https://gerrit.libreoffice.org/48225
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
And it's immediately obvious why, if you look at the elegant and concise
replacement code that doesn't trigger deprecation warnings.
Change-Id: Ie4b3ca83951a89f7ac4d172086c23c7457087ba3
Reviewed-on: https://gerrit.libreoffice.org/48223
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Most of these calls are in assertions, and the ones that aren't should
be guarded by SolarMutex, so the thread safety concerns that caused
unique() to be deprecated don't look relevant, so use use_count(),
which oddly enough isn't deprecated.
Change-Id: Ia166615af6c3ce85145c391752669c7461bd35fb
Reviewed-on: https://gerrit.libreoffice.org/48222
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This claims to support Visual Studio 2017.4, but not the current
2017.5.
* remove boost.auto_link.patch; it does not apply; not sure why we
need this if we can just define BOOST_ALL_NO_LIB
(see commit 7f2e168421)
* remove some hunks from clang-cl.patch.0 that look fixed upstream
* add a global workaround for spurious GCC warning:
oox/source/drawingml/shape.cxx:921:54: error:
‘oShadowColor.boost::optional_detail::tc_optional_base<int>::m_storage’
may be used uninitialized in this function
[-Werror=maybe-uninitialized]
aFormat.Color = *oShadowColor;
Change-Id: I1eb1d8b66554a84a7d7269f1faaa98695fe2f501
Reviewed-on: https://gerrit.libreoffice.org/48187
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Apparently the MSMs have been renamed in Visual Studio 2017.3 but only
configure was adapted, not scp2.
Not sure if these MSMs are still relevant given the new
gid_File_Vcredist_Exe thing.
Change-Id: I4fe27c8298b3a2024acc62d12ce8ea67e2eca80d
Ever since commit cc144e5544 fix for
i#76959 the pTopTable parameter of HTMLTable was always null.
Simplify HTMLTable by removing dead code.
Change-Id: Ie13313f54d6ee656e56a209bc29bcc77132de269