And then you have maybe 5 colors (fg, bg, underline, other decoration, shadow), plus plenty of other non-color properties. Appending all of them can easily result in way more than 80 bytes.
There are two different ways to set two CSI properties. You can separate them by a ;, or you can close the CSI and start a new one.
Please either make both of them fully supported (meaning that the supported length has to be large enough to parse escape sequences that set all the properties, including a reasonable amount of future extensions) (clearly 80 is way too low for this, maybe 1000 could work), or get rid of one of the modes and mandate that CSI is always closed and reopened.
Offering two syntaxes, one of which always works, the other of which works most of the time, is asking for trouble. If the feature will get widespred then I guarantee there will be software that automatically emits these attributes using the ; concatenation, and under extreme conditions (too many attributes change at once) some parsers won't be able to handle the result. Please design a robust ecosystem, not one that might easily break if a user tampers with too many attributes at once.
You also say
For APC/DCS/OSC/PM/SOS control sequences/strings, a limit of 100 characters is reasonable, except
that for say graphic drawing commands
I'd prefer you also mentioned URLs (hyperlink targets) here.
You say
I disagree here.
As already pointed out at https://github.com/kent-karlsson/control/issues/1#issuecomment-1383764892, a single color specification could easily take up 18 bytes. More if you allow higher color depth (#8), or start using the color-space-id parameter, or such.
And then you have maybe 5 colors (fg, bg, underline, other decoration, shadow), plus plenty of other non-color properties. Appending all of them can easily result in way more than 80 bytes.
There are two different ways to set two CSI properties. You can separate them by a
;
, or you can close the CSI and start a new one.Please either make both of them fully supported (meaning that the supported length has to be large enough to parse escape sequences that set all the properties, including a reasonable amount of future extensions) (clearly 80 is way too low for this, maybe 1000 could work), or get rid of one of the modes and mandate that CSI is always closed and reopened.
Offering two syntaxes, one of which always works, the other of which works most of the time, is asking for trouble. If the feature will get widespred then I guarantee there will be software that automatically emits these attributes using the
;
concatenation, and under extreme conditions (too many attributes change at once) some parsers won't be able to handle the result. Please design a robust ecosystem, not one that might easily break if a user tampers with too many attributes at once.You also say
I'd prefer you also mentioned URLs (hyperlink targets) here.