]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
use more explicit on constructors use the pimpl idom to reduce size with about 500k
[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 #if 0
26 inline
27 bool IsSeparatorChar(char c) {
28         return (c == ' ' || c == LyXParagraph::META_PROTECTED_SEPARATOR);
29 }
30 #else
31 inline
32 bool IsSeparatorChar(char c) {
33         return (c == ' ');
34 }
35 #endif
36
37
38 ///
39 inline
40 bool IsHfillChar(char c) {
41         return (c == LyXParagraph::META_HFILL);
42 }
43
44
45 ///
46 inline
47 bool IsInsetChar(char c) {
48         return (c == LyXParagraph::META_INSET);
49 }
50
51
52 ///
53 inline
54 bool IsFloatChar(char c) {
55         return (c == LyXParagraph::META_FOOTNOTE
56                 || c == LyXParagraph::META_MARGIN
57                 || c == LyXParagraph::META_FIG
58                 || c == LyXParagraph::META_TAB
59                 || c == LyXParagraph::META_ALGORITHM
60                 || c == LyXParagraph::META_WIDE_FIG
61                 || c == LyXParagraph::META_WIDE_TAB);
62 }
63
64
65 ///
66 inline
67 bool IsLineSeparatorChar(char c) {
68         return (c == ' ');
69 }
70
71
72 ///
73 inline
74 bool IsKommaChar(char c) {
75         return (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 == '#'
94                 || c == '%'
95                 || c == '^'
96                 || c == '/' 
97                 || c == '\\'
98                 || c == LyXParagraph::META_NEWLINE
99 #if 0
100                 || c == LyXParagraph::META_PROTECTED_SEPARATOR
101 #endif
102                 );
103 }
104
105
106 ///
107 inline
108 bool IsLetterChar(unsigned char c) {
109         return ((c >= 'A' && c <= 'Z')
110                 || (c >= 'a' && c <= 'z')
111                 || (c >= 192)); // in iso-8859-x these are accented chars
112 }
113
114
115 ///
116 inline
117 bool IsPrintable(unsigned char c) {
118         return (c >= ' ');
119 }
120
121
122 /// Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
123 inline
124 bool IsWordChar(unsigned char c) {
125         return !( IsSeparatorChar( c ) 
126                   || IsKommaChar( c )  
127                   || IsHfillChar( c )  
128                   || IsFloatChar( c )  
129                   || IsInsetChar( c ) ) ;
130 }
131
132
133 ///
134 inline
135 bool IsLetterCharOrDigit(char ch)
136 {
137         return IsLetterChar(ch) || isdigit(ch);
138 }
139 #endif