]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
hopefully solve some of the lyxstring problems.
[lyx.git] / src / support / textutils.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ======================================================
4  * 
5  *           LyX, The Document Processor
6  *       
7  *          Copyright (C) 1995 Matthias Ettrich
8  *
9  *======================================================*/
10 #ifndef _TEXTUTILS_H
11 #define _TEXTUTILS_H
12
13 #include "definitions.h"
14
15 ///
16 inline bool IsNewlineChar(char c) {
17         return (c == LYX_META_NEWLINE);
18 }
19 ///
20 inline bool IsSeparatorChar(char c) {
21         return (c == ' ' || c == LYX_META_PROTECTED_SEPARATOR);
22 }
23 ///
24 inline bool IsHfillChar(char c) {
25         return (c == LYX_META_HFILL);
26 }
27 ///
28 inline bool IsInsetChar(char c) {
29         return (c == LYX_META_INSET);
30 }
31 ///
32 inline bool IsFloatChar(char c) {
33         return (c == LYX_META_FOOTNOTE
34                 || c == LYX_META_MARGIN
35                 || c == LYX_META_FIG
36                 || c == LYX_META_TAB
37                 || c == LYX_META_ALGORITHM
38                 || c == LYX_META_WIDE_FIG
39                 || c == LYX_META_WIDE_TAB);
40 }
41 ///
42 inline bool IsLineSeparatorChar(char c) {
43         return (c == ' ');
44 }
45 ///
46 inline bool IsKommaChar(char c) {
47         return (c == ',' 
48                 || c=='('
49                 || c==')'
50                 || c=='['
51                 || c==']'
52                 || c=='{'
53                 || c=='}'
54                 || c==';'
55                 || c=='.'
56                 || c==':'
57                 || c=='-'
58                 || c=='?'
59                 || c=='!'
60                 || c=='&'
61                 || c=='@'
62                 || c=='+'
63                 || c=='-'
64                 || c=='~'
65                 || c=='#'
66                 || c=='%'
67                 || c=='^'
68                 || c=='/' 
69                 || c=='\\'
70                 || c==LYX_META_NEWLINE
71                 || c==LYX_META_PROTECTED_SEPARATOR
72                 );
73 }
74 ///
75 inline bool IsLetterChar(unsigned char c) {
76         return ((c>='A' && c<='Z')
77                 || (c>='a' && c<='z')
78                 || (c>=192)); // in iso-8859-x these are accented chars
79 }
80 ///
81 inline bool IsPrintable(unsigned char c) {
82         return (c>=' ');
83 }
84 /// Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
85 inline bool IsWordChar(unsigned char c) {
86   return !( IsSeparatorChar( c ) 
87             ||  IsKommaChar( c )  
88             ||  IsHfillChar( c )  
89             ||  IsFloatChar( c )  
90             ||  IsInsetChar( c ) ) ;
91 }
92 #endif