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';
 }

Reply via email to