Mex
10849d5003
fix(functions): reject negative fractions in GCD and LCM ( #2072 )
...
* M0: reject negative fractional GCD and LCM arguments
Validate the original input before truncation. Add scalar and range regressions, including signed zero, positive fractions and zero-first LCM validation.
* M0: document negative-fraction GCD and LCM regression
Record tested edge-case behavior and update the parity revision history. Function counts and readiness estimates remain unchanged.
* M0: preserve GCD and LCM regression after math test extraction
Move the original negative-fraction regression into the existing extracted math tests. Scalar and range cases, zero-first validation, signed zero and positive truncation coverage are unchanged.
2026-11-14 16:51:29 +01:00
gyurix
494b830240
Linux: the title bar carries the window controls, as in Excel ( #192 )
2026-11-14 16:48:20 +01:00
Zinadin Zidan
40783ab184
functions: ACCRINTM accrues zero when issue equals settlement ( #4096 ) ( #4102 )
...
ACCRINTM returned #NUM! whenever issue >= settlement. Excel rejects only
an issue date after settlement: when the two dates are equal after
truncation to whole days (including distinct times on the same day) it
returns 0 in every basis and both date systems. Relax the guard to
issue > settle; zero rate, zero par and an invalid basis stay #NUM!.
2026-11-14 15:22:59 +01:00
FredApps
c0ee120ac2
Merge pull request #1140 from vangel76/perf/chart-frame-cache
...
Charts: resolved data and rendering are cached between frames (#1139 )
2026-11-12 19:55:40 +01:00
Codex
bf76e6e63b
test: keep ref-edit three-sheet check clippy-clean
2026-11-12 19:41:19 +01:00
Codex
467d36a9c8
Merge main after PDF cleanup; retain both roadmap entries
2026-11-12 19:30:40 +01:00
FredApps
efc11acede
Merge pull request #818 from vangel76/perf/pdf-writer-cleanup
...
PDF: writer cleanup, q nesting limit, image dedupe, style only on change (#816 )
2026-11-12 18:59:02 +01:00
Codex
0c5436de76
Merge main into chart frame cache; preserve both roadmap entries
2026-11-12 18:13:44 +01:00
Codex
ce0beb6900
Merge main into PDF writer cleanup; preserve both roadmap entries
2026-11-12 18:13:44 +01:00
FredApps
a60db4f1c7
Merge pull request #3323 from vangel76/fix/linest-qr
...
LINEST, LOGEST, TREND, GROWTH: solve by Householder QR (#3322 )
2026-11-12 17:59:31 +01:00
FredApps
a3366cff65
Merge pull request #1135 from vangel76/fix/group-resize-on-release-1082
...
Grid: resizing several selected columns applies the width on release (#1082 )
2026-11-12 17:58:46 +01:00
FredApps
591b8354f2
Merge pull request #3624 from vangel76/fix/3619-merged-shift-enter
...
Shift+arrows, Enter and Tab no longer get stuck on a merged cell
2026-11-12 17:57:39 +01:00
FredApps
0b31cebe5d
Merge pull request #789 from vangel76/feat/wordart-784
...
Insert: WordArt (insert.wordArt) (#784 )
2026-11-12 17:56:55 +01:00
Dylan M. Taylor
37941f0624
Merge pull request #3844 from storytold/switch-craft-libs-xls-dv
...
xlsx: .xls data validation from craft-xls
2026-11-12 01:43:22 -05:00
Dylan M. Taylor
b1bd8d8b20
share legacy XLS test helpers
2026-11-12 06:29:50 +00:00
Dylan M. Taylor
794b65ecac
fix XLS validation warnings
2026-11-12 06:13:59 +00:00
Dylan M. Taylor
6308fc9edb
Merge pull request #3843 from storytold/switch-craft-libs-opc
...
xlsx: OPC packages through craft-opc; craft-libs at aa84415b
2026-11-12 01:10:14 -05:00
Dylan M. Taylor
48659c1668
Merge pull request #3842 from storytold/switch-craft-libs-offcrypto
...
xlsx: encrypted workbooks through craft-offcrypto and craft-cfb
2026-11-12 01:09:49 -05:00
Dylan M. Taylor
e8845f648a
Merge pull request #3841 from storytold/switch-craft-libs-csv
...
xlsx, engine: CSV and SYLK through craft-csv
2026-11-12 01:09:16 -05:00
Dylan M. Taylor
3858482465
Merge pull request #3840 from storytold/switch-craft-libs-xls
...
xlsx: read .xls through craft-xls
2026-11-12 01:00:41 -05:00
Dylan M. Taylor
73a18c4f4c
Merge remote-tracking branch 'origin/switch-craft-libs-opc' into codex/reviewfix-3844
2026-11-12 05:41:20 +00:00
Dylan M. Taylor
0b4b36b865
Merge remote-tracking branch 'origin/switch-craft-libs-offcrypto' into codex/reviewfix-3843
2026-11-12 05:41:13 +00:00
Dylan M. Taylor
4251dad939
Merge remote-tracking branch 'origin/switch-craft-libs-csv' into codex/reviewfix-3842
2026-11-12 05:41:06 +00:00
Dylan M. Taylor
1b7e4f00dc
Merge remote-tracking branch 'origin/switch-craft-libs-xls' into codex/reviewfix-3841
2026-11-12 05:40:59 +00:00
Dylan M. Taylor
4deedbb549
warn about dropped XLS rules
2026-11-12 05:40:53 +00:00
Dylan M. Taylor
8d4fb0b12e
Merge remote-tracking branch 'origin/switch-craft-libs-opc' into codex/propagate-3844
2026-11-12 05:37:34 +00:00
Dylan M. Taylor
203872b4db
Merge remote-tracking branch 'origin/switch-craft-libs-offcrypto' into codex/propagate-3843
2026-11-12 05:37:27 +00:00
Dylan M. Taylor
d3954beacf
Merge remote-tracking branch 'origin/switch-craft-libs-csv' into codex/propagate-3842
2026-11-12 05:37:21 +00:00
Dylan M. Taylor
26e7112e0f
Merge remote-tracking branch 'origin/switch-craft-libs-xls' into codex/propagate-3840
2026-11-12 05:37:12 +00:00
Dylan M. Taylor
3d31729de3
test(xls): expect malformed encryption error
2026-11-12 05:36:34 +00:00
Dylan M. Taylor
3ba4945e72
GridCraft: use shared XLS validation operator type
2026-11-12 05:24:28 +00:00
Dylan M. Taylor
0752f3181b
Merge current OPC switch into XLS validation switch
2026-11-12 05:20:25 +00:00
Dylan M. Taylor
b24ec5df6d
Merge current encrypted workbook switch into OPC switch
2026-11-12 05:19:49 +00:00
Dylan M. Taylor
d0c567992e
Merge current CSV switch into encrypted workbook switch
2026-11-12 05:18:19 +00:00
Dylan M. Taylor
1c84e32f58
GridCraft: update XLS validation switch to current shared crates
2026-11-12 05:16:38 +00:00
Dylan M. Taylor
cf3b11c858
Merge remote-tracking branch 'origin/switch-craft-libs-opc' into codex/gridcraft-3844
2026-11-12 05:16:08 +00:00
Dylan M. Taylor
1e6c8b8b72
Merge remote-tracking branch 'origin/switch-craft-libs-opc' into codex/gridcraft-3843
2026-11-12 05:15:57 +00:00
Dylan M. Taylor
3e0f073e9a
GridCraft: update OPC switch to current shared crates
2026-11-12 05:15:56 +00:00
Dylan M. Taylor
eec5db66f0
Merge remote-tracking branch 'origin/switch-craft-libs-offcrypto' into codex/gridcraft-3843
2026-11-12 05:15:18 +00:00
Dylan M. Taylor
a440cfac28
Merge remote-tracking branch 'origin/switch-craft-libs-offcrypto' into codex/gridcraft-3842
2026-11-12 05:14:54 +00:00
Dylan M. Taylor
92a79db048
GridCraft: update encrypted XLS switch to current shared crates
2026-11-12 05:14:47 +00:00
Dylan M. Taylor
652c08a89b
Merge remote-tracking branch 'origin/switch-craft-libs-csv' into codex/gridcraft-3842
2026-11-12 05:14:07 +00:00
Dylan M. Taylor
aeb3fb19ce
Merge latest CSV branch updates
2026-11-12 05:13:54 +00:00
Dylan M. Taylor
e4ec0d7ed1
GridCraft: update CSV switch to current shared crates
2026-11-12 05:13:10 +00:00
Dylan M. Taylor
23487b0cb5
Merge current XLS switch into CSV switch
2026-11-12 05:12:51 +00:00
Dylan M. Taylor
0407b63663
GridCraft: update XLS import to current shared crate
2026-11-12 05:11:53 +00:00
Dylan M. Taylor
b45698d109
tests: give the xls fixture its compound-file byte order mark
...
craft-cfb refuses a header without the 0xFFFE mark at offset 28
([MS-CFB] 2.2), so craft-xls's sniff called the fixture LegacyBinary.
The old hand-written parser never read that field, which is why the test
only broke with the switch. The fixture is a real workbook otherwise:
sniff now says Xls and read_xls parses it.
2026-11-12 05:08:22 +00:00
Dylan M. Taylor
c913bf6615
tests: give the xls fixture its compound-file byte order mark
...
craft-cfb refuses a header without the 0xFFFE mark at offset 28
([MS-CFB] 2.2), so craft-xls's sniff called the fixture LegacyBinary.
The old hand-written parser never read that field, which is why the test
only broke with the switch. The fixture is a real workbook otherwise:
sniff now says Xls and read_xls parses it.
2026-11-12 05:08:20 +00:00
Dylan M. Taylor
1bd4ca8946
Test xls import with a valid compound file header
2026-11-12 05:05:01 +00:00
Dylan M. Taylor
0431741359
tests: give the xls fixture its compound-file byte order mark
...
craft-cfb refuses a header without the 0xFFFE mark at offset 28
([MS-CFB] 2.2), so craft-xls's sniff called the fixture LegacyBinary.
The old hand-written parser never read that field, which is why the test
only broke with the switch. The fixture is a real workbook otherwise:
sniff now says Xls and read_xls parses it.
2026-11-12 04:37:07 +00:00