We need to do this now because we now store the group field data directly
in the pivot cache, which is shared by all referencing tables.
Also, actions involving modification of the cache is not undoable, and
making it undoable would significantly increase Calc's runtime memory
footprint. So, no way.
Idea:
- write the layout data to a xml file
still missing:
- xml export part
- some more properties need to be exported
- some more structure information need to be dumped
- find a way to start dumping after importing
Technically these two are both const char[8], so gcc/clang keep
the resulting type the same, but msvc always converts to const char*,
even if the same sizes mean this is not required.
Since OString already has a ctor accepting const char*, I cannot
find out a way to distinguish string literals other than using
a template, otherwise const char* somehow takes precedence
(all of gcc, clang, msvc). But the template requires
the Substitution Is Not A Failure Idiom to actually create
only wanted instances. And the compiler can try evaluate
the OString ctor as a possibility when comparing an int to
an anonymous enum, and anonymous enum as a type without linkage
cannot be a template argument before C++11. SFINAE should still
work, but not with gcc older than 4.0.2 (which we right now
use only on macs). So for that case disable the string literal
ctors, which means macs will have one extra strlen call,
and also that embedded \0's in string literals will be
inconsistent. The tiny performance problem shouldn't matter that
much and will eventually go away, the \0 problem should not
matter, since before string literal ctors were introduced
\0's had not been included anyway unless RTL_CONSTASCII_STRINGPARAM
was used. So we should be safe and when removing the CONSTASCII
macros \0 cases should be handled by explicitly mentioning
the length.
It breaks on a clean installs of Windows, and registration of SDK with Visual
Studio seems to be the answer.
This reverts commit f3f6c9be98.
Conflicts:
lcms2/makefile.mk