]> git.lyx.org Git - lyx.git/blobdiff - src/support/types.h
* src/text2.C: deleteEmptyParagraphMechanism(): fix a crash in
[lyx.git] / src / support / types.h
index 53a4e19e8d2c273e59242c42d5fdfaf3d8bca232..446aa3d60f94ee09173ee90093354d00f983f914 100644 (file)
 #ifndef LYX_TYPES_H
 #define LYX_TYPES_H
 
+#include <boost/cstdint.hpp>
+
 #include <cstddef>
 
-namespace lyx
-{
+namespace lyx {
+
+       /// The type used to hold characters in paragraphs
+#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4
+       // Prefer this if possible because GNU libstdc++ has usable
+       // std::ctype<wchar_t> locale facets but not
+       // std::ctype<boost::uint32_t>. gcc older than 3.4 is also missing
+       // usable std::char_traits<boost::uint32_t>.
+       typedef wchar_t char_type;
+#else
+       typedef boost::uint32_t char_type;
+#endif
+
        /// a type for positions used in paragraphs
        // needs to be signed for a while to hold the special value -1 that is
-       // used there...
+       // used there
        typedef ptrdiff_t  pos_type;
 
-       /// a type for paragraph offsets 
-       typedef ptrdiff_t  paroffset_type;
+       /// a type for paragraph offsets
+       // FIXME: should be unsigned as well.
+       // however, simply changing it breaks a downward loop somewhere...
+       typedef ptrdiff_t  pit_type;
 
        /// a type for the nesting depth of a paragraph
        typedef size_t     depth_type;
@@ -88,6 +103,6 @@ namespace lyx
                NEXT_WORD
        };
 
-}
+} // namespace lyx
 
 #endif // LYX_TYPES_H