]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
Fix the line-delete-forward bug?
[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 /// Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
113 inline
114 bool IsWordChar(unsigned char c) {
115         return !( IsSeparatorChar( c ) 
116                   || IsKommaChar( c )  
117                   || IsHfillChar( c )  
118                   || IsFloatChar( c )  
119                   || IsInsetChar( c ) ) ;
120 }
121
122
123 ///
124 inline
125 bool IsLetterCharOrDigit(char ch)
126 {
127         return IsLetterChar(ch) || isdigit(ch);
128 }
129 #endif