diff options
author | Balazs Varga <balazs.varga.extern@allotropia.de> | 2024-05-02 11:03:37 +0200 |
---|---|---|
committer | Balazs Varga <balazs.varga.extern@allotropia.de> | 2024-05-08 17:45:36 +0200 |
commit | d68f2394afc3372d867ea6157123e51b278ba81b (patch) | |
tree | 25880cdf3ea8e19548ab3687f00a9827e47b8bd2 /formula | |
parent | 4f5f24a4a3dac22e0f2c0d4832e0cbdd566263b9 (diff) |
tdf#126573 Add Excel2021 array function RANDARRAY to Calc
Add new function called RANDARRAY to the function list.
(TODO: dynamic array in separate patch, oasis proposal)
Change-Id: I34bad3b7e8d631d649a0350d7c1170b26161331d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167003
Tested-by: Jenkins
Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'formula')
-rw-r--r-- | formula/inc/core_resource.hrc | 6 | ||||
-rw-r--r-- | formula/source/core/api/FormulaCompiler.cxx | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/formula/inc/core_resource.hrc b/formula/inc/core_resource.hrc index ec1f81699e7f..81c1e32fd38e 100644 --- a/formula/inc/core_resource.hrc +++ b/formula/inc/core_resource.hrc @@ -475,6 +475,7 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF[] = { "ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER }, { "ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV }, { "ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV }, + { "COM.MICROSOFT.RANDARRAY" , SC_OPCODE_RANDARRAY }, { nullptr, -1 } }; @@ -927,6 +928,7 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML[] = { "_xlfn.ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER }, { "_xlfn.ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV }, { "_xlfn.ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV }, + { "_xlfn.RANDARRAY" , SC_OPCODE_RANDARRAY }, { nullptr, -1 } }; @@ -1384,6 +1386,7 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF[] = { "FOURIER", SC_OPCODE_FOURIER }, { "RAND.NV" , SC_OPCODE_RANDOM_NV }, { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV }, + { "RANDARRAY" , SC_OPCODE_RANDARRAY }, { nullptr, -1 } }; @@ -1840,6 +1843,7 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_API[] = { "FOURIER", SC_OPCODE_FOURIER }, { "RAND.NV" , SC_OPCODE_RANDOM_NV }, { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV }, + { "RANDARRAY" , SC_OPCODE_RANDARRAY }, { nullptr, -1 } }; @@ -2295,6 +2299,7 @@ const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH[] = { "FOURIER", SC_OPCODE_FOURIER }, { "RAND.NV" , SC_OPCODE_RANDOM_NV }, { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV }, + { "RANDARRAY" , SC_OPCODE_RANDARRAY }, { nullptr, -1 } }; @@ -2747,6 +2752,7 @@ const std::pair<TranslateId, int> RID_STRLIST_FUNCTION_NAMES[] = { NC_("RID_STRLIST_FUNCTION_NAMES", "FOURIER"), SC_OPCODE_FOURIER }, { NC_("RID_STRLIST_FUNCTION_NAMES", "RAND.NV"), SC_OPCODE_RANDOM_NV }, { NC_("RID_STRLIST_FUNCTION_NAMES", "RANDBETWEEN.NV"), SC_OPCODE_RANDBETWEEN_NV }, + { NC_("RID_STRLIST_FUNCTION_NAMES", "RANDARRAY"), SC_OPCODE_RANDARRAY }, { {}, -1 } }; diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx index 0f75df5cc184..3157e767c5aa 100644 --- a/formula/source/core/api/FormulaCompiler.cxx +++ b/formula/source/core/api/FormulaCompiler.cxx @@ -1171,6 +1171,8 @@ bool FormulaCompiler::IsOpCodeVolatile( OpCode eOp ) case ocOffset: // ocDebugVar shows internal value that may change as the internal state changes. case ocDebugVar: + // ocRandArray is a volatile function. + case ocRandArray: bRet = true; break; default: @@ -1234,6 +1236,7 @@ bool FormulaCompiler::IsMatrixFunction( OpCode eOpCode ) case ocFilter : case ocSort : case ocSortBy : + case ocRandArray : return true; default: { |