diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-20 14:24:53 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-20 14:24:53 +0530 |
commit | ae63688db8cb7de8643845bdd5880cc50bf927f7 (patch) | |
tree | 25dd7c326e918eae62cb1032d5eb2c2ef3d384ab | |
parent | bebc1dc859192d7fdcfc53e550cbf51343f4375a (diff) | |
parent | 95bebb9945de2bd51e4d2aa3b49032c2dfcaa3ad (diff) | |
download | servo-ae63688db8cb7de8643845bdd5880cc50bf927f7.tar.gz servo-ae63688db8cb7de8643845bdd5880cc50bf927f7.zip |
Auto merge of #10745 - zakorgy:refaktor, r=nox
Remove extra definition of WHITESPACE under components/util/str.rs
issue: #10709
found another ``` const WHITESPACE: &'static [char] = &['\t', '\n', '\r', ' ']; ``` in ```components/style/viewports.rs ``` maybe this could be replaced too with the ```util::str::HTML_SPACE_CHARACTERS```
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10745)
<!-- Reviewable:end -->
-rw-r--r-- | components/script/dom/htmlfontelement.rs | 4 | ||||
-rw-r--r-- | components/style/attr.rs | 6 | ||||
-rw-r--r-- | components/util/str.rs | 22 |
3 files changed, 14 insertions, 18 deletions
diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index ae274411040..d898a5840b2 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -15,7 +15,7 @@ use dom::node::Node; use dom::virtualmethods::VirtualMethods; use string_cache::Atom; use style::values::specified; -use util::str::{DOMString, WHITESPACE, read_numbers}; +use util::str::{DOMString, HTML_SPACE_CHARACTERS, read_numbers}; #[dom_struct] pub struct HTMLFontElement { @@ -124,7 +124,7 @@ pub fn parse_legacy_font_size(mut input: &str) -> Option<&'static str> { // Steps 1 & 2 are not relevant // Step 3 - input = input.trim_matches(WHITESPACE); + input = input.trim_matches(HTML_SPACE_CHARACTERS); enum ParseMode { RelativePlus, diff --git a/components/style/attr.rs b/components/style/attr.rs index 67d40750557..43652c3dc8a 100644 --- a/components/style/attr.rs +++ b/components/style/attr.rs @@ -11,7 +11,7 @@ use std::ops::Deref; use std::str::FromStr; use string_cache::{Atom, Namespace}; use url::Url; -use util::str::{DOMString, LengthOrPercentageOrAuto, HTML_SPACE_CHARACTERS, WHITESPACE}; +use util::str::{DOMString, LengthOrPercentageOrAuto, HTML_SPACE_CHARACTERS}; use util::str::{read_numbers, split_html_space_chars, str_join}; use values::specified::{Length}; @@ -279,7 +279,7 @@ pub fn parse_legacy_color(mut input: &str) -> Result<RGBA, ()> { } // Step 3. - input = input.trim_matches(WHITESPACE); + input = input.trim_matches(HTML_SPACE_CHARACTERS); // Step 4. if input.eq_ignore_ascii_case("transparent") { @@ -407,7 +407,7 @@ pub fn parse_length(mut value: &str) -> LengthOrPercentageOrAuto { // Steps 1 & 2 are not relevant // Step 3 - value = value.trim_left_matches(WHITESPACE); + value = value.trim_left_matches(HTML_SPACE_CHARACTERS); // Step 4 if value.is_empty() { diff --git a/components/util/str.rs b/components/util/str.rs index e7aa933cecf..b0a3d6c2c9e 100644 --- a/components/util/str.rs +++ b/components/util/str.rs @@ -124,19 +124,6 @@ impl Extend<char> for DOMString { pub type StaticCharVec = &'static [char]; pub type StaticStringVec = &'static [&'static str]; -/// Whitespace as defined by HTML5 § 2.4.1. -// TODO(SimonSapin) Maybe a custom Pattern can be more efficient? -pub const WHITESPACE: &'static [char] = &[' ', '\t', '\x0a', '\x0c', '\x0d']; - -pub fn is_whitespace(s: &str) -> bool { - s.chars().all(char_is_whitespace) -} - -#[inline] -pub fn char_is_whitespace(c: char) -> bool { - WHITESPACE.contains(&c) -} - /// A "space character" according to: /// /// https://html.spec.whatwg.org/multipage/#space-character @@ -148,6 +135,15 @@ pub static HTML_SPACE_CHARACTERS: StaticCharVec = &[ '\u{000d}', ]; +#[inline] +pub fn char_is_whitespace(c: char) -> bool { + HTML_SPACE_CHARACTERS.contains(&c) +} + +pub fn is_whitespace(s: &str) -> bool { + s.chars().all(char_is_whitespace) +} + pub fn split_html_space_chars<'a>(s: &'a str) -> Filter<Split<'a, StaticCharVec>, fn(&&str) -> bool> { fn not_empty(&split: &&str) -> bool { !split.is_empty() } |