midasmatterhorn
86b124fca6
Charts: build multi-area series from every selected area
2026-10-16 15:17:19 +03:00
Marco Arnulfo
fda8e7b703
AutoFilter: Enter in the filter menu applies the filter and closes it ( fixes #1516 )
2026-10-16 01:13:10 +02:00
Nihilist Narwhal and Claude Opus 5.5
82ee02aac4
Formula parser: Excel's 8,192-character limit and postfix nesting (never crash) ( #1330 )
...
A hostile file could abort any process that opens it: a cell formula of a
million `%` (`1%%%…`) or a 200,000-term sum parsed into trees deep enough to
overflow the stack when printed, saved, evaluated or dropped, even in release
builds. Postfix operators (`%`, invoking a result) built their nesting in a
loop that the 256-level limit did not see.
- `parse` refuses formula text longer than Excel's 8,192 characters
(`MAX_FORMULA_LEN`, counted in characters, the leading `=` excluded). This
also bounds the depth of the left-deep trees long operator chains build.
- Each postfix `%` and each call of a result counts towards the nesting limit.
- A file's formula that is refused keeps its text and cached value, as other
unparsable formulas do.
Regression tests: formula (small-stack thread: long `%`, invoke and operator
chains are errors; the limit counts characters, not bytes) and xlsx
(`hostile_formula_text_does_not_overflow_the_stack`: open, save and drop a
workbook with such formulas and a defined name on a 1 MiB stack). Both abort
with a stack overflow without the fix.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 13:39:28 -06:00
Harrison O'Connor-Hoover
79e85c1b80
fix(edit): recalculate every cell changed by large clears ( #1032 ) ( #1128 )
2026-10-15 13:38:13 -06:00
Brandon Thomas and Claude Opus 5.5
4c70a46377
i18n: Enable AutoComplete for cell values in every catalog
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 02:04:02 -04:00
Brandon Thomas
f4bd752bdc
Merge main into #848
2026-10-13 02:03:38 -04:00
Brandon Thomas
ebe0138d30
Merge main into #855
...
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-13 01:52:08 -04:00
Brandon Thomas
be003d44af
Merge main into #863
...
# Conflicts:
# crates/xlsx/src/tests/passthrough_tests.rs
2026-10-13 01:40:22 -04:00
Brandon Thomas
72e7590c8c
Merge main into #862
...
# Conflicts:
# crates/ui-egui/tests/interaction.rs
2026-10-13 01:40:11 -04:00
Brandon Thomas
08cbb69585
Merge main into #463
...
# Conflicts:
# docs/ui-parity.md
2026-10-13 01:40:00 -04:00
Brandon Thomas
80d282e7a5
Merge pull request #752 from marcoarnulfo:fix/function-excel-diffs-738
2026-10-13 01:39:44 -04:00
Brandon Thomas
5144bd5b17
Merge pull request #742 from marcoarnulfo:fix/edate-eomonth-1900
2026-10-13 01:39:43 -04:00
Brandon Thomas and Claude Opus 5.5
8108dbccc6
Fix-up: close the passthrough tests the merges left open; rustfmt
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 01:21:57 -04:00
Brandon Thomas
a2bf1b3ad5
Merge main into #854
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-13 01:17:14 -04:00
Brandon Thomas and Claude Opus 5.5
77f5799bf1
Test: drop the unused Color32 import
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 01:16:10 -04:00
Brandon Thomas and Claude Opus 5.5
99f202b18a
Tab bar: the scrollbar-reachable test checks #849 's scrollbar track; drop the unused Color32 import
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 01:13:38 -04:00
Brandon Thomas
4536bc7fc8
Merge main into #849
...
# Conflicts:
# crates/ui-egui/src/grid.rs
# crates/ui-egui/src/tabs.rs
# docs/ui-parity.md
2026-10-13 01:07:17 -04:00
Brandon Thomas and Claude Opus 5.5
afb6eca31f
Test: drive the linear-time parse check through the uncapped parser
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 01:06:20 -04:00
Brandon Thomas
be45ccab31
Merge main into #811
...
# Conflicts:
# ROADMAP.md
# crates/numfmt/src/parse.rs
# crates/numfmt/src/tests.rs
2026-10-13 01:05:45 -04:00
Brandon Thomas and Claude Opus 5.5
499bf2c0a7
Test: the uncached long TEXT() code stays under the 255-character cap
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 01:05:06 -04:00
Brandon Thomas
0c488f79b3
Merge main into #809
...
# Conflicts:
# ROADMAP.md
# crates/numfmt/src/lib.rs
# crates/numfmt/src/tests.rs
# crates/xlsx/src/tests/malformed.rs
2026-10-13 01:04:29 -04:00
Brandon Thomas
2d0a3f8a47
Merge main into #780
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/insert.rs
# crates/engine/src/tests.rs
2026-10-13 01:02:28 -04:00
Brandon Thomas
20d6923cb6
Merge main into #766
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/sheet.rs
2026-10-13 01:00:59 -04:00
Brandon Thomas
c6ab899259
Merge #824 fix-up
2026-10-13 00:57:02 -04:00
Brandon Thomas and Claude Opus 5.5
20309f6e99
Fix-up: close the Save As link test the merge left open
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 00:57:02 -04:00
Brandon Thomas
9c773166f9
Merge #594 fix-up
2026-10-13 00:55:57 -04:00
Brandon Thomas and Claude Opus 5.5
623997a19e
Fix-up: close the CSV history-name test the merge left open
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 00:55:57 -04:00
Brandon Thomas
9972a75f10
Merge main into #824
...
# Conflicts:
# crates/engine/src/cmd/file.rs
# crates/engine/src/tests.rs
# crates/xlsx/src/tests/passthrough_tests.rs
2026-10-13 00:53:41 -04:00
Brandon Thomas
b3ad57982e
Merge main into #830
...
# Conflicts:
# crates/ui-egui/src/ribbon.rs
2026-10-13 00:53:05 -04:00
Brandon Thomas
3c4556bb04
Merge main into #856
...
# Conflicts:
# ROADMAP.md
# crates/model/src/lib.rs
# crates/xlsx/src/tests/passthrough_tests.rs
# docs/file-format-parity.md
2026-10-13 00:52:57 -04:00
Bryan Mark and Claude Opus 5.5
b112b56424
Merge branch 'main' into recent-modified
...
Brings the branch up to upstream's main (180 more commits). One conflict,
and one thing the merge needed that was no conflict:
- docs/ui-parity.md: every line of both sides is kept, as upstream's own
merges keep them (its heading has three lines now); this change's
heading line and history row come first.
- crates/ui-egui/src/i18n/pt.rs: upstream's Portuguese catalog gained a
"Yesterday" of its own, with the same word ("Ontem"). The one this change
added is left out: a second arm for the same text is unreachable.
Gate: all eight steps, 1548 tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 13:50:13 +09:00
Brandon Thomas
cc0b7c18d1
Merge main into #600
...
# Conflicts:
# crates/calc/src/eval.rs
2026-10-13 00:49:39 -04:00
Brandon Thomas
fe26486eb5
Merge main into #690
...
# Conflicts:
# crates/ui-egui/src/grid.rs
# docs/ui-parity.md
2026-10-13 00:48:41 -04:00
Brandon Thomas
0068c8f517
Merge main into #649
...
# Conflicts:
# crates/ui-egui/src/grid.rs
2026-10-13 00:48:39 -04:00
Brandon Thomas
b464a7f242
Merge main into #594
...
# Conflicts:
# crates/engine/src/io.rs
2026-10-13 00:48:36 -04:00
Brandon Thomas
c888e81d71
Merge main into #593
...
# Conflicts:
# crates/functions/src/text.rs
2026-10-13 00:48:34 -04:00
Brandon Thomas
2f33d43546
Merge main into #591
...
# Conflicts:
# crates/engine/src/cmd/data.rs
2026-10-13 00:41:59 -04:00
Brandon Thomas and Claude Opus 5.5
6405b00cf7
Fix-up: repair test files after merging the conflicting PRs
...
- restore closing braces the line-level merges of side-by-side tests dropped
- new ChartData literals carry the palette field
- the filter-menu shortcut passes the row with the column
- #688 's tab tests account for #851 's All Sheets button
- Serbian margins for the ruler-margin labels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 00:34:01 -04:00
Marco Arnulfo
c7cb91ea53
Merge remote-tracking branch 'origin/main' into fix/xlsx-xml-maps
2026-10-13 06:33:03 +02:00
Marco Arnulfo
638cbab9a5
Merge remote-tracking branch 'origin/main' into fix/edate-eomonth-1900
...
# Conflicts:
# crates/functions/src/date.rs
2026-10-13 06:29:36 +02:00
Marco Arnulfo
ca8fc73281
Merge remote-tracking branch 'origin/main' into fix/function-excel-diffs-738
...
# Conflicts:
# crates/calc/src/eval.rs
2026-10-13 06:29:34 +02:00
Marco Arnulfo
6de9cfe4e1
Merge remote-tracking branch 'origin/main' into fix/pivot-fields-pane-i18n
2026-10-13 06:24:55 +02:00
Marco Arnulfo
13bc5ecd11
Merge remote-tracking branch 'origin/main' into feat/cell-autocomplete
2026-10-13 06:21:58 +02:00
Brandon Thomas
94ee7efdf9
Merge main into #853
...
# Conflicts:
# ROADMAP.md
# docs/file-format-parity.md
2026-10-13 00:08:58 -04:00
Brandon Thomas
2ea8002002
Merge main into #850
...
# Conflicts:
# crates/ui-egui/tests/clipboard.rs
2026-10-13 00:08:54 -04:00
Brandon Thomas
b2e2df3fc9
Merge main into #825
...
# Conflicts:
# crates/xlsx/src/tests/xls_tests.rs
2026-10-13 00:08:49 -04:00
Brandon Thomas
62b7ba1e49
Merge main into #823
...
# Conflicts:
# crates/xlsx/src/tests/roundtrip.rs
2026-10-13 00:08:44 -04:00
Brandon Thomas
49cb977a73
Merge main into #815
...
# Conflicts:
# ROADMAP.md
# crates/pdf/src/tests.rs
2026-10-13 00:08:40 -04:00
Brandon Thomas
5055373149
Merge main into #814
...
# Conflicts:
# ROADMAP.md
2026-10-13 00:08:36 -04:00
Brandon Thomas
d9e13a953f
Merge main into #808
...
# Conflicts:
# ROADMAP.md
2026-10-13 00:08:30 -04:00