Split/editor core - #374
Merged
Merged
Conversation
…anch Right-anchor handling through resize and rotation, the ^GFA decoder (fill semantics pinned against the printer raster, bounded decode), HRI zones, GS1 and parser fixes, plus the shared edit pipeline in core.
… C at b Our own encoder writes counts past the documented 1..99999, so gating the grammar on it silently emptied every full-size graphic; the render budgets stay where they are spent. And c only stands in for b uncompressed, never for the compressed format, where it outruns the payload and voids the overhang scan.
…ip backtracking The band is now module-width only (Labelary-measured), so the headless kernel and the canvas cannot answer differently; the line-wrap strip is a linear scan in the parser helpers, where the regex it replaces cost 114s at 8000 breaks.
The guard has been rebuilt several times and each rebuild closed one shape while opening another; one corpus makes that visible in a single run.
…hless block as plain A graphic whose bytes cannot be written no longer silences every later object sharing its path. And a declared block with no width resolves to normal in the one mode source, so the renderer, the bounds and the anchor stop disagreeing.
…t raster The guard scans a whole payload and objectBoundsDots reaches it several times per leaf per frame; the answer is now cached on the props object, which is replaced exactly when it can change. Preflight asks whether an upload can be written instead of rasterising one to find out. Plus a decode assertion that can actually fail.
It dropped the ^TB and blockHeight from the emit while blockExtentFor, which reads props.textMode raw, still shifted the anchor by the block extent: silent ZPL loss for a divergence whose root is rightAnchorBoxWidthDots returning 0 for "width unknown".
toZPL fell back to a fresh encode when the cache could not ship while the ~DY preamble just dropped the upload, leaving its ^XG recalling a file nobody sent. Both now ask shippableGfa.
A zero shift states something about the field, an absent width states something about the caller, and one value meant both: a multi-resize projected an unmeasured right-justified leaf in the wrong space and persisted it. The type now forces each caller to say which it means.
Two callers discharged the unknown width with ?? 0, which shows the conflation without resolving it. The renderer, the forward transform and its inverse now read one helper that says an unmeasurable width draws unshifted.
Labelary: omitting b renders identically, omitting c produces no label at all because the firmware never learns where the graphic ends. So a c-less header is unusable everywhere instead of each consumer guessing, and the binary scan cuts at c (the graphic size the spec names) rather than at b.
Cuts 39 over-long blocks to the 1-3 line cap and the em dashes. Also drops the duplicated row cap and EncodeEnv.mode, which no caller ever set.
The canvas encoded the raw (AI)value content, so parens and a single FNC1 that never reach the wire could push the symbol to the next size.
A ^XG field kept its inline rotation, which gated the byte resolution: the ~DY upload dropped while the ^XG depending on it still shipped, silently.
The commit projects a right-anchored field's ink edge while the live preview projected its model anchor, so the object jumped by shift*(1-f) on release.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.