rev 2025 -- Wess bug fixes.
(1 file, 3kb)
! In some situations, calling @if/@endif in CSS code would crash Wedge. After a painful debugging session, I discovered that I could either force php.ini's pcre.recursion_limit to something sensible in Windows (which was compiled to have a very small recursion stack, unlike Linux versions) and then use preg_last_error() to catch recursion errors, or... I could simply use my Goddess of All Regex trick. That's the name I gave (in reference to one of Karl's expressions) to the atomic grouping hack that I cooked up something like 5 years ago, and that sealed my descent into the abyss of PHP programming and regex madness. That's it: turning a simple '(?:' into '(?>' was enough to make Wess behave. I considered using it in the @is handling code path as well, but it's probably useless because inline code is generally extremely short and doesn't suffer from backtracking issues. (Class-CSS.php)
! Opera 12.1+ supports the new flex model, but it's buggy. To be specific, sometimes divs will overflow out of their defined boundaries, and I couldn't find any workarounds for that, unlike Firefox and Chrome quirks I met during development. Because I'm now using a Chrome fork as my main browser, and my beloved Opera will switch to WebKit later this year, I don't think it's worth the hassle, so I'm removing Opera from the list of browsers aliases by the 'can_flex' constant. (Class-CSS.php)
(1 file, 3kb)
! In some situations, calling @if/@endif in CSS code would crash Wedge. After a painful debugging session, I discovered that I could either force php.ini's pcre.recursion_limit to something sensible in Windows (which was compiled to have a very small recursion stack, unlike Linux versions) and then use preg_last_error() to catch recursion errors, or... I could simply use my Goddess of All Regex trick. That's the name I gave (in reference to one of Karl's expressions) to the atomic grouping hack that I cooked up something like 5 years ago, and that sealed my descent into the abyss of PHP programming and regex madness. That's it: turning a simple '(?:' into '(?>' was enough to make Wess behave. I considered using it in the @is handling code path as well, but it's probably useless because inline code is generally extremely short and doesn't suffer from backtracking issues. (Class-CSS.php)
! Opera 12.1+ supports the new flex model, but it's buggy. To be specific, sometimes divs will overflow out of their defined boundaries, and I couldn't find any workarounds for that, unlike Firefox and Chrome quirks I met during development. Because I'm now using a Chrome fork as my main browser, and my beloved Opera will switch to WebKit later this year, I don't think it's worth the hassle, so I'm removing Opera from the list of browsers aliases by the 'can_flex' constant. (Class-CSS.php)


