Fixed
- Sheet-qualified ranges are accepted (#30) — reported by @braklo.
parse_range_stringhad no room for a sheet prefix, soSummary.D4:D6and every variant were rejected outright and no Calc tool could address anything but the active sheet. Cross-sheet work had to route throughswitch_sheet, a stateful operation that moves the active sheet under the user, and a chart could not be built over data sitting on a data sheet — the ordinary workbook layout. All four syntaxes now resolve:Sheet1.A1:C5,'Sheet One'.A1,Sheet1!A1,'Sheet One'!A1. Supported bycalc_read_range,calc_write_range,calc_clear_range,calc_commentandcalc_chart; a prefix wins oversheet_name, and disagreeing between the two is an error rather than a silent choice - Sheet names are no longer upper-cased in errors (#30) — the parser upper-cased the whole reference, so a sheet called
Summarywas reported back asSUMMARY. Only the address part is normalised now, and an unknown sheet lists the ones that exist - Invalid Calc input no longer logs as an error — an unknown sheet or a malformed address is the caller's mistake, not a fault, and logging it at ERROR buried the real ones