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