office-gobmx/sc
Eike Rathke 559758a352 Related: tdf#44076 do not leave cast to int to undefined behaviour
... if the double is an out-of-int-range value.

Also catch domain and pole and range errors.

Move this to it's own sc::power() function that can be reused for
example by ScMatrix::PowOp() to be congruent.

Change-Id: I88331e02e6cdfb5e1dcbf81622d3fc7ce4510478
Reviewed-on: https://gerrit.libreoffice.org/65986
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
2019-01-10 11:55:49 +01:00
..
inc Related: tdf#44076 do not leave cast to int to undefined behaviour 2019-01-10 11:55:49 +01:00
qa pass ScTokenArray around by unique_ptr 2019-01-10 11:22:25 +01:00
res/xml
sdi tdf#93005, tdf#100611, remove the incomplete ODC export feature 2018-11-30 03:17:27 +01:00
source Related: tdf#44076 do not leave cast to int to undefined behaviour 2019-01-10 11:55:49 +01:00
uiconfig/scalc Rework Data -> Statistics dialog, add WithReplacement and KeepOrder 2018-12-22 23:28:11 +01:00
util
workben
AllLangMoTarget_sc.mk
common_unoapi_tests.mk
CppunitTest_sc_addin_functions_test.mk
CppunitTest_sc_anchor_test.mk
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
CppunitTest_sc_autoformatobj.mk
CppunitTest_sc_bugfix_test.mk
CppunitTest_sc_cache_test.mk
CppunitTest_sc_cellcursorobj.mk
CppunitTest_sc_cellfieldsobj.mk tdf#45904 Move XRefreshable Java tests to C++ 2018-12-08 04:02:16 +01:00
CppunitTest_sc_cellformatsenumeration.mk tdf#45904 Move _XEnumeration tests for ScCellFormatsEnumeration to C++ 2018-11-14 17:32:04 +01:00
CppunitTest_sc_cellformatsobj.mk tdf#45904 Move XElementAccess Java tests to C++ 2018-12-05 22:20:19 +01:00
CppunitTest_sc_cellobj.mk
CppunitTest_sc_cellrangeobj.mk
CppunitTest_sc_cellrangesobj.mk
CppunitTest_sc_cellsenumeration.mk tdf#45904 Move _XEnumeration for ScCellsEnumeration to C++ 2018-11-14 03:50:27 +01:00
CppunitTest_sc_cellsobj.mk tdf#45904 Move XEnumerationAccess Java test to C++ 2018-11-30 18:15:08 +01:00
CppunitTest_sc_chart2dataprovider.mk
CppunitTest_sc_chart_regression_test.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
CppunitTest_sc_consolidationdescriptorobj.mk
CppunitTest_sc_copypaste.mk
CppunitTest_sc_core.mk
CppunitTest_sc_database_functions_test.mk
CppunitTest_sc_databaserangeobj.mk
CppunitTest_sc_databaserangesobj.mk
CppunitTest_sc_datapilotfieldobj.mk
CppunitTest_sc_datapilotitemobj.mk
CppunitTest_sc_datapilottableobj.mk
CppunitTest_sc_datapilottablesobj.mk
CppunitTest_sc_dataprovider.mk
CppunitTest_sc_datatransformation.mk
CppunitTest_sc_datetime_functions_test.mk
CppunitTest_sc_ddelinkobj.mk Fix sc_ddelinkobj tests 2018-12-13 17:17:22 +01:00
CppunitTest_sc_documentconfigurationobj.mk
CppunitTest_sc_editfieldobj_cell.mk
CppunitTest_sc_editfieldobj_header.mk
CppunitTest_sc_filterdescriptorbaseobj.mk
CppunitTest_sc_filters_test.mk
CppunitTest_sc_financial_functions_test.mk
CppunitTest_sc_functiondescriptionobj.mk
CppunitTest_sc_functionlistobj.mk
CppunitTest_sc_functions_test_old.mk
CppunitTest_sc_headerfieldsobj.mk tdf#45904 Move XRefreshable Java tests to C++ 2018-12-15 06:47:46 +01:00
CppunitTest_sc_headerfootercontentobj.mk
CppunitTest_sc_html_export_test.mk
CppunitTest_sc_importdescriptorbaseobj.mk
CppunitTest_sc_indexenumeration_cellannotationsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-19 18:04:47 +01:00
CppunitTest_sc_indexenumeration_cellarealinksenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-19 19:41:42 +01:00
CppunitTest_sc_indexenumeration_databaserangesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-19 21:54:41 +01:00
CppunitTest_sc_indexenumeration_datapilotfieldsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-18 04:57:38 +01:00
CppunitTest_sc_indexenumeration_datapilotitemsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-22 06:58:49 +01:00
CppunitTest_sc_indexenumeration_datapilottablesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-18 04:57:52 +01:00
CppunitTest_sc_indexenumeration_ddelinksenumeration.mk tdf#45904 Move XEnumeration tests to C++ 2018-11-15 02:05:27 +01:00
CppunitTest_sc_indexenumeration_functiondescriptionenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 06:53:15 +01:00
CppunitTest_sc_indexenumeration_labelrangesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-18 08:59:30 +01:00
CppunitTest_sc_indexenumeration_namedrangesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-18 22:03:38 +01:00
CppunitTest_sc_indexenumeration_scenariosenumeration.mk tdf#45904 Move XEnumeration Java test to C++ 2018-11-15 17:50:49 +01:00
CppunitTest_sc_indexenumeration_sheetcellrangesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 06:59:51 +01:00
CppunitTest_sc_indexenumeration_sheetlinksenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-18 08:05:35 +01:00
CppunitTest_sc_indexenumeration_spreadsheetsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 08:45:17 +01:00
CppunitTest_sc_indexenumeration_spreadsheetviewpanesenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 08:59:37 +01:00
CppunitTest_sc_indexenumeration_subtotalfieldsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 10:18:46 +01:00
CppunitTest_sc_indexenumeration_tableautoformatenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 07:00:02 +01:00
CppunitTest_sc_indexenumeration_tablechartsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-20 23:19:46 +01:00
CppunitTest_sc_indexenumeration_tablecolumnsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-17 00:40:34 +01:00
CppunitTest_sc_indexenumeration_tableconditionalentryenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-17 06:32:01 +01:00
CppunitTest_sc_indexenumeration_tablerowsenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-16 07:43:44 +01:00
CppunitTest_sc_indexenumeration_textfieldenumeration.mk tdf#45904 Move XEnumeration Java tests to C++ 2018-11-17 00:40:20 +01:00
CppunitTest_sc_information_functions_test.mk
CppunitTest_sc_labelrangeobj.mk
CppunitTest_sc_labelrangesobj.mk
CppunitTest_sc_logical_functions_test.mk
CppunitTest_sc_macros_test.mk
CppunitTest_sc_mark_test.mk
CppunitTest_sc_mathematical_functions_test.mk
CppunitTest_sc_modelobj.mk
CppunitTest_sc_namedrangeobj.mk
CppunitTest_sc_namedrangesobj.mk
CppunitTest_sc_new_cond_format_api.mk
CppunitTest_sc_opencl_test.mk
CppunitTest_sc_outlineobj.mk
CppunitTest_sc_parallelism.mk
CppunitTest_sc_perfobj.mk
CppunitTest_sc_pivottable_filters_test.mk
CppunitTest_sc_range_test.mk
CppunitTest_sc_rangelst_test.mk
CppunitTest_sc_recentfunctionsobj.mk
CppunitTest_sc_recordchanges.mk
CppunitTest_sc_scenariosobj.mk
CppunitTest_sc_screenshots.mk
CppunitTest_sc_shapeobj.mk
CppunitTest_sc_sheetlinkobj.mk
CppunitTest_sc_sortdescriptorbaseobj.mk
CppunitTest_sc_spreadsheet_functions_test.mk
CppunitTest_sc_spreadsheetsettings.mk
CppunitTest_sc_spreadsheetsettingsobj.mk
CppunitTest_sc_statistical_functions_test.mk
CppunitTest_sc_styleloaderobj.mk
CppunitTest_sc_subsequent_export_test.mk
CppunitTest_sc_subsequent_filters_test.mk
CppunitTest_sc_subtotaldescriptorbaseobj.mk
CppunitTest_sc_subtotalfieldobj.mk
CppunitTest_sc_tableconditionalentryobj.mk
CppunitTest_sc_tableconditionalformatobj.mk
CppunitTest_sc_tablerowsobj.mk tdf#45904 Move XIndexAccess Java tests to C++ 2018-12-19 00:32:21 +01:00
CppunitTest_sc_tablesheetobj.mk
CppunitTest_sc_tablesheetsobj.mk
CppunitTest_sc_tablevalidationobj.mk
CppunitTest_sc_tabviewobj.mk
CppunitTest_sc_text_functions_test.mk
CppunitTest_sc_tiledrendering.mk
CppunitTest_sc_ucalc.mk
CppunitTest_sc_uniquecellformatsenumeration.mk tdf#45904 Move XEnumeration tests for ScUniqueCellFormatsEnumeration to C++ 2018-11-15 06:47:49 +01:00
CppunitTest_sc_uniquecellformatsobj.mk tdf#45904 Move XElementAccess Java tests to C++ 2018-12-06 18:44:34 +01:00
CppunitTest_sc_viewpaneobj.mk
IwyuFilter_sc.yaml tdf#42949 Fix IWYU warnings in sc/source/filter/xml/*cxx 2019-01-10 09:09:06 +01:00
JunitTest_sc_complex.mk Fix many Java subsequentcheck test by using JUH 2018-11-09 07:37:50 +01:00
JunitTest_sc_unoapi_1.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
JunitTest_sc_unoapi_2.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
JunitTest_sc_unoapi_3.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
JunitTest_sc_unoapi_4.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
JunitTest_sc_unoapi_6.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
JunitTest_sc_unoapi_7.mk Simplify and fix Java UNO API test makefiles 2018-11-09 07:37:00 +01:00
Library_sc.mk Related: tdf#44076 do not leave cast to int to undefined behaviour 2019-01-10 11:55:49 +01:00
Library_scd.mk
Library_scfilt.mk
Library_scqahelper.mk
Library_scui.mk
Library_vbaobj.mk
Makefile
Module_sc.mk uitest for bug tdf#99069 2019-01-03 18:32:52 +01:00
Package_opencl.mk
Package_res_xml.mk
PythonTest_sc_python.mk
README
TODO.performance
UIConfig_scalc.mk Revert "NB tabbed compact calc: copy files to install dir" 2018-11-09 11:03:05 +01:00
UITest_autofilter.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 for bug tdf#91425 2018-12-10 19:56:01 +01:00
UITest_chart.mk uitest for bug tdf#99069 2019-01-03 18:32:52 +01:00
UITest_conditional_format.mk
UITest_goalSeek.mk
UITest_hide_cols.mk
UITest_hideShowSheet.mk uitest Calc Show sheet dialog 2018-11-16 08:22:16 +01:00
UITest_inputLine.mk uitest for bug tdf#54197 2018-10-29 21:20:37 +01:00
UITest_key_f4.mk
UITest_options.mk
UITest_protect.mk
UITest_range_name.mk
UITest_search_replace.mk uitest for bug tdf#35020 2019-01-01 14:09:00 +01:00
UITest_signatureLine.mk uitest Calc signature line 2018-10-27 19:36:21 +02:00
UITest_solver.mk
UITest_sort.mk uitest for bug tdf#49531 tdf#49520 2018-12-31 16:35:34 +01:00
UITest_statistics.mk
UITest_textCase.mk
UITest_validity.mk

Spreadsheet application code.

You can dump some information in a dbgutil build:

=== 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+F9 ===

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