diff --git a/definitions.units b/definitions.units index d5d14b7..724ebba 100644 --- a/definitions.units +++ b/definitions.units @@ -679,8 +679,8 @@ arcminute arcmin ' arcmin arcsec 1|60 arcmin arcsecond arcsec -" arcsec -'' " +#" arcsec +#'' " rightangle 90 degrees quadrant 1|4 circle quintant 1|5 circle @@ -5364,8 +5364,8 @@ röntgen roentgen ħ hbar ‰ 1|1000 ‱ 1|10000 -′ ' # U+2032 -″ " # U+2033 +#′ ' # U+2032 +#″ " # U+2033 # # Square unicode symbols starting at U+3371 diff --git a/src/gnu_units.rs b/src/gnu_units.rs index 7d7bec0..602052a 100644 --- a/src/gnu_units.rs +++ b/src/gnu_units.rs @@ -156,6 +156,21 @@ impl<'a> Iterator for TokenIterator<'a> { } Token::Number(integer, frac, exp) }, + '"' => { + let mut buf = String::new(); + while let Some(c) = self.0.next() { + if c == '\\' { + if let Some(c) = self.0.next() { + buf.push(c); + } + } else if c == '"' { + break; + } else { + buf.push(c); + } + } + Token::Ident(buf) + }, x if is_ident(x) => { let mut buf = String::new(); buf.push(x); diff --git a/src/text_query.rs b/src/text_query.rs index d9b27ce..4a6944c 100644 --- a/src/text_query.rs +++ b/src/text_query.rs @@ -392,6 +392,21 @@ impl<'a> Iterator for TokenIterator<'a> { } Token::Date(toks) }, + '"' => { + let mut buf = String::new(); + while let Some(c) = self.0.next() { + if c == '\\' { + if let Some(c) = self.0.next() { + buf.push(c); + } + } else if c == '"' { + break; + } else { + buf.push(c); + } + } + Token::Ident(buf) + }, x => { let mut buf = String::new(); buf.push(x);