// -*- C++ -*-
/**
 * \file textutils.h
 * This file is part of LyX, the document processor.
 * Licence details can be found in the file COPYING.
 *
 * \author Matthias Ettrich
 * \author Lars Gullik Bjønnes
 *
 * Full author contact details are available in file CREDITS.
 */

// FIXME: I can think of a better name for this file ...

#ifndef TEXTUTILS_H
#define TEXTUTILS_H

/// return true if the char is a line separator
inline
bool IsLineSeparatorChar(lyx::char_type c)
{
	return c == ' ';
}


/// return true if a char is alphabetical (including accented chars)
inline
bool IsLetterChar(unsigned char c)
{
	return (c >= 'A' && c <= 'Z')
		|| (c >= 'a' && c <= 'z')
		|| (c >= 192); // in iso-8859-x these are accented chars
}


/// return true if the char is printable (masked to 7-bit ASCII)
inline
#ifdef I18N
bool IsPrintable(wchar_t c) {
        if( c > 255)                     //contributed by Satoru Goto at
                                        // goto@ee.saga-u.ac.jp
                return true;
        else
                return ((c & 127) >= ' ');
}
#else

bool IsPrintable(unsigned char c)
{
	return (c & 127) >= ' ';
}
#endif


/// return true if the char is printable and not a space (masked to 7-bit ASCII)
inline
#ifdef I18N
bool IsPrintableNonspace(wchar_t c) 
#else

bool IsPrintableNonspace(unsigned char c)
#endif
{
	return IsPrintable(c) && c != ' ';
}


/// completely pointless FIXME
inline
#ifdef I18N
bool IsDigit(wchar_t ch)
#else
bool IsDigit(unsigned char ch)
#endif
{
	return ch >= '0' && ch <= '9';
}


#endif // TEXTUTILS_H
