/usr/include/wx-2.6/wx/encconv.h is in wx2.6-headers 2.6.3.2.2-5ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | /////////////////////////////////////////////////////////////////////////////
// Name: wx/encconv.h
// Purpose: wxEncodingConverter class for converting between different
// font encodings
// Author: Vaclav Slavik
// Copyright: (c) 1999 Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ENCCONV_H_
#define _WX_ENCCONV_H_
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "encconv.h"
#endif
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/fontenc.h"
#include "wx/dynarray.h"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
enum
{
wxCONVERT_STRICT,
wxCONVERT_SUBSTITUTE
};
enum
{
wxPLATFORM_CURRENT = -1,
wxPLATFORM_UNIX = 0,
wxPLATFORM_WINDOWS,
wxPLATFORM_OS2,
wxPLATFORM_MAC
};
// ----------------------------------------------------------------------------
// types
// ----------------------------------------------------------------------------
WX_DEFINE_ARRAY_INT(wxFontEncoding, wxFontEncodingArray);
//--------------------------------------------------------------------------------
// wxEncodingConverter
// This class is capable of converting strings between any two
// 8bit encodings/charsets. It can also convert from/to Unicode
//--------------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject
{
public:
wxEncodingConverter();
~wxEncodingConverter() { if (m_Table) delete[] m_Table; }
// Initialize conversion. Both output or input encoding may
// be wxFONTENCODING_UNICODE, but only if wxUSE_WCHAR_T is set to 1.
//
// All subsequent calls to Convert() will interpret it's argument
// as a string in input_enc encoding and will output string in
// output_enc encoding.
//
// You must call this method before calling Convert. You may call
// it more than once in order to switch to another conversion
//
// Method affects behaviour of Convert() in case input character
// cannot be converted because it does not exist in output encoding:
// wxCONVERT_STRICT --
// follow behaviour of GNU Recode - just copy unconvertable
// characters to output and don't change them (it's integer
// value will stay the same)
// wxCONVERT_SUBSTITUTE --
// try some (lossy) substitutions - e.g. replace
// unconvertable latin capitals with acute by ordinary
// capitals, replace en-dash or em-dash by '-' etc.
// both modes gurantee that output string will have same length
// as input string
//
// Returns false if given conversion is impossible, true otherwise
// (conversion may be impossible either if you try to convert
// to Unicode with non-Unicode build of wxWidgets or if input
// or output encoding is not supported.)
bool Init(wxFontEncoding input_enc, wxFontEncoding output_enc, int method = wxCONVERT_STRICT);
// Convert input string according to settings passed to Init.
// Note that you must call Init before using Convert!
bool Convert(const char* input, char* output) const;
bool Convert(char* str) const { return Convert(str, str); }
wxString Convert(const wxString& input) const;
#if wxUSE_WCHAR_T
bool Convert(const char* input, wchar_t* output) const;
bool Convert(const wchar_t* input, char* output) const;
bool Convert(const wchar_t* input, wchar_t* output) const;
bool Convert(wchar_t* str) const { return Convert(str, str); }
#endif
// Return equivalent(s) for given font that are used
// under given platform. wxPLATFORM_CURRENT means the plaform
// this binary was compiled for
//
// Examples:
// current platform enc returned value
// -----------------------------------------------------
// unix CP1250 {ISO8859_2}
// unix ISO8859_2 {}
// windows ISO8859_2 {CP1250}
//
// Equivalence is defined in terms of convertibility:
// 2 encodings are equivalent if you can convert text between
// then without loosing information (it may - and will - happen
// that you loose special chars like quotation marks or em-dashes
// but you shouldn't loose any diacritics and language-specific
// characters when converting between equivalent encodings).
//
// Convert() method is not limited to converting between
// equivalent encodings, it can convert between arbitrary
// two encodings!
//
// Remember that this function does _NOT_ check for presence of
// fonts in system. It only tells you what are most suitable
// encodings. (It usually returns only one encoding)
//
// Note that argument enc itself may be present in returned array!
// (so that you can -- as a side effect -- detect whether the
// encoding is native for this platform or not)
static wxFontEncodingArray GetPlatformEquivalents(wxFontEncoding enc, int platform = wxPLATFORM_CURRENT);
// Similar to GetPlatformEquivalent, but this one will return ALL
// equivalent encodings, regardless the platform, including itself.
static wxFontEncodingArray GetAllEquivalents(wxFontEncoding enc);
// Return true if [any text in] one multibyte encoding can be
// converted to another one losslessly.
//
// Do not call this with wxFONTENCODING_UNICODE, it doesn't make
// sense (always works in one sense and always depends on the text
// to convert in the other)
static bool CanConvert(wxFontEncoding encIn, wxFontEncoding encOut)
{
return GetAllEquivalents(encIn).Index(encOut) != wxNOT_FOUND;
}
private:
#if wxUSE_WCHAR_T
wchar_t *m_Table;
#else
char *m_Table;
#endif
bool m_UnicodeInput, m_UnicodeOutput;
bool m_JustCopy;
DECLARE_NO_COPY_CLASS(wxEncodingConverter)
};
#endif // _WX_ENCCONV_H_
|