diff --git a/ChangeLog b/ChangeLog index fee44adcae..36be3e2e2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2000-05-21 Lars Gullik Bjønnes + + * src/language.C (initL): change the initialization of languages + so that compiles goes _fast_. + + * src/menus.C (Add_to_toc_menu): limit the line length in TOC to + 40 chars. + + * src/lyxfunc.C (processKeyEvent): initalize keysym_return to 0. + 2000-05-21 Lars Gullik Bjønnes * release 1.1.5pre3 diff --git a/src/language.C b/src/language.C index f36cbf47e3..e5121b5c17 100644 --- a/src/language.C +++ b/src/language.C @@ -19,11 +19,11 @@ public: } private: /// - void newLang(string const & l, string const & d, bool rtl) { - Language lang; - lang.lang = l; - lang.display = d; - lang.RightToLeft = rtl; + void newLang(char const * l, char const * d, bool rtl) { + Language lang(l, d, rtl); + //lang.lang = l; + //lang.display = d; + //lang.RightToLeft = rtl; languages[l] = lang; } /// @@ -33,49 +33,69 @@ private: }; +struct lang_item { + char const * lang; + char const * display; + bool rtl; +}; + + void LangInit::initL() { - newLang("afrikaans", N_("Afrikaans"), false); - newLang("american", N_("American"), false); - newLang("arabic", N_("Arabic"), true); - newLang("austrian", N_("Austrian"), false); - newLang("bahasa", N_("Bahasa"), false); - newLang("brazil", N_("Brazil"), false); - newLang("breton", N_("Breton"), false); - newLang("catalan", N_("Catalan"), false); - newLang("croatian", N_("Croatian"), false); - newLang("czech", N_("Czech"), false); - newLang("danish", N_("Danish"), false); - newLang("dutch", N_("Dutch"), false); - newLang("english", N_("English"), false); - newLang("esperanto", N_("Esperanto"), false); - newLang("estonian", N_("Estonian"), false); - newLang("finnish", N_("Finnish"), false); - newLang("francais", N_("Francais"), false); - newLang("french", N_("French"), false); - newLang("frenchb", N_("Frenchb"), false); - newLang("galician", N_("Galician"), false); - newLang("german", N_("German"), false); - newLang("greek", N_("Greek"), false); - newLang("hebrew", N_("Hebrew"), true); - newLang("hungarian", N_("Hungarian"), false); - newLang("irish", N_("Irish"), false); - newLang("italian", N_("Italian"), false); - newLang("lsorbian", N_("Lsorbian"), false); - newLang("magyar", N_("Magyar"), false); - newLang("norsk", N_("Norsk"), false); - newLang("polish", N_("Polish"), false); - newLang("portuges", N_("Portuges"), false); - newLang("romanian", N_("Romanian"), false); - newLang("russian", N_("Russian"), false); - newLang("scottish", N_("Scottish"), false); - newLang("spanish", N_("Spanish"), false); - newLang("slovak", N_("Slovak"), false); - newLang("slovene", N_("Slovene"), false); - newLang("swedish", N_("Swedish"), false); - newLang("turkish", N_("Turkish"), false); - newLang("usorbian", N_("Usorbian"), false); - newLang("welsh", N_("Welsh"), false); + // Use this style of initialization to lower compilation times. + // Same method is used in LyXAction.C (Lgb) + + lang_item items[] = { + { "afrikaans", N_("Afrikaans"), false }, + { "american", N_("American"), false }, + { "arabic", N_("Arabic"), true }, + { "austrian", N_("Austrian"), false }, + { "bahasa", N_("Bahasa"), false }, + { "brazil", N_("Brazil"), false }, + { "breton", N_("Breton"), false }, + { "catalan", N_("Catalan"), false }, + { "croatian", N_("Croatian"), false }, + { "czech", N_("Czech"), false }, + { "danish", N_("Danish"), false }, + { "dutch", N_("Dutch"), false }, + { "english", N_("English"), false }, + { "esperanto", N_("Esperanto"), false }, + { "estonian", N_("Estonian"), false }, + { "finnish", N_("Finnish"), false }, + { "francais", N_("Francais"), false }, + { "french", N_("French"), false }, + { "frenchb", N_("Frenchb"), false }, + { "galician", N_("Galician"), false }, + { "german", N_("German"), false }, + { "greek", N_("Greek"), false }, + { "hebrew", N_("Hebrew"), true }, + { "hungarian", N_("Hungarian"), false }, + { "irish", N_("Irish"), false }, + { "italian", N_("Italian"), false }, + { "lsorbian", N_("Lsorbian"), false }, + { "magyar", N_("Magyar"), false }, + { "norsk", N_("Norsk"), false }, + { "polish", N_("Polish"), false }, + { "portuges", N_("Portuges"), false }, + { "romanian", N_("Romanian"), false }, + { "russian", N_("Russian"), false }, + { "scottish", N_("Scottish"), false }, + { "spanish", N_("Spanish"), false }, + { "slovak", N_("Slovak"), false }, + { "slovene", N_("Slovene"), false }, + { "swedish", N_("Swedish"), false }, + { "turkish", N_("Turkish"), false }, + { "usorbian", N_("Usorbian"), false }, + { "welsh", N_("Welsh"), false }, + { 0, 0, false } + }; + + int i = 0; + while (items[i].lang) { + newLang(items[i].lang, items[i].display, items[i].rtl); + ++i; + } + default_language = &languages["american"]; } diff --git a/src/lyx_main.C b/src/lyx_main.C index e5033e777c..2eca5c1a39 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -161,11 +161,11 @@ extern "C" void error_handler(int err_sig); void LyX::init(int */*argc*/, char **argv, bool gui) { // Install the signal handlers - std::signal(SIGHUP, error_handler); - std::signal(SIGFPE, error_handler); - std::signal(SIGSEGV, error_handler); - std::signal(SIGINT, error_handler); - std::signal(SIGTERM, error_handler); + signal(SIGHUP, error_handler); + signal(SIGFPE, error_handler); + signal(SIGSEGV, error_handler); + signal(SIGINT, error_handler); + signal(SIGTERM, error_handler); // // Determine path of binary diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 83e446dc4a..a0260199d6 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -190,7 +190,7 @@ int LyXFunc::processKeyEvent(XEvent * ev) char s_r[10]; string argument; XKeyEvent * keyevent = &ev->xkey; - KeySym keysym_return; + KeySym keysym_return = 0; int num_bytes = LyXLookupString(ev, s_r, 10, &keysym_return); s_r[num_bytes] = '\0'; diff --git a/src/menus.C b/src/menus.C index b9b4fa3c9c..0da5d81e5e 100644 --- a/src/menus.C +++ b/src/menus.C @@ -1288,33 +1288,42 @@ void Add_to_toc_menu(vector const & toclist, int menu, vector & menus, FL_OBJECT * ob) { unsigned int const max_number_of_items = 25; - if (to - from <= max_number_of_items) - for (unsigned int i = from; i < to; ++i) - fl_addtopup(menu, - (string(4*max(0,toclist[i].depth-depth),' ') - + toclist[i].str + "%x" - + tostr(i+1)).c_str()); - else { + if (to - from <= max_number_of_items) { + for (unsigned int i = from; i < to; ++i) { + + string line(4 * max(0, toclist[i].depth - depth),' '); + line += toclist[i].str; + line += "%x"; + line += tostr(i + 1); + string entry(line, 0, 40); + + fl_addtopup(menu, entry.c_str()); + } + } else { unsigned int pos = from; while (pos < to) { unsigned int new_pos = pos+1; while (new_pos < to && toclist[new_pos].depth > depth) ++new_pos; - if (new_pos == pos+1) { - fl_addtopup(menu, - (string(4*max(0,toclist[pos].depth-depth),' ') - + toclist[pos].str + "%x" - + tostr(pos+1)).c_str() ); + if (new_pos == pos + 1) { + string line(4 * max(0, toclist[pos].depth - depth), ' '); + line += toclist[pos].str; + line += "%x"; + line += tostr(pos + 1); + string entry(line, 0, 40); + + fl_addtopup(menu, entry.c_str()); } else { int menu2 = fl_newpup(FL_ObjWin(ob)); menus.push_back(menu2); Add_to_toc_menu(toclist, pos, new_pos, - depth+1, menu2, menus,ob); - fl_addtopup(menu, - (string(4*max(0,toclist[pos].depth-depth),' ') - + toclist[pos].str+"%m").c_str(), - menu2); + depth + 1, menu2, menus,ob); + string line(4 * max(0, toclist[pos].depth - depth), ' '); + line += toclist[pos].str; + line += "%m"; + string entry(line, 0, 40); + fl_addtopup(menu, entry.c_str(), menu2); } pos = new_pos; }