LANGUAGE CTimeServerAnnouncementsSet::getLanguage() const { int n = m_language->GetCurrentSelection(); if (n == wxNOT_FOUND) return LANG_ENGLISH_UK_1; return LANGUAGE(n); }
CTimeServerConfig::CTimeServerConfig(wxConfigBase* config, const wxString& name) : m_config(config), m_name(wxT("/")), m_callsign(DEFAULT_CALLSIGN), m_sendA(DEFAULT_SENDA), m_sendB(DEFAULT_SENDB), m_sendC(DEFAULT_SENDC), m_sendD(DEFAULT_SENDD), m_sendE(DEFAULT_SENDE), m_address(DEFAULT_ADDRESS), m_language(DEFAULT_LANGUAGE), m_format(DEFAULT_FORMAT), m_interval(DEFAULT_INTERVAL), m_x(DEFAULT_WINDOW_X), m_y(DEFAULT_WINDOW_Y) { wxASSERT(config != NULL); if (!name.IsEmpty()) m_name = wxT("/") + name + wxT("/"); m_config->Read(m_name + KEY_CALLSIGN, &m_callsign, DEFAULT_CALLSIGN); m_config->Read(m_name + KEY_SENDA, &m_sendA, DEFAULT_SENDA); m_config->Read(m_name + KEY_SENDB, &m_sendB, DEFAULT_SENDB); m_config->Read(m_name + KEY_SENDC, &m_sendC, DEFAULT_SENDC); m_config->Read(m_name + KEY_SENDD, &m_sendD, DEFAULT_SENDD); m_config->Read(m_name + KEY_SENDE, &m_sendE, DEFAULT_SENDE); m_config->Read(m_name + KEY_ADDRESS, &m_address, DEFAULT_ADDRESS); long temp; m_config->Read(m_name + KEY_LANGUAGE, &temp, long(DEFAULT_LANGUAGE)); m_language = LANGUAGE(temp); m_config->Read(m_name + KEY_FORMAT, &temp, long(DEFAULT_FORMAT)); m_format = FORMAT(temp); m_config->Read(m_name + KEY_INTERVAL, &temp, long(DEFAULT_INTERVAL)); m_interval = INTERVAL(temp); m_config->Read(m_name + KEY_WINDOW_X, &temp, long(DEFAULT_WINDOW_X)); m_x = int(temp); m_config->Read(m_name + KEY_WINDOW_Y, &temp, long(DEFAULT_WINDOW_Y)); m_y = int(temp); }
void testInfos(const char *className, const char *methodName, const char *classPath, const char *type_of_test, const char *language) { const std::string& module_name = sbf::pkg::Module::get( "vgd", "0-5" )->getName(); std::string module_description = sbf::pkg::Module::get()->getDescription(); boost::filesystem::path initial_path = boost::filesystem::current_path(); initial_path = initial_path.parent_path(); boost::filesystem::path sourcePath( initial_path / "include" / module_name / classPath ); TYPE_OF_TEST(type_of_test); TESTED_MODULE(module_name.c_str()); MODULE_DESCRIPTION(module_description.c_str()); TESTED_CLASS(className); TESTED_METHOD(methodName); TESTED_CLASSPATH(sourcePath.string().c_str()); LANGUAGE(language); }
ROP_RENDER_CODE ROP_Script::renderFrame(fpreal time, UT_Interrupt *) { UT_String command, language; OP_CommandManager *cmd; OP_Director *director; PY_Result result; // Execute the pre-frame script. executePreFrameScript(time); // Get the language and command we want to run. LANGUAGE(language, time); COMMAND(command, time); // If it's 'python', execute the statements. if (language == "python") { // Run the statements in a new context and store the result. result = PYrunPythonStatementsInNewContext(command); // If there was an error, add an error on the node. if (result.myResultType == PY_Result::ERR) addPythonNodeError(result); } // If the language is 'hscript', or any other value, run the command // as hscript. else { // Get the scene director. director = OPgetDirector(); // Get the command manager. cmd = director->getCommandManager(); // Run the hscript command. cmd->execute(command); } // If no problems have been encountered, execute the post-frame // script. if (error() < UT_ERROR_ABORT) executePostFrameScript(time); return ROP_CONTINUE_RENDER; }
LPWSTR getTranslatedString(int stringID) { switch(stringID) { /* LANGUAGE2( STR_STATS_UNASSIGN_WITH_LIMIT, "+Alt: ;,+Shift: %d \x70B9\x6570",//"+Alt: Unassign, +Shift: by %d points", // "+Alt: \x91CD\x5206\x914D;,+Shift: %d \x70B9\x6570",//"+Alt: Unassign, +Shift: by %d points", "+Alt: Désallocation, +Shift: par %d points,", "+Alt: Zurücksetzen, +Shift: um %d Punkte", "+Alt: Rimuovi, +Shift: Assegna %d punti", "+Alt: Quita, +Shift: por %d puntos", "+Alt: \37325\20998\37197;,+Shift:%d \28857\25968"); */ LANGUAGE( STR_STATS_UNASSIGN_WITH_LIMIT, "+Alt: Unassign, +Shift: by %d points", "+Alt: Désallocation, +Shift: par %d points", "+Alt: Zurücksetzen, +Shift: um %d Punkte", "+Alt: Rimuovi, +Shift: Assegna %d punti", "+Alt: Quita, +Shift: por %d puntos", "+Alt: Odejmij, +Shift: %d punktów"); // "+Alt: ????, +Shift: %d ??"); LANGUAGE( STR_STATS_UNASSIGN_WITHOUT_LIMIT, "+Alt: Unassign, +Shift: all remaining points", "+Alt: Désallocation, +Shift: Tous les points restants", "+Alt: Zurücksetzen, +Shift: Alle verbleibenden Punkte", "+Alt: Rimuovi, +Shift: Assegna tutti i punti rimanenti", "+Alt: Quita, +Shift: Todos los puntos restantes", "+Alt: Odejmij, +Shift: wszystkie pozostale punkty"); // "+Alt: ????, +Shift: ???"); LANGUAGE( STR_STATS_BASE_MIN, "Base: %d (Min: %d)", "Base: %d (Min: %d)", "Basiswert: %d (Min: %d)", "Base: %d (Min: %d)", "Base: %d (Min: %d)", "Bazowo: %d (Minimum: %d)"); // "??: %d(??: %d)"); LANGUAGE( STR_SKILLS_UNASSIGN, "Un-allocate all skills points", "Désalloue tous les points d'aptitudes", "Alle Fertigkeitspunkte zurücksetzen", "Rimuovi tutte le abilità", "Quita todos los puntos de habilidades", "Rozdaj od nowa wszystkie punkty umiejetnosci"); // "????????"); LANGUAGE( STR_STASH_PREVIOUS_PAGE, "Previous Page (+shift: First Page)", "Page précédente (+shift: Première page)", "Vorherige Seite (+shift: Erste Seite)", "Pagina Precedente (+shift: Prima Pagina)", "Pagina anterior (+shift: Primera Pagina)", "Poprzednia Strona (+shift: Pierwsza Strona)"); // "??? (+shift: ??)"); LANGUAGE( STR_STASH_NEXT_PAGE, "Next Page (+shift: Last not empty Page)", "Page suivante (+shift: Dernière page non vide)", "Nächste Seite (+shift: Letzte nicht leere Seite )", "Pagina Successiva (+shift: Ultima Pagina non vuota)", "Pagina Siguiente (+shift: Ultima pagina non vacia)", "Nastepna Strona (+shift: Ostatnia nie pusta Strona)"); // "??? (+shift: ?????"); LANGUAGE( STR_TOGGLE_TO_PERSONAL, "Toggle to Personal Stash", "Voir coffre personnel", "Wechselt zum persönlichen Goldschatz", "Vai all'Inventario Personale", "Ver el cofre personal", "Przejdz do Skrzyni Osobistej"); // "????????"); LANGUAGE( STR_TOGGLE_TO_SHARED, "Toggle to Shared Stash", "Voir coffre partagé", "Wechselt zum gemeinsamen Goldschatz", "Vai all'Inventario Condiviso", "Ver el cofre compartido", "Przejdz do Skrzyni Wspólnej"); // "????????"); LANGUAGE( STR_STASH_PREVIOUS_INDEX, "Previous Index : by %d Pages (+Shift: %d)", "Index précédent : par %d pages (+shift: %d)", "Vorheriger Index: in %d Seiten (+shift: %d)", "Schermata Precedente : Indietro di %d Pagine (+Shift: %d)", "Indice anterior : por %d paginas (+shift: %d)", "Poprzednia Strona : po %d Stron (+Shift: %d)"); // "???? : %d ? (+Shift:%d)"); LANGUAGE( STR_STASH_NEXT_INDEX, "Next Index : by %d Pages (+shift: %d)", "Index suivant : par %d pages (+shift: %d)", "Nächster Index: in %d Seiten (+shift: %d)", "Schermata Successiva : Avanti di %d Pagine (+shift: %d)", "Indice siguiente : por %d paginas (+shift: %d)", "Nastepna Strona : po %d Stron (+shift: %d)"); // "???? : %d ? (+shift:%d)"); LANGUAGE( STR_PUT_GOLD, "Put Gold", "Poser de l'Or", "Gib Gold", "Immetti Oro", "Poner oro", "Zdeponuj Zloto"); // "????"); LANGUAGE( STR_TAKE_GOLD, "Take Gold", "Prendre de l'Or", "Nehme Gold", "Ritira Oro", "Tomar oro", "Wyplac zloto"); // "????"); LANGUAGE( STR_PERSONAL_PAGE_NUMBER, "Personal Page n°%u", "Page perso n°%u", "Persönliche Seite n°%u", "Pagina Personale n°%u", "Pagina personal n°%u", "Strona Osobista n°%u"); // "????? n°%u"); LANGUAGE( STR_SHARED_PAGE_NUMBER, "Shared Page n°%u", "Page partagée n°%u", "Gemeinsame Seite n°%u", "Pagina Condivisa n°%u", "Pagina personal n°%u", "Strona Wspólna n°%u"); // "????? n°%u"); LANGUAGE( STR_NO_SELECTED_PAGE, "No selected page", "Aucune page sélectionnée", "Keine ausgewählte Seite", "Nessuna pagina selezionata", "Ninguna pagina seleccionada", "Nie zaznaczono strony"); // "????"); LANGUAGE( STR_SHARED_GOLD_QUANTITY, "Shared Gold : %u", "Or partagé : %u", "Gemeinsamen Gold : %u", "Oro Condiviso : %u", "Oro compartido : %u", "Wspólne Zloto : %u"); // "????: %u"); LANGUAGE( STR_PREVIOUS_PAGE, "Previous Page", "Page précédente", "Vorherige Seite", "Pagina Precedente", "Pagina anterior", "Poprzednia Strona"); // "???"); LANGUAGE( STR_NEXT_PAGE, "Next Page", "Page suivante", "Nächste Seite", "Pagina Successiva", "Pagina siguiente", "Nastepna Strona"); // "???"); default : return L""; } }
const char * win_getLocale (void) { if (GetLocaleInfoExProc) { #define WIN_LOCALE_SIZE 85 WCHAR buffer[WIN_LOCALE_SIZE]; int result = GetLocaleInfoExProc(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, buffer, WIN_LOCALE_SIZE); if (result > 0) { static char locale[WIN_LOCALE_SIZE]; const WCHAR *source = buffer; char *target = locale; do { char c = *source; if (c == '-') c = '_'; *target++ = c; } while (*source++); return locale; } else { logWindowsSystemError("GetLocaleInfoEx"); } } { DWORD langid; int result = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE | LOCALE_RETURN_NUMBER, (char *)&langid, sizeof(langid)/sizeof(TCHAR)); if (result > 0) { switch (langid) { #define DIALECT(primary,secondary,locale) case MAKELANGID(LANG_##primary, SUBLANG_##primary##_##secondary): return (locale); DIALECT(AFRIKAANS, SOUTH_AFRICA, "af_ZA"); DIALECT(ALBANIAN, ALBANIA, "sq_AL"); DIALECT(ALSATIAN, FRANCE, "gsw_FR"); DIALECT(AMHARIC, ETHIOPIA, "am_ET"); DIALECT(ARABIC, ALGERIA, "ar_DZ"); DIALECT(ARABIC, BAHRAIN, "ar_BH"); DIALECT(ARABIC, EGYPT, "ar_EG"); DIALECT(ARABIC, IRAQ, "ar_IQ"); DIALECT(ARABIC, JORDAN, "ar_JO"); DIALECT(ARABIC, KUWAIT, "ar_QW"); DIALECT(ARABIC, LEBANON, "ar_LB"); DIALECT(ARABIC, LIBYA, "ar_LY"); DIALECT(ARABIC, MOROCCO, "ar_MA"); DIALECT(ARABIC, OMAN, "ar_OM"); DIALECT(ARABIC, QATAR, "ar_QA"); DIALECT(ARABIC, SAUDI_ARABIA, "ar_SA"); DIALECT(ARABIC, SYRIA, "ar_SY"); DIALECT(ARABIC, TUNISIA, "ar_TN"); DIALECT(ARABIC, UAE, "ar_AE"); DIALECT(ARABIC, YEMEN, "ar_YE"); DIALECT(ARMENIAN, ARMENIA, "hy_AM"); DIALECT(ASSAMESE, INDIA, "as_IN"); DIALECT(AZERI, CYRILLIC, "az@cyrillic"); DIALECT(AZERI, LATIN, "az@latin"); DIALECT(BASHKIR, RUSSIA, "ba_RU"); DIALECT(BASQUE, BASQUE, "eu_XX"); DIALECT(BELARUSIAN, BELARUS, "be_BY"); DIALECT(BENGALI, BANGLADESH, "bn_HD"); DIALECT(BENGALI, INDIA, "bn_IN"); DIALECT(BOSNIAN, BOSNIA_HERZEGOVINA_CYRILLIC, "bs_BA@cyrillic"); DIALECT(BOSNIAN, BOSNIA_HERZEGOVINA_LATIN, "bs_BA@latin"); DIALECT(BRETON, FRANCE, "br_FR"); DIALECT(BULGARIAN, BULGARIA, "bg_BG"); DIALECT(CATALAN, CATALAN, "ca_XX"); DIALECT(CHINESE, HONGKONG, "zh_HK"); DIALECT(CHINESE, MACAU, "zh_MO"); DIALECT(CHINESE, SIMPLIFIED, "zh_CN"); DIALECT(CHINESE, SINGAPORE, "zh_SG"); DIALECT(CHINESE, TRADITIONAL, "zh_TW"); DIALECT(CORSICAN, FRANCE, "co_FR"); DIALECT(CROATIAN, BOSNIA_HERZEGOVINA_LATIN, "hr_BA@latin"); DIALECT(CROATIAN, CROATIA, "hr_HR"); DIALECT(CZECH, CZECH_REPUBLIC, "cs_CZ"); DIALECT(DANISH, DENMARK, "da_DK"); DIALECT(DIVEHI, MALDIVES, "dv_MV"); DIALECT(DUTCH, BELGIAN, "nl_BE"); DIALECT(DUTCH, NETHERLANDS, "nl_NL"); DIALECT(ENGLISH, AUS, "en_AU"); DIALECT(ENGLISH, BELIZE, "en_BZ"); DIALECT(ENGLISH, CAN, "en_CA"); DIALECT(ENGLISH, CARIBBEAN, "en_XX"); DIALECT(ENGLISH, INDIA, "en_IN"); DIALECT(ENGLISH, IRELAND, "en_IE"); DIALECT(ENGLISH, JAMAICA, "en_JM"); DIALECT(ENGLISH, MALAYSIA, "en_MY"); DIALECT(ENGLISH, NZ, "en_NZ"); DIALECT(ENGLISH, PHILIPPINES, "en_PH"); DIALECT(ENGLISH, SINGAPORE, "en_SG"); DIALECT(ENGLISH, SOUTH_AFRICA, "en_ZA"); DIALECT(ENGLISH, TRINIDAD, "en_TT"); DIALECT(ENGLISH, UK, "en_GB"); DIALECT(ENGLISH, US, "en_US"); DIALECT(ENGLISH, ZIMBABWE, "en_ZW"); DIALECT(ESTONIAN, ESTONIA, "et_EE"); DIALECT(FAEROESE, FAROE_ISLANDS, "fo_FO"); DIALECT(FILIPINO, PHILIPPINES, "fil_PH"); DIALECT(FINNISH, FINLAND, "fi_FI"); DIALECT(FRENCH, BELGIAN, "fr_BE"); DIALECT(FRENCH, CANADIAN, "fr_CA"); DIALECT(FRENCH, FRANCE, "fr_FR"); DIALECT(FRENCH, LUXEMBOURG, "fr_LU"); DIALECT(FRENCH, MONACO, "fr_MC"); DIALECT(FRENCH, SWISS, "fr_CH"); DIALECT(FRISIAN, NETHERLANDS, "fy_NL"); DIALECT(GALICIAN, GALICIAN, "gl_ES"); DIALECT(GEORGIAN, GEORGIA, "ka_GE"); DIALECT(GERMAN, AUSTRIAN, "de_AT"); DIALECT(GERMAN, GERMANY, "de_DE"); DIALECT(GERMAN, LIECHTENSTEIN, "de_LI"); DIALECT(GERMAN, LUXEMBOURG, "de_LU"); DIALECT(GERMAN, SWISS, "de_CH"); DIALECT(GREEK, GREECE, "el_GR"); DIALECT(GREENLANDIC, GREENLAND, "kl_GL"); DIALECT(GUJARATI, INDIA, "gu_IN"); DIALECT(HAUSA, NIGERIA, "ha_NG"); DIALECT(HEBREW, ISRAEL, "he_IL"); DIALECT(HINDI, INDIA, "hi_IN"); DIALECT(HUNGARIAN, HUNGARY, "hu_HU"); DIALECT(ICELANDIC, ICELAND, "is_IS"); DIALECT(IGBO, NIGERIA, "ig_NG"); DIALECT(INDONESIAN, INDONESIA, "id_ID"); DIALECT(INUKTITUT, CANADA, "iu_CA"); DIALECT(IRISH, IRELAND, "ga_IE"); DIALECT(ITALIAN, ITALY, "it_IT"); DIALECT(ITALIAN, SWISS, "it_CH"); DIALECT(JAPANESE, JAPAN, "ja_JP"); DIALECT(KASHMIRI, INDIA, "ks_IN"); DIALECT(KAZAK, KAZAKHSTAN, "kk_KZ"); DIALECT(KHMER, CAMBODIA, "km_KH"); DIALECT(KICHE, GUATEMALA, "quc_GT"); DIALECT(KINYARWANDA, RWANDA, "rw_RW"); DIALECT(KONKANI, INDIA, "kok_IN"); DIALECT(KOREAN, KOREA, "ko_KR"); DIALECT(KYRGYZ, KYRGYZSTAN, "ky_KG"); DIALECT(LAO, LAO_PDR, "lo_LA"); DIALECT(LATVIAN, LATVIA, "lv_LV"); DIALECT(LITHUANIAN, LITHUANIA, "lt_LT"); DIALECT(LOWER_SORBIAN, GERMANY, "dsb_DE"); DIALECT(LUXEMBOURGISH, LUXEMBOURG, "lb_LU"); DIALECT(MACEDONIAN, MACEDONIA, "mk_MK"); DIALECT(MALAY, BRUNEI_DARUSSALAM, "ms_BN"); DIALECT(MALAY, MALAYSIA, "ms_MY"); DIALECT(MALAYALAM, INDIA, "ml_IN"); DIALECT(MALTESE, MALTA, "mt_MT"); DIALECT(MAORI, NEW_ZEALAND, "mi_NZ"); DIALECT(MAPUDUNGUN, CHILE, "arn_CL"); DIALECT(MARATHI, INDIA, "mr_IN"); DIALECT(MOHAWK, MOHAWK, "moh"); DIALECT(MONGOLIAN, CYRILLIC_MONGOLIA, "mn_MN@cyrillic"); DIALECT(MONGOLIAN, PRC, "mn_CN"); DIALECT(NEPALI, INDIA, "ne_IN"); DIALECT(NEPALI, NEPAL, "ne_NP"); DIALECT(NORWEGIAN, BOKMAL, "nb_NO"); DIALECT(NORWEGIAN, NYNORSK, "nn_NO"); DIALECT(OCCITAN, FRANCE, "oc_FR"); DIALECT(ORIYA, INDIA, "or_IN"); DIALECT(PASHTO, AFGHANISTAN, "ps_AF"); DIALECT(PERSIAN, IRAN, "fa_IR"); DIALECT(POLISH, POLAND, "pl_PL"); DIALECT(PORTUGUESE, BRAZILIAN, "pt_BR"); DIALECT(PORTUGUESE, PORTUGAL, "pt_PT"); DIALECT(PUNJABI, INDIA, "pa_IN"); #ifdef SUBLANG_PUNJABI_PAKISTAN DIALECT(PUNJABI, PAKISTAN, "pa_PK"); #endif /* SUBLANG_PUNJABI_PAKISTAN */ DIALECT(QUECHUA, BOLIVIA, "qu_BO"); DIALECT(QUECHUA, ECUADOR, "qu_EC"); DIALECT(QUECHUA, PERU, "qu_PE"); #ifdef SUBLANG_ROMANIAN_MOLDOVA DIALECT(ROMANIAN, MOLDOVA, "ro_MD"); #endif /* SUBLANG_ROMANIAN_MOLDOVA */ DIALECT(ROMANIAN, ROMANIA, "ro_RO"); DIALECT(RUSSIAN, RUSSIA, "ru_RU"); DIALECT(SAMI, LULE_NORWAY, "smj_NO"); DIALECT(SAMI, LULE_SWEDEN, "smj_SE"); DIALECT(SAMI, NORTHERN_FINLAND, "sme_FI"); DIALECT(SAMI, NORTHERN_NORWAY, "sme_NO"); DIALECT(SAMI, NORTHERN_SWEDEN, "sme_SE"); DIALECT(SAMI, SOUTHERN_NORWAY, "sma_NO"); DIALECT(SAMI, SOUTHERN_SWEDEN, "sma_SE"); DIALECT(SANSKRIT, INDIA, "sa_IN"); DIALECT(SERBIAN, BOSNIA_HERZEGOVINA_CYRILLIC, "sr_BA@cyrillic"); DIALECT(SERBIAN, BOSNIA_HERZEGOVINA_LATIN, "sr_BA@latin"); DIALECT(SERBIAN, CYRILLIC, "sr@cyrillic"); DIALECT(SERBIAN, LATIN, "sr@latin"); DIALECT(SINDHI, AFGHANISTAN, "sd_AF"); DIALECT(SINHALESE, SRI_LANKA, "si_LK"); DIALECT(SLOVAK, SLOVAKIA, "sk_SK"); DIALECT(SLOVENIAN, SLOVENIA, "sl_SI"); DIALECT(SOTHO, NORTHERN_SOUTH_AFRICA, "st_XX"); DIALECT(SPANISH, ARGENTINA, "es_AR"); DIALECT(SPANISH, BOLIVIA, "es_BO"); DIALECT(SPANISH, CHILE, "es_CL"); DIALECT(SPANISH, COLOMBIA, "es_CO"); DIALECT(SPANISH, COSTA_RICA, "es_CR"); DIALECT(SPANISH, DOMINICAN_REPUBLIC, "es_DO"); DIALECT(SPANISH, ECUADOR, "es_EC"); DIALECT(SPANISH, EL_SALVADOR, "es_SV"); DIALECT(SPANISH, GUATEMALA, "es_GT"); DIALECT(SPANISH, HONDURAS, "es_HN"); DIALECT(SPANISH, MEXICAN, "es_MX"); DIALECT(SPANISH, MODERN, "es_XX"); DIALECT(SPANISH, NICARAGUA, "es_NI"); DIALECT(SPANISH, PANAMA, "es_PA"); DIALECT(SPANISH, PARAGUAY, "es_PY"); DIALECT(SPANISH, PERU, "es_PE"); DIALECT(SPANISH, PUERTO_RICO, "es_PR"); DIALECT(SPANISH, SPAIN, "es_ES"); DIALECT(SPANISH, URUGUAY, "es_UY"); DIALECT(SPANISH, US, "es_US"); DIALECT(SPANISH, VENEZUELA, "es_VE"); DIALECT(SWEDISH, FINLAND, "sv_FI"); DIALECT(SWEDISH, SWEDEN, "sv_SE"); DIALECT(SYRIAC, TURKEY, "syr_TR"); DIALECT(TAMAZIGHT, ALGERIA_LATIN, "ber_DZ@latin"); DIALECT(TAMIL, INDIA, "ta_IN"); DIALECT(TATAR, RUSSIA, "tt_RU"); DIALECT(TELUGU, INDIA, "te_IN"); DIALECT(THAI, THAILAND, "th_TH"); DIALECT(TIBETAN, BHUTAN, "bo_BT"); DIALECT(TIBETAN, PRC, "bo_CN"); DIALECT(TIGRIGNA, ERITREA, "ti_ER"); DIALECT(TSWANA, SOUTH_AFRICA, "tn_ZA"); DIALECT(TURKISH, TURKEY, "tr_TR"); DIALECT(UIGHUR, PRC, "ug_CN"); DIALECT(UKRAINIAN, UKRAINE, "uk_UA"); //DIALECT(UPPER_SORBIAN, GERMANY, "hsb_DE"); DIALECT(URDU, INDIA, "ur_IN"); DIALECT(URDU, PAKISTAN, "ur_PK"); DIALECT(UZBEK, CYRILLIC, "uz@cyrillic"); DIALECT(UZBEK, LATIN, "uz@latin"); DIALECT(VIETNAMESE, VIETNAM, "vi_VN"); DIALECT(WELSH, UNITED_KINGDOM, "cy_GB"); DIALECT(WOLOF, SENEGAL, "fy_SN"); DIALECT(XHOSA, SOUTH_AFRICA, "xh_ZA"); DIALECT(YAKUT, RUSSIA, "sah_RU"); DIALECT(YI, PRC, "ii_CN"); DIALECT(YORUBA, NIGERIA, "yo_NG"); DIALECT(ZULU, SOUTH_AFRICA, "zu_ZA"); #undef DIALECT } switch (PRIMARYLANGID(langid)) { #define LANGUAGE(primary,locale) case LANG_##primary: return (locale); LANGUAGE(AFRIKAANS, "af"); LANGUAGE(ALBANIAN, "sq"); LANGUAGE(ALSATIAN, "gsw"); LANGUAGE(AMHARIC, "am"); LANGUAGE(ARABIC, "ar"); LANGUAGE(ARMENIAN, "hy"); LANGUAGE(ASSAMESE, "as"); LANGUAGE(AZERI, "az"); LANGUAGE(BASHKIR, "ba"); LANGUAGE(BASQUE, "eu"); LANGUAGE(BELARUSIAN, "be"); LANGUAGE(BENGALI, "bn"); LANGUAGE(BOSNIAN, "bs"); LANGUAGE(BOSNIAN_NEUTRAL, "bs"); LANGUAGE(BRETON, "br"); LANGUAGE(BULGARIAN, "bg"); LANGUAGE(CATALAN, "ca"); LANGUAGE(CHINESE, "zh"); LANGUAGE(CORSICAN, "co"); //LANGUAGE(CROATIAN, "hr"); LANGUAGE(CZECH, "cs"); LANGUAGE(DANISH, "da"); LANGUAGE(DARI, "gbz"); LANGUAGE(DIVEHI, "dv"); LANGUAGE(DUTCH, "nl"); LANGUAGE(ENGLISH, "en"); LANGUAGE(ESTONIAN, "et"); LANGUAGE(FAEROESE, "fo"); LANGUAGE(FILIPINO, "fil"); LANGUAGE(FINNISH, "fi"); LANGUAGE(FRENCH, "fr"); LANGUAGE(FRISIAN, "fy"); LANGUAGE(GALICIAN, "gl"); LANGUAGE(GEORGIAN, "ka"); LANGUAGE(GERMAN, "de"); LANGUAGE(GREEK, "el"); LANGUAGE(GREENLANDIC, "kl"); LANGUAGE(GUJARATI, "gu"); LANGUAGE(HAUSA, "ha"); LANGUAGE(HEBREW, "he"); LANGUAGE(HINDI, "hi"); LANGUAGE(HUNGARIAN, "hu"); LANGUAGE(ICELANDIC, "is"); LANGUAGE(IGBO, "ig"); LANGUAGE(INDONESIAN, "id"); LANGUAGE(INUKTITUT, "iu"); LANGUAGE(IRISH, "ga"); LANGUAGE(ITALIAN, "it"); LANGUAGE(JAPANESE, "ja"); LANGUAGE(KANNADA, "kn"); LANGUAGE(KASHMIRI, "ks"); LANGUAGE(KAZAK, "kk"); LANGUAGE(KHMER, "km"); LANGUAGE(KICHE, "quc"); LANGUAGE(KINYARWANDA, "rw"); LANGUAGE(KONKANI, "kok"); LANGUAGE(KOREAN, "ko"); LANGUAGE(KYRGYZ, "ky"); LANGUAGE(LAO, "lo"); LANGUAGE(LATVIAN, "lv"); LANGUAGE(LITHUANIAN, "lt"); LANGUAGE(LOWER_SORBIAN, "dsb"); LANGUAGE(LUXEMBOURGISH, "lb"); LANGUAGE(MACEDONIAN, "mk"); LANGUAGE(MALAGASY, "mg"); LANGUAGE(MALAY, "ms"); LANGUAGE(MALAYALAM, "ml"); LANGUAGE(MALTESE, "mt"); LANGUAGE(MANIPURI, "mni"); LANGUAGE(MAORI, "mi"); LANGUAGE(MAPUDUNGUN, "arn"); LANGUAGE(MARATHI, "mr"); LANGUAGE(MOHAWK, "moh"); LANGUAGE(MONGOLIAN, "mn"); LANGUAGE(NEPALI, "ne"); LANGUAGE(NORWEGIAN, "no"); LANGUAGE(OCCITAN, "oc"); LANGUAGE(ORIYA, "or"); LANGUAGE(PASHTO, "ps"); LANGUAGE(PERSIAN, "fa"); LANGUAGE(POLISH, "pl"); LANGUAGE(PORTUGUESE, "pt"); LANGUAGE(PUNJABI, "pa"); LANGUAGE(QUECHUA, "qu"); LANGUAGE(ROMANIAN, "ro"); LANGUAGE(RUSSIAN, "ru"); LANGUAGE(SAMI, "se"); LANGUAGE(SANSKRIT, "sa"); //LANGUAGE(SERBIAN, "sr"); LANGUAGE(SERBIAN_NEUTRAL, "sr"); LANGUAGE(SINDHI, "sd"); LANGUAGE(SINHALESE, "si"); LANGUAGE(SLOVAK, "sk"); LANGUAGE(SLOVENIAN, "sl"); LANGUAGE(SOTHO, "st"); LANGUAGE(SPANISH, "es"); LANGUAGE(SWAHILI, "sw"); LANGUAGE(SWEDISH, "sv"); LANGUAGE(SYRIAC, "syr"); LANGUAGE(TAMAZIGHT, "ber"); LANGUAGE(TAMIL, "ta"); LANGUAGE(TATAR, "tt"); LANGUAGE(TELUGU, "te"); LANGUAGE(THAI, "th"); LANGUAGE(TIBETAN, "bo"); LANGUAGE(TIGRIGNA, "ti"); LANGUAGE(TSWANA, "tn"); LANGUAGE(TURKISH, "tr"); LANGUAGE(UIGHUR, "ug"); LANGUAGE(UKRAINIAN, "uk"); //LANGUAGE(UPPER_SORBIAN, "hsb"); LANGUAGE(URDU, "ur"); LANGUAGE(UZBEK, "uz"); LANGUAGE(VIETNAMESE, "vi"); LANGUAGE(WELSH, "cy"); LANGUAGE(WOLOF, "fy"); LANGUAGE(XHOSA, "xh"); LANGUAGE(YAKUT, "sah"); LANGUAGE(YI, "ii"); LANGUAGE(YORUBA, "yo"); LANGUAGE(ZULU, "zu"); #undef LANGUAGE } } else { logWindowsSystemError("GetLocaleInfo"); } } return "xx"; }
int getLexBuf(struct lexBuf *lb) { register int ch; struct charBuf *cb; register char *ccc, *cfin; register char *cc, *dd, *lmax, *lexStartDd; unsigned chval=0; int rlex; int cline,clo; /* current line, current line offset (for collumn)*/ char *clb; /* current line begin */ char oldCh; int line,size,cfile,lexStartCol, lexStartFilePos, column, lexemlen; S_position lexPos; /* first test whether the input is cached */ if (s_cache.activeCache && inStacki==0 && macStacki==0) { cacheInput(); s_cache.lexcc = lb->a; } lmax = lb->a + LEX_BUFF_SIZE - MAX_LEXEM_SIZE; for(dd=lb->a,cc=lb->cc; cc<lb->fin; cc++,dd++) *dd = *cc; lb->cc = lb->a; cb = &lb->cb; cline = cb->lineNum; clb = cb->lineBegin; clo = cb->collumnOffset; ccc = cb->cc; cfin = cb->fin; cfile = cb->fileNumber; GetChar(ch,ccc,cfin,cb,clb,clo); contin: DeleteBlank(ch,ccc,cfin,cb,clb,clo); if (dd >= lmax) { UngetChar(ch,ccc,cfin,cb); goto finish; } NOTE_NEW_LEXEM_POSITION(ch,ccc,cfin,cb,lb,dd,cfile,cline,clb,clo); /* yytext = ccc; */ lexStartDd = dd; lexStartCol = COLUMN_POS(ccc,clb,clo); if (ch == '_' || isalpha(ch) || (ch=='$' && (LANGUAGE(LAN_YACC)||LANGUAGE(LAN_JAVA)))) { ProcessIdentifier(ch, ccc, cfin, cb, dd, cfile, cline, clb, clo, lab2); goto nextLexem; } else if (isdigit(ch)) { /* *************** number ******************************* */ register long unsigned val=0; lexStartFilePos = ABS_FILE_POS(cb,cfin,ccc); if (ch=='0') { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch=='x' || ch=='X') { /* hexa */ GetChar(ch,ccc,cfin,cb,clb,clo); while (isdigit(ch)||(ch>='a'&&ch<='f')||(ch>='A'&&ch<='F')) { if (ch>='a') val = val*16+ch-'a'+10; else if (ch>='A') val = val*16+ch-'A'+10; else val = val*16+ch-'0'; GetChar(ch,ccc,cfin,cb,clb,clo); } } else { /* octal */ while (isdigit(ch) && ch<='8') { val = val*8+ch-'0'; GetChar(ch,ccc,cfin,cb,clb,clo); } } } else { /* decimal */ while (isdigit(ch)) { val = val*10+ch-'0'; GetChar(ch,ccc,cfin,cb,clb,clo); } } if (ch == '.' || ch=='e' || ch=='E' || ((ch=='d' || ch=='D'|| ch=='f' || ch=='F') && LANGUAGE(LAN_JAVA))) { /* floating point */ fpConstFin(ch,ccc,cfin,cb,clb,clo,rlex); PutLexToken(rlex,dd); PutLexPosition(cfile, cline, lexStartCol, dd); PutLexInt(ABS_FILE_POS(cb,cfin,ccc)-lexStartFilePos, dd); goto nextLexem; } /* integer */ conType(val,ch,ccc,cfin,cb,clb,clo, rlex); PutLexToken(rlex,dd); PutLexInt(val,dd); PutLexPosition(cfile, cline, lexStartCol, dd); PutLexInt(ABS_FILE_POS(cb,cfin,ccc)-lexStartFilePos, dd); goto nextLexem; } else switch (ch) { /* ************ special character ********************* */ case '.': lexStartFilePos = ABS_FILE_POS(cb,cfin,ccc); GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '.' && LANGUAGE(LAN_C|LAN_YACC|LAN_CCC)) { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '.') { GetChar(ch,ccc,cfin,cb,clb,clo); PutLexToken(ELIPSIS,dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem; } else { UngetChar(ch,ccc,cfin,cb); ch = '.'; } PutLexToken('.',dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem; } else if (ch=='*' && LANGUAGE(LAN_CCC)) { GetChar(ch,ccc,cfin,cb,clb,clo); PutLexToken(POINTM_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem; } else if (isdigit(ch)) { /* floating point constant */ UngetChar(ch,ccc,cfin,cb); ch = '.'; fpConstFin(ch,ccc,cfin,cb,clb,clo,rlex); PutLexToken(rlex,dd); PutLexPosition(cfile, cline, lexStartCol, dd); PutLexInt(ABS_FILE_POS(cb,cfin,ccc)-lexStartFilePos, dd); goto nextLexem; } else { PutLexToken('.',dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem; } case '-': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch=='=') { PutLexToken(SUB_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd); GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (ch=='-') {PutLexToken(DEC_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else if (ch=='>' && LANGUAGE(LAN_C|LAN_YACC|LAN_CCC)) { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch=='*' && LANGUAGE(LAN_CCC)) {PutLexToken(PTRM_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken(PTR_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} } else {PutLexToken('-',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '+': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '=') { PutLexToken(ADD_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else if (ch == '+') { PutLexToken(INC_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('+',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '>': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '>') { GetChar(ch,ccc,cfin,cb,clb,clo); if(ch=='>' && LANGUAGE(LAN_JAVA)){ GetChar(ch,ccc,cfin,cb,clb,clo); if(ch=='='){PutLexToken(URIGHT_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken(URIGHT_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} } else if(ch=='='){PutLexToken(RIGHT_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken(RIGHT_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} } else if (ch == '='){PutLexToken(GE_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken('>',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '<': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '<') { GetChar(ch,ccc,cfin,cb,clb,clo); if(ch=='='){PutLexToken(LEFT_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken(LEFT_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} } else if (ch == '='){PutLexToken(LE_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem;} else {PutLexToken('<',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '*': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(MUL_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('*',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '%': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(MOD_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } /*& else if (LANGUAGE(LAN_YACC) && ch == '{'){ PutLexToken(YACC_PERC_LPAR,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (LANGUAGE(LAN_YACC) && ch == '}'){ PutLexToken(YACC_PERC_RPAR,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } &*/ else {PutLexToken('%',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '&': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(AND_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (ch == '&'){ PutLexToken(AND_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (ch == '*') { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '/') { /* a program commentary, ignore */ GetChar(ch,ccc,cfin,cb,clb,clo); CommentaryEndRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo,0); goto nextLexem; } else { UngetChar(ch,ccc,cfin,cb); ch = '*'; PutLexToken('&',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem; }} else {PutLexToken('&',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '^': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(XOR_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('^',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '|': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(OR_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (ch == '|'){ PutLexToken(OR_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('|',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '=': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(EQ_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('=',dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem;} case '!': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(NE_OP,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken('!',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case ':': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == ':' && LANGUAGE(LAN_CCC)){ PutLexToken(DPOINT,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else {PutLexToken(':',dd); PutLexPosition(cfile, cline, lexStartCol, dd);goto nextLexem;} case '\'': chval = 0; lexStartFilePos = ABS_FILE_POS(cb,cfin,ccc); do { GetChar(ch,ccc,cfin,cb,clb,clo); while (ch=='\\') { GetChar(ch,ccc,cfin,cb,clb,clo); /* TODO escape sequences */ GetChar(ch,ccc,cfin,cb,clb,clo); } if (ch != '\'') chval = chval * 256 + ch; } while (ch != '\'' && ch != '\n'); if (ch=='\'') { PutLexToken(CHAR_LITERAL,dd); PutLexInt(chval,dd); PutLexPosition(cfile, cline, lexStartCol, dd); PutLexInt(ABS_FILE_POS(cb,cfin,ccc)-lexStartFilePos, dd); GetChar(ch,ccc,cfin,cb,clb,clo); } goto nextLexem; case '\"': line = cline; size = 0; PutLexToken(STRING_LITERAL,dd); do { GetChar(ch,ccc,cfin,cb,clb,clo); size ++; if (ch!='\"' && size<MAX_LEXEM_SIZE-10) PutLexChar(ch,dd); if (ch=='\\') { GetChar(ch,ccc,cfin,cb,clb,clo); size ++; if (size < MAX_LEXEM_SIZE-10) PutLexChar(ch,dd); /* TODO escape sequences */ if (ch == '\n') {cline ++; clb = ccc; clo = 0;} ch = 0; } if (ch == '\n') { cline ++; clb = ccc; clo = 0; if (s_opt.strictAnsi && (s_opt.debug || s_opt.err)) { warning(ERR_ST,"string constant through end of line"); } } // in Java CR LF can't be a part of string, even there // are benchmarks making Xrefactory coredump if CR or LF // is a part of strings } while (ch != '\"' && (ch != '\n' || !s_opt.strictAnsi) && ch != -1); if (ch == -1 && s_opt.taskRegime!=RegimeEditServer) { warning(ERR_ST,"string constant through EOF"); } PutLexChar(0,dd); PutLexPosition(cfile, cline, lexStartCol, dd); PutLexLine(cline-line,dd); GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; case '/': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '='){ PutLexToken(DIV_ASSIGN,dd); PutLexPosition(cfile, cline, lexStartCol, dd);GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else if (ch=='*') { int javadoc=0; CommentaryBegRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo); GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '&') { /* ****** a program comment, ignore */ GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } else { if (ch=='*' && LANGUAGE(LAN_JAVA)) javadoc = 1; UngetChar(ch,ccc,cfin,cb); ch = '*'; } /* !!! COPY BLOCK TO '/n' */ PassComment(ch,oldCh,ccc,cfin,cb,dd,cline,clb,clo); CommentaryEndRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo,javadoc); goto nextLexem; } else if (ch=='/' && s_opt.cpp_comment) { /* ******* a // comment ******* */ CommentaryBegRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo); GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '&') { /* ****** a program comment, ignore */ GetChar(ch,ccc,cfin,cb,clb,clo); CommentaryEndRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo,0); goto nextLexem; } line = cline; while (ch!='\n' && ch != -1) { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '\\') { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch=='\n') {cline ++; clb = ccc; clo = 0;} GetChar(ch,ccc,cfin,cb,clb,clo); } } CommentaryEndRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo,0); PutLexLine(cline-line,dd); goto nextLexem; } else { PutLexToken('/',dd); PutLexPosition(cfile, cline, lexStartCol, dd); goto nextLexem; } case '\\': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '\n') { cline ++; clb = ccc; clo = 0; PutLexLine(1, dd); GetChar(ch,ccc,cfin,cb,clb,clo); } else { PutLexToken('\\',dd); PutLexPosition(cfile, cline, lexStartCol, dd); } goto nextLexem; case '\n': column = COLUMN_POS(ccc,clb,clo); if (column >= MAX_REFERENCABLE_COLUMN) { fatalError(ERR_ST, "position over MAX_REFERENCABLE_COLUMN, read TROUBLES in README file", XREF_EXIT_ERR); } if (cline >= MAX_REFERENCABLE_LINE) { fatalError(ERR_ST, "position over MAX_REFERENCABLE_LINE, read TROUBLES in README file", XREF_EXIT_ERR); } cline ++; clb = ccc; clo = 0; GetChar(ch,ccc,cfin,cb,clb,clo); DeleteBlank(ch,ccc,cfin,cb,clb,clo); if (ch == '/') { GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '*') { CommentaryBegRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo); GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '&') { /* ****** a program comment, ignore */ GetChar(ch,ccc,cfin,cb,clb,clo); } else { int javadoc=0; if (ch == '*' && LANGUAGE(LAN_JAVA)) javadoc = 1; UngetChar(ch,ccc,cfin,cb); ch = '*'; PassComment(ch,oldCh,ccc,cfin,cb,dd,cline,clb,clo); CommentaryEndRef(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo,javadoc); DeleteBlank(ch,ccc,cfin,cb,clb,clo); } } else { UngetChar(ch,ccc,cfin,cb); ch = '/'; } } PutLexToken('\n',dd); PutLexPosition(cfile, cline, lexStartCol, dd); if (ch == '#' && LANGUAGE(LAN_C|LAN_CCC|LAN_YACC)) { NOTE_NEW_LEXEM_POSITION(ch,ccc,cfin,cb,lb,dd,cfile,cline,clb,clo); HandleCppToken(ch,ccc,cfin,cb,dd,cfile,cline,clb,clo); } goto nextLexem; case '#': GetChar(ch,ccc,cfin,cb,clb,clo); if (ch == '#') { GetChar(ch,ccc,cfin,cb,clb,clo); PutLexToken(CPP_COLLATION,dd); PutLexPosition(cfile, cline, lexStartCol, dd); } else { PutLexToken('#',dd); PutLexPosition(cfile, cline, lexStartCol, dd); } goto nextLexem; case -1: /* ** probably end of file ** */ goto nextLexem; #if ZERO case '{': if (brack_deep==0) printf("/**/}"); brack_deep+=2; case '}': brack_deep--; #endif default: if (ch >= 32) { /* small chars ignored */ PutLexToken(ch,dd); PutLexPosition(cfile, cline, lexStartCol, dd); } GetChar(ch,ccc,cfin,cb,clb,clo); goto nextLexem; } assert(0); nextLexem: if (s_opt.taskRegime == RegimeEditServer) { int pi,lpi,len,lastlex,parChar,apos,idcoll; S_position *ps; int pos0,pos1,currentLexemPosition; pi = (lb->posi-1) % LEX_POSITIONS_RING_SIZE; ps = & lb->pRing[pi]; currentLexemPosition = lb->fpRing[pi]; if ( cfile == s_olOriginalFileNumber && cfile != s_noneFileIndex && cfile != -1 && s_jsl==NULL ) { if (s_opt.cxrefs == OLO_EXTRACT && lb->posi>=2) { DeleteBlank(ch,ccc,cfin,cb,clb,clo); pos1 = ABS_FILE_POS(cb, cfin, ccc); //&idcoll = COLUMN_POS(ccc,clb,clo); //&fprintf(dumpOut,":pos1==%d, olCursorPos==%d, olMarkPos==%d\n",pos1,s_opt.olCursorPos,s_opt.olMarkPos); // all this is very, very HACK!!! if (pos1 >= s_opt.olCursorPos && ! s_cps.marker1Flag) { if (LANGUAGE(LAN_JAVA)) parChar = ';'; else { if (s_cps.marker2Flag) parChar='}'; else parChar = '{'; } PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(';',dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(';',dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(OL_MARKER_TOKEN,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); s_cps.marker1Flag=1; } else if (pos1 >= s_opt.olMarkPos && ! s_cps.marker2Flag){ if (LANGUAGE(LAN_JAVA)) parChar = ';'; else { if (s_cps.marker1Flag) parChar='}'; else parChar = '{'; } PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(';',dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(';',dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(OL_MARKER_TOKEN,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); PutLexToken(parChar,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); s_cps.marker2Flag=1; } } else if ( s_opt.cxrefs == OLO_COMPLETION || s_opt.cxrefs == OLO_SEARCH) { DeleteBlank(ch,ccc,cfin,cb,clb,clo); apos = ABS_FILE_POS(cb, cfin, ccc); if (currentLexemPosition < s_opt.olCursorPos && (apos >= s_opt.olCursorPos || (ch == -1 && apos+1 == s_opt.olCursorPos))) { //&sprintf(tmpBuff,"currentLexemPosition, s_opt.olCursorPos, ABS_FILE_POS, ch == %d, %d, %d, %d\n",currentLexemPosition, s_opt.olCursorPos, apos, ch);ppcGenTmpBuff(); //&fprintf(dumpOut,":check\n");fflush(dumpOut); lastlex = NextLexToken(lexStartDd); if (lastlex == IDENTIFIER) { len = s_opt.olCursorPos-currentLexemPosition; //&fprintf(dumpOut,":check %s[%d] <-> %d\n", lexStartDd+TOKEN_SIZE, len,strlen(lexStartDd+TOKEN_SIZE));fflush(dumpOut); if (len <= strlen(lexStartDd+TOKEN_SIZE)) { if (s_opt.cxrefs == OLO_SEARCH) { char *ddd; ddd = lexStartDd; PutLexToken(IDENT_TO_COMPLETE, ddd); } else { dd = lexStartDd; PutLexToken(IDENT_TO_COMPLETE, dd); dd += len; PutLexChar(0,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); } //&fprintf(dumpOut,":ress %s\n", lexStartDd+TOKEN_SIZE);fflush(dumpOut); } else { // completion after an identifier PUT_EMPTY_COMPLETION_ID(ccc,dd,cline,clo,clb, cfile, apos-s_opt.olCursorPos); } } else if ((lastlex == LINE_TOK || lastlex == STRING_LITERAL) && (apos-s_opt.olCursorPos != 0)) { // completion inside special lexems, do // NO COMPLETION } else { // completion after another lexem PUT_EMPTY_COMPLETION_ID(ccc,dd,cline,clo,clb, cfile, apos-s_opt.olCursorPos); } } // TODO, make this in a more standard way, !!! } else { //&fprintf(dumpOut,":testing %d <= %d <= %d\n", currentLexemPosition, s_opt.olCursorPos, ABS_FILE_POS(cb, cfin, ccc)); if (currentLexemPosition <= s_opt.olCursorPos && ABS_FILE_POS(cb, cfin, ccc) >= s_opt.olCursorPos) { gotOnLineCxRefs( ps); lastlex = NextLexToken(lexStartDd); if (lastlex == IDENTIFIER) { strcpy(s_olstring, lexStartDd+TOKEN_SIZE); } } if (LANGUAGE(LAN_JAVA)) { // there is a problem with this, when browsing at CPP construction // that is why I restrict it to Java language! It is usefull // only for Java refactorings DeleteBlank(ch,ccc,cfin,cb,clb,clo); apos = ABS_FILE_POS(cb, cfin, ccc); if (apos >= s_opt.olCursorPos && ! s_cps.marker1Flag) { PutLexToken(OL_MARKER_TOKEN,dd); PutLexPosition(ps->file,ps->line,ps->coll,dd); s_cps.marker1Flag=1; } } } } } if (ch != -1) goto contin; finish: cb->cc = ccc; cb->fin = cfin; cb->lineNum = cline; cb->lineBegin = clb; cb->collumnOffset = clo; lb->fin = dd; //&lexBufDump(lb); if (lb->fin == lb->a) return(0); return(1); }
int displayingErrorMessages() { // no error messages for file preloaded for symbols if (LANGUAGE(LAN_JAVA) && s_jsl!=NULL) return(0); if (s_opt.debug || s_opt.err) return(1); return(0); }
CTimeServerConfig::CTimeServerConfig(const wxString& dir, const wxString& name) : m_fileName(), m_callsign(DEFAULT_CALLSIGN), m_sendA(DEFAULT_SENDA), m_sendB(DEFAULT_SENDB), m_sendC(DEFAULT_SENDC), m_sendD(DEFAULT_SENDD), m_sendE(DEFAULT_SENDE), m_address(DEFAULT_ADDRESS), m_language(DEFAULT_LANGUAGE), m_format(DEFAULT_FORMAT), m_interval(DEFAULT_INTERVAL), m_x(DEFAULT_WINDOW_X), m_y(DEFAULT_WINDOW_Y) { wxASSERT(!dir.IsEmpty()); wxString fileName = CONFIG_FILE_NAME; if (!name.IsEmpty()) fileName = CONFIG_FILE_NAME + wxT("_") + name; m_fileName.Assign(dir, fileName); wxTextFile file(m_fileName.GetFullPath()); bool exists = file.Exists(); if (!exists) return; bool ret = file.Open(); if (!ret) { wxLogError(wxT("Cannot open the config file - %s"), m_fileName.GetFullPath().c_str()); return; } long temp; wxString str = file.GetFirstLine(); while (!file.Eof()) { if (str.GetChar(0U) == wxT('#')) { str = file.GetNextLine(); continue; } int n = str.Find(wxT('=')); if (n == wxNOT_FOUND) { str = file.GetNextLine(); continue; } wxString key = str.Left(n); wxString val = str.Mid(n + 1U); if (key.IsSameAs(KEY_CALLSIGN)) { m_callsign = val; } else if (key.IsSameAs(KEY_SENDA)) { val.ToLong(&temp); m_sendA = temp == 1L; } else if (key.IsSameAs(KEY_SENDB)) { val.ToLong(&temp); m_sendB = temp == 1L; } else if (key.IsSameAs(KEY_SENDC)) { val.ToLong(&temp); m_sendC = temp == 1L; } else if (key.IsSameAs(KEY_SENDD)) { val.ToLong(&temp); m_sendD = temp == 1L; } else if (key.IsSameAs(KEY_SENDE)) { val.ToLong(&temp); m_sendE = temp == 1L; } else if (key.IsSameAs(KEY_ADDRESS)) { m_address = val; } else if (key.IsSameAs(KEY_LANGUAGE)) { val.ToLong(&temp); m_language = LANGUAGE(temp); } else if (key.IsSameAs(KEY_FORMAT)) { val.ToLong(&temp); m_format = FORMAT(temp); } else if (key.IsSameAs(KEY_INTERVAL)) { val.ToLong(&temp); m_interval = INTERVAL(temp); } else if (key.IsSameAs(KEY_WINDOW_X)) { val.ToLong(&temp); m_x = int(temp); } else if (key.IsSameAs(KEY_WINDOW_Y)) { val.ToLong(&temp); m_y = int(temp); } str = file.GetNextLine(); } file.Close(); }