The current code says:
# If this is a closing }%, try to rejoin the previous
# tokens until we get to a valid tag construct. This is
! # a bit of a hack, but it's hard to think of a better
! # way to do this without a full parse that takes % signs
! # in tag parameters into account.
It does not handle nested %{...}% tags properly, such as
%WEBLIST{"<span style=\"background-color:%VAR{\"WEBBGCOLOR\" web=$qweb}%\">..." ...}%
I am attaching to this item a patch for the current 4.0.0 release to fix this.
Included in this patch is a fix for another issue that I found annoying: a selection is set to '' rather than the current web when it was not specified in the params.
Sorry, Robert, no cigar. Your patch probably does the sensible thing and correctly address matched braces. Unfortunately I believe it also breaks compatibility with Cairo (TWiki20040904), which does
not match braces. Since "compatilibility" is a touchstone, that means we have to reproduce even the broken bits of Cairo, otherwise
TWikiApplications will break.
I went through innumerable revisions of this code to reach the current delicate level of compatibility
CC
Are there any topics that list a number of cases supported / not supported in the two scenarios, showing the interest in keeping compatibility?
--
SP
No, but there are a range of testcases in the
TestCases web and in the unit tests that must pass for compatibility to be maintained. The TWiki Mission just says "jump", it doesn't say "how high?"
CC