mirror of
https://github.com/servo/servo.git
synced 2025-06-19 06:38:59 +01:00
Fix: whitespace is considered as spaces(U+0020), tabs(U+0009), and line breaks(U+000D U+000A)
This commit is contained in:
parent
327e1e20a9
commit
ab589403ed
3 changed files with 9 additions and 6 deletions
|
@ -22,7 +22,7 @@ use servo_util::geometry::Au;
|
|||
use servo_util::geometry;
|
||||
use servo_util::range::*;
|
||||
use servo_util::namespace;
|
||||
use servo_util::str::is_whitespace_not_nbsp;
|
||||
use servo_util::str::is_whitespace;
|
||||
|
||||
use std::cast;
|
||||
use std::cell::RefCell;
|
||||
|
@ -1429,7 +1429,7 @@ impl Box {
|
|||
/// Returns true if this box is an unscanned text box that consists entirely of whitespace.
|
||||
pub fn is_whitespace_only(&self) -> bool {
|
||||
match self.specific {
|
||||
UnscannedTextBox(ref text_box_info) => is_whitespace_not_nbsp(text_box_info.text),
|
||||
UnscannedTextBox(ref text_box_info) => is_whitespace(text_box_info.text),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ use style::ComputedValues;
|
|||
use servo_util::namespace;
|
||||
use servo_util::url::parse_url;
|
||||
use servo_util::url::is_image_data;
|
||||
use servo_util::str::is_whitespace_not_nbsp;
|
||||
use servo_util::str::is_whitespace;
|
||||
|
||||
use extra::url::Url;
|
||||
use extra::arc::Arc;
|
||||
|
@ -725,7 +725,7 @@ impl<'ln> NodeUtils for ThreadSafeLayoutNode<'ln> {
|
|||
match self.type_id() {
|
||||
TextNodeTypeId => {
|
||||
unsafe {
|
||||
if !self.with_text(|text| is_whitespace_not_nbsp(text.characterdata.data)) {
|
||||
if !self.with_text(|text| is_whitespace(text.characterdata.data)) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,9 @@ pub fn null_str_as_empty_ref<'a>(s: &'a Option<DOMString>) -> &'a str {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn is_whitespace_not_nbsp(s: &str) -> bool {
|
||||
s.chars().all(|c| c.is_whitespace() && c != '\xa0')
|
||||
pub fn is_whitespace(s: &str) -> bool {
|
||||
s.chars().all(|c| match c {
|
||||
'\u0020' | '\u0009' | '\u000D' | '\u000A' => true,
|
||||
_ => false
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue