office-gobmx/sc
Eike Rathke c5ddccf737 Twice uppercase is one too much
In both cases if ToUpperAsciiOrI18nIsAscii() returned
bAsciiUpper=true or the pCharClass->uppercase() was executed and
its CharClass locale differs from ScGlobal::getCharClass(), the
ScGlobal::getCharClass().uppercase() was executed after. If
pCharClass has the same locale as ScGlobal::getCharClass()
(mbCharClassesDiffer==false) that was executed once. In any case
the result is a ScGlobal::getCharClass() locale's uppercase. Do
that only once.

Change-Id: I1928b73b35b50068f96d809d9fa0734ec80a446d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136353
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2022-06-24 11:26:11 +02:00
..
inc no need to explicitly spell out bodies of default functions 2022-06-23 21:37:54 +02:00
qa tdf#149502 sc: crash fix: Change in Table destruction 2022-06-23 15:34:02 +02:00
res/xml
sdi tdf#129674 Add GoTo Sheet command 2022-06-07 13:43:20 +02:00
source Twice uppercase is one too much 2022-06-24 11:26:11 +02:00
uiconfig/scalc tdf#69750 Preserve last used Paste Special options for next session. 2022-06-21 15:02:22 +02:00
util
workben
AllLangMoTarget_sc.mk
common_unoapi_tests.mk
CppunitTest_sc_addin_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_anchor_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_annotationobj.mk
CppunitTest_sc_annotationshapeobj.mk
CppunitTest_sc_annotationsobj.mk
CppunitTest_sc_arealinkobj.mk
CppunitTest_sc_arealinksobj.mk
CppunitTest_sc_array_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_autoformatobj.mk
CppunitTest_sc_autoformatsobj.mk
CppunitTest_sc_bugfix_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_cache_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_cellcursorobj.mk
CppunitTest_sc_cellfieldsobj.mk
CppunitTest_sc_cellformatsenumeration.mk
CppunitTest_sc_cellformatsobj.mk
CppunitTest_sc_cellobj.mk
CppunitTest_sc_cellrangeobj.mk
CppunitTest_sc_cellrangesobj.mk
CppunitTest_sc_cellsearchobj.mk
CppunitTest_sc_cellsenumeration.mk
CppunitTest_sc_cellsobj.mk
CppunitTest_sc_chart2dataprovider.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_chart_regression_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_chartobj.mk
CppunitTest_sc_chartsobj.mk
CppunitTest_sc_check_data_pilot_field.mk
CppunitTest_sc_check_data_pilot_table.mk
CppunitTest_sc_check_xcell_ranges_query.mk
CppunitTest_sc_cond_format_merge.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_consolidationdescriptorobj.mk
CppunitTest_sc_copypaste.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_core.mk
CppunitTest_sc_database_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_databaserangeobj.mk
CppunitTest_sc_databaserangesobj.mk
CppunitTest_sc_datapilotfieldgroupitemobj.mk
CppunitTest_sc_datapilotfieldgroupobj.mk
CppunitTest_sc_datapilotfieldgroupsobj.mk
CppunitTest_sc_datapilotfieldobj.mk
CppunitTest_sc_datapilotfieldsobj.mk
CppunitTest_sc_datapilotitemobj.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_datapilotitemsobj.mk
CppunitTest_sc_datapilottableobj.mk
CppunitTest_sc_datapilottablesobj.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_dataprovider.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_datatransformation.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_datetime_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_ddelinkobj.mk
CppunitTest_sc_ddelinksobj.mk
CppunitTest_sc_documentconfigurationobj.mk
CppunitTest_sc_drawpageobj.mk
CppunitTest_sc_drawpagesobj.mk
CppunitTest_sc_editfieldobj_cell.mk
CppunitTest_sc_editfieldobj_header.mk
CppunitTest_sc_filterdescriptorbase.mk
CppunitTest_sc_filters_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_financial_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_functiondescriptionobj.mk
CppunitTest_sc_functionlistobj.mk
CppunitTest_sc_functions_test_old.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_headerfieldsobj.mk
CppunitTest_sc_headerfootercontentobj.mk
CppunitTest_sc_html_export_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_importdescriptorbaseobj.mk
CppunitTest_sc_indexenumeration_cellannotationsenumeration.mk
CppunitTest_sc_indexenumeration_cellarealinksenumeration.mk
CppunitTest_sc_indexenumeration_databaserangesenumeration.mk
CppunitTest_sc_indexenumeration_datapilotfieldsenumeration.mk
CppunitTest_sc_indexenumeration_datapilotitemsenumeration.mk
CppunitTest_sc_indexenumeration_datapilottablesenumeration.mk
CppunitTest_sc_indexenumeration_ddelinksenumeration.mk
CppunitTest_sc_indexenumeration_functiondescriptionenumeration.mk
CppunitTest_sc_indexenumeration_labelrangesenumeration.mk
CppunitTest_sc_indexenumeration_namedrangesenumeration.mk
CppunitTest_sc_indexenumeration_scenariosenumeration.mk
CppunitTest_sc_indexenumeration_sheetcellrangesenumeration.mk
CppunitTest_sc_indexenumeration_sheetlinksenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetsenumeration.mk
CppunitTest_sc_indexenumeration_spreadsheetviewpanesenumeration.mk
CppunitTest_sc_indexenumeration_subtotalfieldsenumeration.mk
CppunitTest_sc_indexenumeration_tableautoformatenumeration.mk
CppunitTest_sc_indexenumeration_tablechartsenumeration.mk
CppunitTest_sc_indexenumeration_tablecolumnsenumeration.mk
CppunitTest_sc_indexenumeration_tableconditionalentryenumeration.mk
CppunitTest_sc_indexenumeration_tablerowsenumeration.mk
CppunitTest_sc_indexenumeration_textfieldenumeration.mk
CppunitTest_sc_information_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_jumbosheets_test.mk tdf#147458: sc_jumbosheets: Add unittest 2022-02-23 21:28:58 +01:00
CppunitTest_sc_labelrangeobj.mk
CppunitTest_sc_labelrangesobj.mk
CppunitTest_sc_logical_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_macros_test.mk CppunitTest_sc_macros_test: split it into two 2022-06-15 11:17:33 +02:00
CppunitTest_sc_mark_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_mathematical_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_modelobj.mk
CppunitTest_sc_namedrangeobj.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_namedrangesobj.mk
CppunitTest_sc_new_cond_format_api.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_opencl_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_outlineobj.mk
CppunitTest_sc_parallelism.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_pdf_export.mk tdf#143978: sc_pdf_export: Add unittest 2021-11-17 19:35:28 +01:00
CppunitTest_sc_perfobj.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_pivottable_filters_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_range_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_rangelst_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_recentfunctionsobj.mk
CppunitTest_sc_recordchanges.mk
CppunitTest_sc_scenariosobj.mk
CppunitTest_sc_screenshots.mk
CppunitTest_sc_shapeobj.mk
CppunitTest_sc_shapetest.mk tdf#134355 custom shapes are never on layer 'controls' in Calc 2021-02-13 18:11:44 +01:00
CppunitTest_sc_sheetlinkobj.mk
CppunitTest_sc_sheetlinksobj.mk
CppunitTest_sc_sortdescriptorbaseobj.mk
CppunitTest_sc_sparkline_test.mk sc: sparkline import/export for ODF 2022-04-04 16:22:11 +02:00
CppunitTest_sc_spreadsheet_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_spreadsheetsettings.mk
CppunitTest_sc_spreadsheetsettingsobj.mk
CppunitTest_sc_statistical_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_stylefamiliesobj.mk
CppunitTest_sc_stylefamilyobj.mk
CppunitTest_sc_styleobj.mk
CppunitTest_sc_subsequent_export_test.mk sc: do not use dashes in the file names 2021-09-01 11:28:43 +02:00
CppunitTest_sc_subsequent_export_test2.mk sc: do not use dashes in the file names 2021-09-01 11:28:43 +02:00
CppunitTest_sc_subsequent_filters_test.mk sc: do not use dashes in the file names 2021-09-01 11:28:43 +02:00
CppunitTest_sc_subsequent_filters_test2.mk sc: do not use dashes in the file names 2021-09-01 11:28:43 +02:00
CppunitTest_sc_subtotaldescriptorbase.mk
CppunitTest_sc_subtotalfieldobj.mk
CppunitTest_sc_tablecolumnobj.mk
CppunitTest_sc_tablecolumnsobj.mk remove more hardcoded sheet sizes from Calc tests 2022-03-05 08:30:59 +01:00
CppunitTest_sc_tableconditionalentryobj.mk
CppunitTest_sc_tableconditionalformat.mk
CppunitTest_sc_tablerowobj.mk
CppunitTest_sc_tablerowsobj.mk remove more hardcoded sheet sizes from Calc tests 2022-03-05 08:30:59 +01:00
CppunitTest_sc_tablesheetobj.mk remove more hardcoded sheet sizes from Calc tests 2022-03-05 08:30:59 +01:00
CppunitTest_sc_tablesheetsobj.mk
CppunitTest_sc_tablevalidationobj.mk
CppunitTest_sc_tabviewobj.mk
CppunitTest_sc_text_functions_test.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
CppunitTest_sc_tiledrendering.mk use Helper_optional SCRIPTING for libs that don't exist if --disable-scripting 2021-08-06 21:16:43 +02:00
CppunitTest_sc_ucalc.mk sc_ucalc: move formula tests to their own module 2021-05-17 17:48:19 +02:00
CppunitTest_sc_ucalc_condformat.mk sc_ucalc: move conditional format tests to their own module 2021-05-16 22:01:59 +02:00
CppunitTest_sc_ucalc_copypaste.mk sc_ucalc: move copypaste tests to their own module 2021-05-17 13:49:23 +02:00
CppunitTest_sc_ucalc_formula.mk sc_ucalc: move formula tests to their own module 2021-05-17 17:48:19 +02:00
CppunitTest_sc_ucalc_pivottable.mk sc_ucalc: Use a template for makefiles 2021-05-14 12:45:42 +02:00
CppunitTest_sc_ucalc_sharedformula.mk sc_ucalc: Use a template for makefiles 2021-05-14 12:45:42 +02:00
CppunitTest_sc_ucalc_sort.mk sc_ucalc: Use a template for makefiles 2021-05-14 12:45:42 +02:00
CppunitTest_sc_uicalc.mk tdf#149503: Check size of vectors 2022-06-10 14:02:32 +02:00
CppunitTest_sc_uniquecellformatsenumeration.mk
CppunitTest_sc_uniquecellformatsobj.mk
CppunitTest_sc_vba_macro_test.mk CppunitTest_sc_macros_test: split it into two 2022-06-15 11:17:33 +02:00
CppunitTest_sc_viewpaneobj.mk
IwyuFilter_sc.yaml Recheck modules s[a-c]* with IWYU 2022-02-14 15:25:30 +01:00
JunitTest_sc_complex.mk
JunitTest_sc_unoapi_1.mk
JunitTest_sc_unoapi_2.mk
JunitTest_sc_unoapi_3.mk
JunitTest_sc_unoapi_4.mk
JunitTest_sc_unoapi_6.mk
JunitTest_sc_unoapi_7.mk
Library_sc.mk introduce Calc cache for sorted handling of unsorted cells 2022-05-11 11:46:30 +02:00
Library_scd.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_scfilt.mk sc: Sparkline export for OOXML documents + roundtrip test 2022-04-01 12:44:05 +02:00
Library_scqahelper.mk
Library_scui.mk tdf#129674 Add GoTo Sheet command 2022-06-07 13:43:20 +02:00
Library_vbaobj.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Makefile
Module_sc.mk CppunitTest_sc_macros_test: split it into two 2022-06-15 11:17:33 +02:00
Package_opencl.mk
Package_res_xml.mk
PythonTest_sc_python.mk
README.md Updated README.md files to represent current code / use Markdown format 2021-04-07 17:47:16 +02:00
subsequent_setup.mk Avoid external processes picking up instdir/program/libnspr4.so 2021-07-21 15:27:02 +02:00
ucalc_setup.mk Separate core drawinglayer func. into drawinglayercore library 2021-12-22 12:10:10 +01:00
UIConfig_scalc.mk tdf#129674 Add GoTo Sheet command 2022-06-07 13:43:20 +02:00
UITest_autofilter.mk
UITest_autofilter2.mk sc: split UITest_autofilter in two 2021-10-28 10:35:18 +02:00
UITest_calc_dialogs.mk
UITest_calc_tests.mk
UITest_calc_tests2.mk
UITest_calc_tests3.mk
UITest_calc_tests4.mk
UITest_calc_tests6.mk
UITest_calc_tests7.mk
UITest_calc_tests8.mk
UITest_calc_tests9.mk
UITest_chart.mk
UITest_chart2.mk sc: split UITest_chart in two 2021-10-28 11:02:54 +02:00
UITest_conditional_format.mk
UITest_csv_dialog.mk uitest: sc: move csv dialog tests to their own module 2021-06-24 21:51:46 +02:00
UITest_external_links.mk uitest: sc: move external links tests to their own place 2022-03-14 15:26:38 +01:00
UITest_function_wizard.mk
UITest_goalSeek.mk
UITest_hide_cols.mk
UITest_inputLine.mk
UITest_key_f4.mk
UITest_manual_tests.mk
UITest_pageFormat.mk
UITest_pasteSpecial.mk uitest: sc: move pasteSpecial tests to their own folder 2021-07-05 14:00:41 +02:00
UITest_protect.mk
UITest_range_name.mk
UITest_sc_options.mk
UITest_search_replace.mk
UITest_signatureLine.mk
UITest_solver.mk
UITest_sort.mk
UITest_statistics.mk
UITest_textCase.mk
UITest_textToColumns.mk uitest: sc: move textToColumns tests to their own folder 2021-07-12 12:54:19 +02:00
UITest_validity.mk

Spreadsheet Application Code

You can dump some information in a dbgutil build:

Shortcuts

CTRL+SHIFT+F12

Dumps the column width of the first 20 columns.

CTRL+SHIFT+F11

Dumps the graphic objects and their position and size in pixel.

CTRL+SHIFT+F6

Dumps the SfxItemSet representing the cell properties' of the current selection as a xml file. The file will be named dump.xml

The Cache Format

ScDocument::StoreTabToCache allows storing the content (not the formatting) of a table to a binary cache format.

The format is column orientated which allows quick serialization of the table.

  • Header:

    • Number of Columns: 64 bit unsigned integer
  • Column:

    • Column Index: 64 bit unsigned integer
    • Column Size: 64 bit unsigned integer
    • For each cell type block a new ColumnBlock
  • ColumnBlock:

    • Start Row: 64 bit unsigned integer
    • Block Size: 64 bit unsigned integer
    • Type: 8 bit unsigned integer
      • 0 : empty
      • 1 : numeric
        • for each cell: 64 bit IEEE 754 double precision value
      • 2 : string
        • for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
      • 3 : formula
        • for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string

Functions Supporting Wildcards or Regular Expressions

As this comes up every now and then, and rather should be documented in an extra list of the Help system, functions that support Wildcards or Regular Expressions and depend on the setting under Tools -> Options -> Calc -> Calculate are those that in ODF OpenFormula (ODFF) are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see https://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html

  • Database Functions
    • DAVERAGE
    • DCOUNT
    • DCOUNTA
    • DGET
    • DMAX
    • DMIN
    • DPRODUCT
    • DSTDEV
    • DSTDEVP
    • DSUM
    • DVAR
    • DVARP
  • Information Functions
    • COUNTIF
    • COUNTIFS
  • Lookup Functions
    • HLOOKUP
    • LOOKUP
    • MATCH
    • VLOOKUP
  • Mathematical Functions
    • SUMIF
    • SUMIFS
  • Statistical Functions
    • AVERAGEIF
    • AVERAGEIFS
  • Text Functions
    • SEARCH