]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
more changes read the ChangeLog
[lyx.git] / src / support / textutils.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ======================================================
4  * 
5  *           LyX, The Document Processor
6  *       
7  *           Copyright 1995 Matthias Ettrich
8  *           Copyright 1995-2000 The LyX Team.
9  *
10  * ====================================================== */
11
12 #ifndef TEXTUTILS_H
13 #define TEXTUTILS_H
14
15 #include <cctype>
16
17 //
18 inline
19 bool IsNewlineChar(char c) {
20         return (c == LyXParagraph::META_NEWLINE);
21 }
22
23
24 //
25 inline
26 bool IsSeparatorChar(char c) {
27         return (c == ' ');
28 }
29
30
31 //
32 inline
33 bool IsHfillChar(char c) {
34         return (c == LyXParagraph::META_HFILL);
35 }
36
37
38 //
39 inline
40 bool IsInsetChar(char c) {
41         return (c == LyXParagraph::META_INSET);
42 }
43
44
45 #ifndef NEW_INSETS
46 //
47 inline
48 bool IsFloatChar(char c) {
49         return (c == LyXParagraph::META_FOOTNOTE
50                 || c == LyXParagraph::META_MARGIN
51                 || c == LyXParagraph::META_FIG
52                 || c == LyXParagraph::META_TAB
53                 || c == LyXParagraph::META_ALGORITHM
54                 || c == LyXParagraph::META_WIDE_FIG
55                 || c == LyXParagraph::META_WIDE_TAB);
56 }
57 #endif
58
59
60 //
61 inline
62 bool IsLineSeparatorChar(char c) {
63         return (c == ' ');
64 }
65
66
67 //
68 inline
69 bool IsKommaChar(char c) {
70         return (c == ',' 
71                 || c == '('
72                 || c == ')'
73                 || c == '['
74                 || c == ']'
75                 || c == '{'
76                 || c == '}'
77                 || c == ';'
78                 || c == '.'
79                 || c == ':'
80                 || c == '-'
81                 || c == '?'
82                 || c == '!'
83                 || c == '&'
84                 || c == '@'
85                 || c == '+'
86                 || c == '-'
87                 || c == '~'
88                 || c == '#'
89                 || c == '%'
90                 || c == '^'
91                 || c == '/' 
92                 || c == '\\'
93                 || c == LyXParagraph::META_NEWLINE
94                 );
95 }
96
97
98 //
99 inline
100 bool IsLetterChar(unsigned char c) {
101         return ((c >= 'A' && c <= 'Z')
102                 || (c >= 'a' && c <= 'z')
103                 || (c >= 192)); // in iso-8859-x these are accented chars
104 }
105
106
107 //
108 inline
109 bool IsPrintable(unsigned char c) {
110         return (c >= ' ');
111 }
112
113
114 //
115 inline
116 bool IsPrintableNonspace(unsigned char c) {
117         return (c > ' ');
118 }
119
120
121 // Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
122 inline
123 bool IsWordChar(unsigned char c) {
124         return !( IsSeparatorChar( c )
125                   || IsKommaChar( c )
126                   || IsHfillChar( c )
127 #ifndef NEW_INSETS
128                   || IsFloatChar( c )
129 #endif
130                   || IsInsetChar( c ));
131 }
132
133
134 //
135 inline
136 bool IsLetterCharOrDigit(char ch)
137 {
138         return IsLetterChar(ch) || isdigit(ch);
139 }
140 #endif