]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
448decfd4389a506dcc109214ae1df19f7c9e91a
[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-2001 The LyX Team.
9  *
10  * ====================================================== */
11
12 #ifndef TEXTUTILS_H
13 #define TEXTUTILS_H
14
15 ///
16 inline
17 bool IsNewlineChar(char c) {
18         return (c == Paragraph::META_NEWLINE);
19 }
20
21
22 ///
23 inline
24 bool IsSeparatorChar(char c) {
25         return (c == ' ');
26 }
27
28
29 ///
30 inline
31 bool IsHfillChar(char c) {
32         return (c == Paragraph::META_HFILL);
33 }
34
35
36 ///
37 inline
38 bool IsInsetChar(char c) {
39         return (c == Paragraph::META_INSET);
40 }
41
42
43 ///
44 inline
45 bool IsLineSeparatorChar(char c) {
46         return (c == ' ');
47 }
48
49 ///
50 inline
51 bool IsKommaChar(char c) {
52         return (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 == '#'
71                 || c == '%'
72                 || c == '^'
73                 || c == '/' 
74                 || c == '\\'
75                 || c == Paragraph::META_NEWLINE
76                 );
77 }
78
79
80 ///
81 inline
82 bool IsLetterChar(unsigned char c) {
83         return ((c >= 'A' && c <= 'Z')
84                 || (c >= 'a' && c <= 'z')
85                 || (c >= 192)); // in iso-8859-x these are accented chars
86 }
87
88
89 ///
90 inline
91 bool IsPrintable(unsigned char c) {
92         return ((c & 127) >= ' ');
93 }
94
95
96 ///
97 inline
98 bool IsPrintableNonspace(unsigned char c) {
99         return IsPrintable(c) && (c != ' ');
100 }
101
102
103 /// Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
104 inline
105 bool IsWordChar(unsigned char c) {
106         return !( IsSeparatorChar( c )
107                   || IsKommaChar( c )
108                   || IsHfillChar( c )
109                   || IsInsetChar( c ));
110 }
111
112
113 ///
114 inline
115 bool IsDigit(unsigned char ch)
116 {
117         return ch >= '0' && ch <= '9';
118 }
119
120
121 ///
122 inline
123 bool IsLetterCharOrDigit(unsigned char ch)
124 {
125         return IsLetterChar(ch) || IsDigit(ch);
126 }
127 #endif