Classes | Defines | Enumerations | Functions | Variables

xap_EncodingManager.cpp File Reference

#include "xap_EncodingManager.h"
#include "ut_debugmsg.h"
#include "ut_string.h"
#include "ut_string_class.h"
#include "ut_assert.h"
#include "ut_bijection.h"
#include "ut_iconv.h"
#include <stdio.h>
#include <string.h>

Classes

struct  _rmap
struct  _map
struct  SCatRange

Defines

#define v(x)   #x
#define SEARCH_PARAMS   fulllocname, langandterr, isocode

Enumerations

enum  EUniCat {
  NONATOMIC = 0, ATOMIC = 1, PUNCNOEND = 2, PUNCNOSTART = 3,
  PUNCFORCE = 4, UNKNOWN = 5
}

Functions

char * wvLIDToCodePageConverter (unsigned short lid)
static void init_values (const XAP_EncodingManager *that)
static UT_UCSChar try_CToU (UT_UCSChar c, UT_iconv_t iconv_handle)
static UT_UCSChar try_UToC (UT_UCSChar c, UT_iconv_t iconv_handle)
static const char * search_rmap (const _rmap *m, const char *key, bool *is_default=NULL)
static const char * search_rmap_with_opt_suffix (const _rmap *m, const char *key, const char *fallback_key=NULL, const char *fallback_key_final=NULL)
static const char * search_map (const _map *m, const char *key, bool *is_default=NULL)
static const char * search_map_with_opt_suffix (const _map *m, const char *key, const char *fallback_key=NULL, const char *fallback_key_final=NULL)
static enum EUniCat categoriseUniChar (UT_UCS4Char c)
const char ** localeinfo_combinations (const char *prefix, const char *suffix, const char *sep, bool skip_fallback)
const char * xap_encoding_manager_get_language_iso_name (void)
static int s_compare_unichar_cats (const void *pC, const void *puc)

Variables

static UT_iconv_t iconv_handle_N2U = UT_ICONV_INVALID
static UT_iconv_t iconv_handle_U2N = UT_ICONV_INVALID
static UT_iconv_t iconv_handle_U2Latin1 = UT_ICONV_INVALID
static UT_iconv_t iconv_handle_U2Win = UT_ICONV_INVALID
static UT_iconv_t iconv_handle_Win2U = UT_ICONV_INVALID
static const char * UCS2BEName = 0
static const char * UCS2LEName = 0
static const char * UCS4BEName = 0
static const char * UCS4LEName = 0
static const char * texenc_iso88595 [] = { "iso8859-5", NULL }
static const _rmap native_tex_enc_map []
static const _map langcode_to_babelarg []
static const char * wincharsetcode_ru []
static const char * wincharsetcode_el []
static const char * wincharsetcode_tr []
static const char * wincharsetcode_vi []
static const char * wincharsetcode_th []
static const char * wincharsetcode_zh_GB2312 []
static const char * wincharsetcode_zh_BIG5 []
static const _rmap langcode_to_wincharsetcode []
static const char * cjk_languages []
static const _rmap langcode_to_cjk []
static const _map MSCodepagename_to_charset_name_map []
static const _map charset_name_to_MSCodepagename_map []
static const _map langcode_to_winlangcode []
static const char * non_cjk_fontsizes []
static const char * cjk_fontsizes []
struct SCatRange UniCharCats []
static bool blineBreakRules []
int XAP_EncodingManager__swap_stou
int XAP_EncodingManager__swap_utos

Define Documentation

#define SEARCH_PARAMS   fulllocname, langandterr, isocode
#define v (   x  )     #x

Referenced by AD_Document::_adjustHistoryOnSave(), EV_Win32Toolbar::_ComboWndProc(), _get_fv_view(), AP_Win32Dialog_EpubExportOptions::_onCommand(), AD_Document::_restoreVersion(), abi_widget_find_next(), abi_widget_find_prev(), abi_widget_set_find_string(), AD_Document::addRecordToHistory(), PD_DocumentRDF::addXMLIDsForBlockAndTableCellForPosition(), PD_DocumentRDF::addXMLIDsForObjects(), XAP_Dialog_DocComparison::calculate(), OXMLi_ListenerState_Common::charData(), DECLARE_ABI_PLUGIN_METHOD(), PD_DocumentRDF::dumpObjectMarkersFromDocument(), AD_Document::findHistoryRecord(), PD_RDFSemanticStylesheet::format(), FV_View::getBlockFormat(), PD_Document::getFragXIDforVersion(), AD_Document::getHistoryNthAutoRevisioned(), AD_Document::getHistoryNthEditTime(), AD_Document::getHistoryNthId(), AD_Document::getHistoryNthTime(), AD_Document::getHistoryNthTimeStarted(), AD_Document::getHistoryNthTopXID(), AD_Document::getHistoryNthUID(), PD_DocumentRDF::getObjectsInScopeOfTypesForRange(), getSelectedUInt(), pf_Frag::getXMLID(), AbiCommand::parseTokens(), PP_Revision::PP_Revision(), PD_DocumentRDF::priv_addRelevantIDsForPosition(), PD_XMLIDCreator::rebuildCache(), EV_Win32Toolbar::repopulateStyles(), EV_UnixToolbar::repopulateStyles(), s_copy_int_array(), XAP_Prefs::savePrefsFile(), AD_Document::setAutoRevisioning(), RDFAnchor::setup(), IE_Imp_AbiWord_1::startElement(), EV_Win32Toolbar::synthesize(), EV_UnixToolbar::synthesize(), EV_QtToolbar::synthesize(), and AD_Document::verifyHistoryState().


Enumeration Type Documentation

enum EUniCat
Enumerator:
NONATOMIC 
ATOMIC 
PUNCNOEND 
PUNCNOSTART 
PUNCFORCE 
UNKNOWN 

Function Documentation

static enum EUniCat categoriseUniChar ( UT_UCS4Char  c  )  [static]
static void init_values ( const XAP_EncodingManager that  )  [static]
const char** localeinfo_combinations ( const char *  prefix,
const char *  suffix,
const char *  sep,
bool  skip_fallback 
)
static int s_compare_unichar_cats ( const void *  pC,
const void *  puc 
) [static]

Return the line breaking catagory that "c" belongs to.

Note: For performance reasons this function assumes that the entries in UniCharCats are in NUMERICAL ORDER starting with the smallest value.

References SCatRange::end, and SCatRange::start.

Referenced by categoriseUniChar().

static const char* search_map ( const _map m,
const char *  key,
bool *  is_default = NULL 
) [static]
static const char* search_map_with_opt_suffix ( const _map m,
const char *  key,
const char *  fallback_key = NULL,
const char *  fallback_key_final = NULL 
) [static]

References search_map().

Referenced by XAP_EncodingManager::initialize().

static const char* search_rmap ( const _rmap m,
const char *  key,
bool *  is_default = NULL 
) [static]

References cur, _rmap::keys, and _rmap::value.

Referenced by search_rmap_with_opt_suffix().

static const char* search_rmap_with_opt_suffix ( const _rmap m,
const char *  key,
const char *  fallback_key = NULL,
const char *  fallback_key_final = NULL 
) [static]
static UT_UCSChar try_CToU ( UT_UCSChar  c,
UT_iconv_t  iconv_handle 
) [static]
static UT_UCSChar try_UToC ( UT_UCSChar  c,
UT_iconv_t  iconv_handle 
) [static]
char* wvLIDToCodePageConverter ( unsigned short  lid  ) 
const char* xap_encoding_manager_get_language_iso_name ( void   ) 

Variable Documentation

bool blineBreakRules[] [static]
Initial value:
 {
    

  false,     true,   false,     false,       true,
  true,      true,   true,      false,       true,
  false,     false,  false,     false,       true,
  true,      true,   true,      false,       true,
  true,      true,   true,      true,        true}

Referenced by XAP_EncodingManager::canBreakBetween().

Initial value:
{

    {NULL,NULL},
    
    {"SJIS","CP932"},
    {"GB2312","CP936"},
    {"GBK","CP936"},
    {"GB18030","CP936"},
    {"BIG5","CP950"},
    {"BIG5-HKSCS","CP950"},
    {"JOHAB","CP1361"},
    {NULL,NULL}
}

Referenced by XAP_EncodingManager::CodepageFromCharset().

const char* cjk_fontsizes[] [static]
Initial value:
{
    
    v(5),v(5.5),v(6.5),v(7.5),v(9),v(10.5),v(12),v(14),v(15),v(16),v(18),
    v(22),v(24),v(26),v(36),v(42),NULL
}

Referenced by XAP_EncodingManager::initialize().

const char* cjk_languages[] [static]
Initial value:
{ "zh", "ja", "ko", NULL }
UT_iconv_t iconv_handle_N2U = UT_ICONV_INVALID [static]
UT_iconv_t iconv_handle_U2Latin1 = UT_ICONV_INVALID [static]
UT_iconv_t iconv_handle_U2N = UT_ICONV_INVALID [static]
UT_iconv_t iconv_handle_U2Win = UT_ICONV_INVALID [static]
UT_iconv_t iconv_handle_Win2U = UT_ICONV_INVALID [static]
const _map langcode_to_babelarg[] [static]
Initial value:
{
    {NULL,NULL},
    {"ru","english,russian"},
    
    
    {"uk","english,russian,ukrainian"},
    
    
    {"be","english,russian"},
    {NULL,NULL}
}
const _rmap langcode_to_cjk[] [static]
Initial value:
{
    {"0", NULL},     
    {"1",cjk_languages},
    {NULL, NULL}
}

Referenced by XAP_EncodingManager::initialize().

Initial value:
{
    {"0", NULL }, 
    {"204",wincharsetcode_ru},
    {"161",wincharsetcode_el},
    {"162",wincharsetcode_tr},
    {"163",wincharsetcode_vi},
    {"222",wincharsetcode_th},  
    {"134",wincharsetcode_zh_GB2312},
    {"136",wincharsetcode_zh_BIG5}, 
    {NULL, NULL}
}
const _map langcode_to_winlangcode[] [static]
Initial value:
{

    {NULL, NULL},
   {"zh_CN.GB2312", "0x804"},     
   {"zh_CN.GBK",    "0x804"}, 
   {"zh_CN.GB18030",    "0x804"}, 
   {"zh_CN.UTF-8",  "0x804"}, 
   {"zh_HK.BIG5-HKSCS", "0x404"},  
   {"zh_HK.UTF-8",  "0x404"},  
   {"zh_TW.BIG5",   "0x404"},  
   {"zh_TW.UTF-8",  "0x404"},  
    {NULL, NULL}
}

Referenced by XAP_EncodingManager::initialize().

const _rmap native_tex_enc_map[] [static]
Initial value:
{
    { NULL, NULL }, 
    { "koi8-r", NULL }, { "koi8-ru", NULL }, 
    { "koi8-u", NULL }, { "cp1251", NULL }, { "cp866", NULL },
    { "iso88595", texenc_iso88595},
    { NULL, NULL } 
}
const char* non_cjk_fontsizes[] [static]
Initial value:
{
    
    v(8),v(9),v(10),v(11),v(12),v(14),v(16),v(18),v(20),v(22),v(24),v(26),
    v(28),v(36),v(48),v(72),NULL
}

Referenced by XAP_EncodingManager::initialize().

const char* texenc_iso88595[] = { "iso8859-5", NULL } [static]
const char* UCS2BEName = 0 [static]
const char* UCS2LEName = 0 [static]
const char* UCS4BEName = 0 [static]
const char* UCS4LEName = 0 [static]
const char* wincharsetcode_el[] [static]
Initial value:
  
{ "el", NULL }
const char* wincharsetcode_ru[] [static]
Initial value:
 
{ "ru", "be", "uk" , NULL }
const char* wincharsetcode_th[] [static]
Initial value:
  
{ "th", NULL }
const char* wincharsetcode_tr[] [static]
Initial value:
  
{ "tr", NULL }
const char* wincharsetcode_vi[] [static]
Initial value:
  
{ "vi", NULL }
const char* wincharsetcode_zh_BIG5[] [static]
Initial value:
 
{ "zh_TW.BIG5", "zh_HK.BIG5-HKSCS", NULL }
const char* wincharsetcode_zh_GB2312[] [static]
Initial value:
 
{ "zh_CN.GB2312", "zh_CN.GBK", "zh_CN.GB18030", NULL }