1.5.3: shared-menu 1.2.2, and run the glyph style instead of reading it
678f1f03 is withdrawn. It hard-coded the icon box at 36x34, and WordPress declares that parent three times with different sizes — 36x34 open, 35x30 folded, 34x30 under 960px — so a fixed number is correct in one state and 4px too tall in the two a laptop is usually in. cache-manager measured where the ink lands rather than where the box is and found it worse than that: the glyph moved from 2.5px above centre to 2.5px below in the folded states, the same error mirrored, in a state that had been nearly right. 1.2.2 removes the number entirely with width/height at 100%. 1.5.2 is already published with 678f1f03, so this tree shipped the withdrawn version. Checked before anything else, because a later candidate fatalled on every admin page with "Unknown format specifier": that file was never taken here, and the published 1.5.2 emits its stylesheet cleanly — verified by running sprintf over its format string rather than reading it. So the shop is cosmetically off in folded menus, not broken. New assertion, and it is the one this round is really about: the style function is INVOKED and its output captured, rather than the source being read. The fatal that prompted it survived three sessions reading the file, a clean php -l, a clean PHPCS, and two browsers agreeing about the CSS — because every one of those was fed the stylesheet by hand rather than through the printf that produces it. A literal per-cent must be doubled in a format string, and nothing that looks at the file can see that. Proven red with that exact fault rather than an arbitrary one: undoubling the per-cent gives "ValueError: Unknown format specifier ';'". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
db5c5e33c8
commit
6a789349ec
@@ -317,6 +317,38 @@ wc_edm_is(
|
||||
isset( $wc_edm_mine[0]['colour'] ) ? $wc_edm_mine[0]['colour'] : null
|
||||
);
|
||||
|
||||
// 🔴 The style function is INVOKED, not read. A version of this file shipped
|
||||
// with `width:100%` inside a printf format string, where a literal per-cent
|
||||
// must be doubled — an uncaught ValueError on every admin page. Three sessions
|
||||
// read it, php -l was clean, PHPCS was clean, and two browsers agreed about
|
||||
// the CSS, because all of them were fed the stylesheet by hand rather than
|
||||
// through the PHP that produces it. Only running it finds this.
|
||||
if ( function_exists( 'wpmgr_menu_glyph_style' ) ) {
|
||||
$wc_edm_threw = '';
|
||||
ob_start();
|
||||
try {
|
||||
wpmgr_menu_glyph_style();
|
||||
} catch ( \Throwable $e ) {
|
||||
$wc_edm_threw = get_class( $e ) . ': ' . $e->getMessage();
|
||||
}
|
||||
$wc_edm_style = ob_get_clean();
|
||||
|
||||
wc_edm_ok(
|
||||
'emitting the menu glyph style throws nothing',
|
||||
'' === $wc_edm_threw,
|
||||
$wc_edm_threw
|
||||
);
|
||||
wc_edm_ok(
|
||||
'and what it emits is a style element carrying the glyph',
|
||||
false !== strpos( $wc_edm_style, '<style>' )
|
||||
&& false !== strpos( $wc_edm_style, '</style>' )
|
||||
&& false !== strpos( $wc_edm_style, '\\221E' ),
|
||||
'emitted: ' . substr( $wc_edm_style, 0, 120 )
|
||||
);
|
||||
} else {
|
||||
echo "::warning::wpmgr_menu_glyph_style() is not defined, so the glyph style was not exercised.\n";
|
||||
}
|
||||
|
||||
// The frozen hash of includes/shared-menu.php is asserted in ci/static.sh
|
||||
// against WPMGR_MENU_SHA in ci/plugin.conf, and deliberately NOT repeated
|
||||
// here: two copies of the same constant drift, and the one that drifts is the
|
||||
|
||||
Reference in New Issue
Block a user