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);
}
Example #3
0
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);	
}
Example #4
0
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;
}
Example #5
0
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"";
	}
}
Example #6
0
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";
}
Example #7
0
File: lex.c Project: hh/emacs
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);
}
Example #8
0
File: semact.c Project: hh/emacs
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();
}