Abdelrazak Younes wrote:
Abdelrazak Younes wrote:
Georg Baum wrote:
Am Sonntag, 3. September 2006 12:11 schrieb Abdelrazak Younes:
This patch fixes the isDigit() MSVC warning in ControlSpellchecker.C.
If that is really the correct isDigit() check for unciode
My understanding is that ascii is a subset of ucs4 so it must work as is.
then you simply could have changed the argument type of the existing
function.
I did not touch this on purpose because of the FIXME comment...
So why not changing all the methods in textutils.h instead? Most of
our use are unicode anyway.
This patch doest just that... OK?
I am going to commit this modified patch where I also verify that c is
really an 8 bit char in isLetterChar().
I agree with Georg that these methods really need to be reviewed for
correctness and usefulness.
Side note: any key in a mathed inset is treated as a space now (with or
without the space). In effect, this means that any key typed exits the
formula... very bad.
Abdel.
Index: textutils.h
===================================================================
--- textutils.h (revision 14870)
+++ textutils.h (working copy)
@@ -15,10 +15,11 @@
#ifndef TEXTUTILS_H
#define TEXTUTILS_H
+#include "support/types.h"
/// return true if the char is a line separator
inline
-bool isLineSeparatorChar(char c)
+bool isLineSeparatorChar(lyx::char_type c)
{
return c == ' ';
}
@@ -26,17 +27,17 @@
/// return true if a char is alphabetical (including accented chars)
inline
-bool isLetterChar(unsigned char c)
+bool isLetterChar(lyx::char_type c)
{
return (c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z')
- || (c >= 192); // in iso-8859-x these are accented chars
+ || (c >= 192 && c < 256); // in iso-8859-x these are accented
chars
}
/// return true if the char is printable (masked to 7-bit ASCII)
inline
-bool isPrintable(unsigned char c)
+bool isPrintable(lyx::char_type c)
{
return (c & 127) >= ' ';
}
@@ -44,15 +45,14 @@
/// return true if the char is printable and not a space (masked to 7-bit
ASCII)
inline
-bool isPrintableNonspace(unsigned char c)
+bool isPrintableNonspace(lyx::char_type c)
{
return isPrintable(c) && c != ' ';
}
-
-/// completely pointless FIXME
+/// return true if a unicode char is a digit.
inline
-bool isDigit(unsigned char ch)
+bool isDigit(lyx::char_type ch)
{
return ch >= '0' && ch <= '9';
}