about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2024-07-22 09:49:49 -0700
committerMichael Howell <michael@notriddle.com>2024-07-29 10:31:02 -0700
commitac303df4e21eabfbf692f2d1959f7403f4887a31 (patch)
tree0ccca9cd60ff09f8a52b07be898f854c7ebdaeac
parent3bf8bcfbe0ebd9527a8ec107c83085cd2d4d6ec1 (diff)
rustdoc: move the wbr after the underscore, instead of before
-rw-r--r--src/librustdoc/html/escape.rs8
-rw-r--r--src/librustdoc/html/escape/tests.rs8
-rw-r--r--tests/rustdoc/item-desc-list-at-start.item-table.html2
3 files changed, 9 insertions, 9 deletions
diff --git a/src/librustdoc/html/escape.rs b/src/librustdoc/html/escape.rs
index f8199cd6e0e..691f86847b5 100644
--- a/src/librustdoc/html/escape.rs
+++ b/src/librustdoc/html/escape.rs
@@ -108,13 +108,13 @@ impl<'a> fmt::Display for EscapeBodyTextWithWbr<'a> {
                 || pk.map_or(true, |(_, t)| t.chars().any(|c| c.is_uppercase()));
             let next_is_underscore = || pk.map_or(true, |(_, t)| t.contains('_'));
             let next_is_colon = || pk.map_or(true, |(_, t)| t.contains(':'));
-            if (i - last > 3 && is_uppercase() && !next_is_uppercase())
-                || (s.contains('_') && !next_is_underscore())
-            {
+            if i - last > 3 && is_uppercase() && !next_is_uppercase() {
                 EscapeBodyText(&text[last..i]).fmt(fmt)?;
                 fmt.write_str("<wbr>")?;
                 last = i;
-            } else if s.contains(':') && !next_is_colon() {
+            } else if (s.contains(':') && !next_is_colon())
+                || (s.contains('_') && !next_is_underscore())
+            {
                 EscapeBodyText(&text[last..i + 1]).fmt(fmt)?;
                 fmt.write_str("<wbr>")?;
                 last = i + 1;
diff --git a/src/librustdoc/html/escape/tests.rs b/src/librustdoc/html/escape/tests.rs
index e2d81cf5c27..a09649e9e18 100644
--- a/src/librustdoc/html/escape/tests.rs
+++ b/src/librustdoc/html/escape/tests.rs
@@ -14,16 +14,16 @@ fn escape_body_text_with_wbr() {
     assert_eq!(&E("           ").to_string(), "           ");
     // real(istic) examples
     assert_eq!(&E("FirstSecond").to_string(), "First<wbr>Second");
-    assert_eq!(&E("First_Second").to_string(), "First<wbr>_Second");
+    assert_eq!(&E("First_Second").to_string(), "First_<wbr>Second");
     assert_eq!(&E("First Second").to_string(), "First Second");
     assert_eq!(&E("First HSecond").to_string(), "First HSecond");
     assert_eq!(&E("First HTTPSecond").to_string(), "First HTTP<wbr>Second");
     assert_eq!(&E("First SecondThird").to_string(), "First Second<wbr>Third");
-    assert_eq!(&E("First<T>_Second").to_string(), "First&lt;<wbr>T&gt;<wbr>_Second");
-    assert_eq!(&E("first_second").to_string(), "first<wbr>_second");
+    assert_eq!(&E("First<T>_Second").to_string(), "First&lt;<wbr>T&gt;_<wbr>Second");
+    assert_eq!(&E("first_second").to_string(), "first_<wbr>second");
     assert_eq!(&E("first:second").to_string(), "first:<wbr>second");
     assert_eq!(&E("first::second").to_string(), "first::<wbr>second");
-    assert_eq!(&E("MY_CONSTANT").to_string(), "MY<wbr>_CONSTANT");
+    assert_eq!(&E("MY_CONSTANT").to_string(), "MY_<wbr>CONSTANT");
     // a string won't get wrapped if it's less than 8 bytes
     assert_eq!(&E("HashSet").to_string(), "HashSet");
     // an individual word won't get wrapped if it's less than 4 bytes
diff --git a/tests/rustdoc/item-desc-list-at-start.item-table.html b/tests/rustdoc/item-desc-list-at-start.item-table.html
index ab8b1508b55..cff4f816529 100644
--- a/tests/rustdoc/item-desc-list-at-start.item-table.html
+++ b/tests/rustdoc/item-desc-list-at-start.item-table.html
@@ -1 +1 @@
-<ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.MY_CONSTANT.html" title="constant item_desc_list_at_start::MY_CONSTANT">MY<wbr />_CONSTANT</a></div><div class="desc docblock-short">Groups: <code>SamplePatternSGIS</code>, <code>SamplePatternEXT</code></div></li></ul>
\ No newline at end of file
+<ul class="item-table"><li><div class="item-name"><a class="constant" href="constant.MY_CONSTANT.html" title="constant item_desc_list_at_start::MY_CONSTANT">MY_<wbr />CONSTANT</a></div><div class="desc docblock-short">Groups: <code>SamplePatternSGIS</code>, <code>SamplePatternEXT</code></div></li></ul>
\ No newline at end of file