mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Introduce isNumberChar(char_type) function
In FindAdv we use Qt to interpret regular expressions. Regex uses for instance '\w', '\d' etc. '\d' finds not just '0-9' but also e.g. '߂' (Nko Digit Two: U+07c2) '\w' includes also such numbers. ATM, only FindAdv uses this function.
This commit is contained in:
parent
d7662e5586
commit
82af8778f1
@ -4833,7 +4833,7 @@ static int findAdvReplace(BufferView * bv, FindAndReplaceOptions const & opt, Ma
|
|||||||
|
|
||||||
static bool isWordChar(char_type c)
|
static bool isWordChar(char_type c)
|
||||||
{
|
{
|
||||||
return isLetterChar(c) || isDigitASCII(c);
|
return isLetterChar(c) || isNumberChar(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform a FindAdv operation.
|
/// Perform a FindAdv operation.
|
||||||
@ -4888,15 +4888,9 @@ bool findAdv(BufferView * bv, FindAndReplaceOptions & opt)
|
|||||||
it != it_end; ++it)
|
it != it_end; ++it)
|
||||||
md2.push_back(*it);
|
md2.push_back(*it);
|
||||||
docstring inp = asString(md2);
|
docstring inp = asString(md2);
|
||||||
LYXERR0("Got \"" << inp << "\"");
|
|
||||||
char_type prev = inp[0];
|
|
||||||
for (len = 0; (unsigned) len < inp.size() && len + cur.pos() <= cur.lastpos(); len++) {
|
for (len = 0; (unsigned) len < inp.size() && len + cur.pos() <= cur.lastpos(); len++) {
|
||||||
char_type c = inp[len];
|
if (!isWordChar(inp[len]))
|
||||||
if (isLetterChar(c))
|
break;
|
||||||
continue;
|
|
||||||
if (isDigitASCII(c))
|
|
||||||
continue;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
// len == 0 means previous char was a word separator
|
// len == 0 means previous char was a word separator
|
||||||
// len == 1 search starts with a word separator
|
// len == 1 search starts with a word separator
|
||||||
|
@ -189,6 +189,10 @@ bool isDigitASCII(char_type c)
|
|||||||
return '0' <= c && c <= '9';
|
return '0' <= c && c <= '9';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isNumberChar(char_type c)
|
||||||
|
{
|
||||||
|
return ucs4_to_qchar(c).isNumber();
|
||||||
|
}
|
||||||
|
|
||||||
bool isAlnumASCII(char_type c)
|
bool isAlnumASCII(char_type c)
|
||||||
{
|
{
|
||||||
|
@ -55,6 +55,9 @@ bool isEuropeanNumberTerminator(char_type c);
|
|||||||
/// return whether \p c is a digit in the ASCII range
|
/// return whether \p c is a digit in the ASCII range
|
||||||
bool isDigitASCII(char_type c);
|
bool isDigitASCII(char_type c);
|
||||||
|
|
||||||
|
/// return whether \p c is a digit (not just 0-9)
|
||||||
|
bool isNumberChar(char_type c);
|
||||||
|
|
||||||
/// return whether \p c is alpha or a digit in the ASCII range
|
/// return whether \p c is alpha or a digit in the ASCII range
|
||||||
bool isAlnumASCII(char_type c);
|
bool isAlnumASCII(char_type c);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user