]> git.lyx.org Git - lyx.git/blob - src/support/textutils.h
some new (not extensive) changes, some fixes, will probably reverto to .la libs later...
[lyx.git] / src / support / textutils.h
1 // -*- C++ -*-
2 /* This file is part of
3  * ======================================================
4  * 
5  *           LyX, The Document Processor
6  *       
7  *          Copyright (C) 1995 Matthias Ettrich
8  *
9  * ====================================================== */
10
11 #ifndef TEXTUTILS_H
12 #define TEXTUTILS_H
13
14 #include <cctype>
15
16 ///
17 inline bool IsNewlineChar(char c) {
18         return (c == LyXParagraph::META_NEWLINE);
19 }
20
21
22 ///
23 inline bool IsSeparatorChar(char c) {
24         return (c == ' ' || c == LyXParagraph::META_PROTECTED_SEPARATOR);
25 }
26
27
28 ///
29 inline bool IsHfillChar(char c) {
30         return (c == LyXParagraph::META_HFILL);
31 }
32
33
34 ///
35 inline bool IsInsetChar(char c) {
36         return (c == LyXParagraph::META_INSET);
37 }
38
39
40 ///
41 inline bool IsFloatChar(char c) {
42         return (c == LyXParagraph::META_FOOTNOTE
43                 || c == LyXParagraph::META_MARGIN
44                 || c == LyXParagraph::META_FIG
45                 || c == LyXParagraph::META_TAB
46                 || c == LyXParagraph::META_ALGORITHM
47                 || c == LyXParagraph::META_WIDE_FIG
48                 || c == LyXParagraph::META_WIDE_TAB);
49 }
50
51
52 ///
53 inline bool IsLineSeparatorChar(char c) {
54         return (c == ' ');
55 }
56
57
58 ///
59 inline bool IsKommaChar(char c) {
60         return (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 == '+'
76                 || c == '-'
77                 || c == '~'
78                 || c == '#'
79                 || c == '%'
80                 || c == '^'
81                 || c == '/' 
82                 || c == '\\'
83                 || c == LyXParagraph::META_NEWLINE
84                 || c == LyXParagraph::META_PROTECTED_SEPARATOR
85                 );
86 }
87
88
89 ///
90 inline bool IsLetterChar(unsigned char c) {
91         return ((c >= 'A' && c <= 'Z')
92                 || (c >= 'a' && c <= 'z')
93                 || (c >= 192)); // in iso-8859-x these are accented chars
94 }
95
96
97 ///
98 inline bool IsPrintable(unsigned char c) {
99         return (c >= ' ');
100 }
101
102
103 /// Word is not IsSeparator or IsKomma or IsHfill or IsFloat or IsInset. 
104 inline bool IsWordChar(unsigned char c) {
105   return !( IsSeparatorChar( c ) 
106             || IsKommaChar( c )  
107             || IsHfillChar( c )  
108             || IsFloatChar( c )  
109             || IsInsetChar( c ) ) ;
110 }
111
112
113 ///
114 inline bool IsLetterCharOrDigit(char ch)
115 {
116         return IsLetterChar(ch) || isdigit(ch);
117 }
118 #endif