]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
87369e7933ed0ce660be3971cf6ab63588493546
[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 //
46 inline
47 bool IsFloatChar(char c) {
48         return (c == LyXParagraph::META_FOOTNOTE
49                 || c == LyXParagraph::META_MARGIN
50                 || c == LyXParagraph::META_FIG
51                 || c == LyXParagraph::META_TAB
52                 || c == LyXParagraph::META_ALGORITHM
53                 || c == LyXParagraph::META_WIDE_FIG
54                 || c == LyXParagraph::META_WIDE_TAB);
55 }
56
57
58 //
59 inline
60 bool IsLineSeparatorChar(char c) {
61         return (c == ' ');
62 }
63
64
65 //
66 inline
67 bool IsKommaChar(char c) {
68         return (c == ',' 
69                 || c == '('
70                 || 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 == LyXParagraph::META_NEWLINE
92                 );
93 }
94
95
96 //
97 inline
98 bool IsLetterChar(unsigned char c) {
99         return ((c >= 'A' && c <= 'Z')
100                 || (c >= 'a' && c <= 'z')
101                 || (c >= 192)); // in iso-8859-x these are accented chars
102 }
103
104
105 //
106 inline
107 bool IsPrintable(unsigned char c) {
108         return (c >= ' ');
109 }
110
111
112 //
113 inline
114 bool IsPrintableNonspace(unsigned char c) {
115         return (c > ' ');
116 }
117
118
119 // Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
120 inline
121 bool IsWordChar(unsigned char c) {
122         return !( IsSeparatorChar( c ) 
123                   || IsKommaChar( c )  
124                   || IsHfillChar( c )  
125                   || IsFloatChar( c )  
126                   || IsInsetChar( c ) ) ;
127 }
128
129
130 //
131 inline
132 bool IsLetterCharOrDigit(char ch)
133 {
134         return IsLetterChar(ch) || isdigit(ch);
135 }
136 #endif