diff options
author | Laurent Godard <lgodard.libre@laposte.net> | 2015-08-19 17:58:12 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-08-31 10:14:12 +0000 |
commit | 8a7b7b7b72c299bc9a96815814c1452be7f662c1 (patch) | |
tree | 21e8788438b97cfebf75e87dea3fb6c88ec5db15 /basic/source/inc | |
parent | 9093585317de876c2f04a01b5c3ea137114341c0 (diff) |
New identifier for save/open macro with user defined types
no version bump but B_USERTYPE defined
fix test from commit de26ef85 that should be nMaxRecords
tested full round trip on password protected document (ie. use binary storage)
master --(0)--> master --(1)--> libreoffice 4.4 --(2)--> master --(3)--> master
(0) in master, User type supported, big module supported
(1) in libreoffice 4.4, user type not supported, big module supported, no loss of code
(2) in master, user type not supported, big module not found, no loss of code
it is OK as libreoffice 4.4 saves to LegacyVersion
(3) in master, User type supported, big module supported (all is restored)
it is OK as module was saved with CURRENT_VERSION (see sbxmod.cxx)
Change-Id: I237cf7de70adf1a755be1bc30987b21c43b6ab35
Reviewed-on: https://gerrit.libreoffice.org/17871
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basic/source/inc')
-rw-r--r-- | basic/source/inc/filefmt.hxx | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/basic/source/inc/filefmt.hxx b/basic/source/inc/filefmt.hxx index 9b294a8c2028..db0b1f6e919f 100644 --- a/basic/source/inc/filefmt.hxx +++ b/basic/source/inc/filefmt.hxx @@ -38,10 +38,13 @@ class SvStream; // Version F: #57844 introduction of SvNumberformat::StringToDouble // Version 10: #29955 generate for-loop-level in Statement-PCodes // Version 11: #29955 force anew compilation because of build-inconsistences +// Version 12: aoo#64377 increase code size that basic can handle +// tdf#75973 support user defined types B_USERTYPES in password protected macros +// #define B_LEGACYVERSION 0x00000011L -#define B_CURVERSION 0x00000012L #define B_EXT_IMG_VERSION 0x00000012L +#define B_CURVERSION 0x00000012L // The file contains either a module- or a library-record. // Those records contain further records. Every record's got @@ -69,6 +72,9 @@ class SvStream; #define B_SBXOBJECTS 0x5853 // SX SBX objects #define B_EXTSOURCE 0x5345 // ES extended source +#define B_USERTYPES 0x4369 // UT user defined types + + // A library record contains only module records // sal_uInt16 identifier BL // sal_uInt32 the record's length @@ -153,6 +159,28 @@ class SvStream; // sal_uInt16 number of objects // .... object data +// user defined types B_USERTYPES : +// sal_uInt16 identifier UT +// sal_uInt32 the record's length +// sal_uInt16 number of types +// Data for every user defined type: +// string instance type name +// sal_Int16 number of type members +// Data for every type member: +// string name +// sal_Int16 type +// sal_uInt32 flags +// sal_Int16 hasObjects (0/1) +// If hasObjects +// If member type is nested type +// string nested type name +// Else (array declaration) +// sal_Int16 isFixedSize (0/1) +// sal_Int32 number of dimensions +// Data for every dimension: +// sal_Int32 lower bound +// sal_Int32 upper bound + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |