[Libreoffice-commits] .: 2 commits - dictionaries/prj dictionaries/source

Michael Meeks mmeeks at kemper.freedesktop.org
Thu Jan 27 09:59:52 PST 2011


 dictionaries/prj/build.lst      |   67 +++++++++++++++++-----------------
 dictionaries/source/idxdict.cpp |   78 ++++++++++++++++++++++++++++++++++++++++
 dictionaries/source/makefile.mk |   15 +++++++
 3 files changed, 127 insertions(+), 33 deletions(-)

New commits:
commit 96a62ae9ee8466371637fecf98d280438bf5b07f
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Jan 27 17:59:36 2011 +0000

    compile new dictionary indexer

diff --git a/dictionaries/prj/build.lst b/dictionaries/prj/build.lst
index 3e3fa30..da1f84a 100644
--- a/dictionaries/prj/build.lst
+++ b/dictionaries/prj/build.lst
@@ -1,35 +1,36 @@
 di      dictionaries : soltools mythes NULL
 di	dictionaries					usr1 - all di_mkout NULL
-di      dictionaries\af_ZA      nmake   -       all     di_af_ZA NULL
-di      dictionaries\ca         nmake   -       all     di_ca NULL
-di      dictionaries\cs_CZ      nmake   -       all     di_cs_CZ NULL
-di      dictionaries\da_DK      nmake   -       all     di_da_DK NULL
-di      dictionaries\de_AT      nmake   -       all     di_de_AT NULL
-di      dictionaries\de_CH      nmake   -       all     di_de_CH NULL
-di      dictionaries\de_DE      nmake   -       all     di_de_DE di_de_AT di_de_CH NULL
-di      dictionaries\en         nmake   -       all     di_en NULL
-di      dictionaries\es_ES      nmake   -       all     di_es_ES NULL
-di      dictionaries\et_EE      nmake   -       all     di_et_EE NULL
-di      dictionaries\fr_FR      nmake   -       all     di_fr_FR NULL
-di      dictionaries\gl         nmake   -       all     di_gl NULL
-di      dictionaries\he_IL      nmake   -       all     di_he_IL NULL
-di      dictionaries\hr_HR      nmake   -       all     di_hr_HR NULL
-di      dictionaries\hu_HU      nmake   -       all     di_hu_HU NULL
-di      dictionaries\it_IT      nmake   -       all     di_it_IT NULL
-di      dictionaries\ku_TR      nmake   -       all     di_ku_TR NULL
-di      dictionaries\lt_LT      nmake   -       all     di_lt_LT NULL
-di      dictionaries\ne_NP      nmake   -       all     di_ne_NP NULL
-di      dictionaries\nl_NL      nmake   -       all     di_nl_NL NULL
-di      dictionaries\no         nmake   -       all     di_no NULL
-di      dictionaries\pl_PL      nmake   -       all     di_pl_PL NULL
-di      dictionaries\pt_BR      nmake   -       all     di_pt_BR NULL
-di      dictionaries\ro         nmake   -       all     di_ro NULL
-di      dictionaries\ru_RU      nmake   -       all     di_ru_RU NULL
-di      dictionaries\sk_SK      nmake   -       all     di_sk_SK NULL
-di      dictionaries\sl_SI      nmake   -       all     di_sl_SI NULL
-di      dictionaries\sr         nmake   -       all     di_sr NULL
-di      dictionaries\sv_SE      nmake   -       all     di_sv_SE NULL
-di      dictionaries\sw_TZ      nmake   -       all     di_sw_TZ NULL
-di      dictionaries\th_TH      nmake   -       all     di_th_TH NULL
-di      dictionaries\vi         nmake   -       all     di_vi NULL
-di      dictionaries\zu_ZA      nmake   -       all     di_zu_ZA NULL
+di	dictionaries\source	nmake   -       all	di_src NULL
+di      dictionaries\af_ZA      nmake   -       all     di_af_ZA di_src NULL
+di      dictionaries\ca         nmake   -       all     di_ca di_src NULL
+di      dictionaries\cs_CZ      nmake   -       all     di_cs_CZ di_src NULL
+di      dictionaries\da_DK      nmake   -       all     di_da_DK di_src NULL
+di      dictionaries\de_AT      nmake   -       all     di_de_AT di_src NULL
+di      dictionaries\de_CH      nmake   -       all     di_de_CH di_src NULL
+di      dictionaries\de_DE      nmake   -       all     di_de_DE di_de_AT di_de_CH di_src NULL
+di      dictionaries\en         nmake   -       all     di_en di_src NULL
+di      dictionaries\es_ES      nmake   -       all     di_es_ES di_src NULL
+di      dictionaries\et_EE      nmake   -       all     di_et_EE di_src NULL
+di      dictionaries\fr_FR      nmake   -       all     di_fr_FR di_src NULL
+di      dictionaries\gl         nmake   -       all     di_gl di_src NULL
+di      dictionaries\he_IL      nmake   -       all     di_he_IL di_src NULL
+di      dictionaries\hr_HR      nmake   -       all     di_hr_HR di_src NULL
+di      dictionaries\hu_HU      nmake   -       all     di_hu_HU di_src NULL
+di      dictionaries\it_IT      nmake   -       all     di_it_IT di_src NULL
+di      dictionaries\ku_TR      nmake   -       all     di_ku_TR di_src NULL
+di      dictionaries\lt_LT      nmake   -       all     di_lt_LT di_src NULL
+di      dictionaries\ne_NP      nmake   -       all     di_ne_NP di_src NULL
+di      dictionaries\nl_NL      nmake   -       all     di_nl_NL di_src NULL
+di      dictionaries\no         nmake   -       all     di_no di_src NULL
+di      dictionaries\pl_PL      nmake   -       all     di_pl_PL di_src NULL
+di      dictionaries\pt_BR      nmake   -       all     di_pt_BR di_src NULL
+di      dictionaries\ro         nmake   -       all     di_ro di_src NULL
+di      dictionaries\ru_RU      nmake   -       all     di_ru_RU di_src NULL
+di      dictionaries\sk_SK      nmake   -       all     di_sk_SK di_src NULL
+di      dictionaries\sl_SI      nmake   -       all     di_sl_SI di_src NULL
+di      dictionaries\sr         nmake   -       all     di_sr di_src NULL
+di      dictionaries\sv_SE      nmake   -       all     di_sv_SE di_src NULL
+di      dictionaries\sw_TZ      nmake   -       all     di_sw_TZ di_src NULL
+di      dictionaries\th_TH      nmake   -       all     di_th_TH di_src NULL
+di      dictionaries\vi         nmake   -       all     di_vi di_src NULL
+di      dictionaries\zu_ZA      nmake   -       all     di_zu_ZA di_src NULL
diff --git a/dictionaries/source/makefile.mk b/dictionaries/source/makefile.mk
new file mode 100644
index 0000000..1d40e7d
--- /dev/null
+++ b/dictionaries/source/makefile.mk
@@ -0,0 +1,15 @@
+PRJ=..
+PRJNAME=dictionaries
+TARGET=idxdict
+TARGETTYPE=CUI
+LIBTARGET=NO
+LIBSALCPPRT=$(0)
+
+.INCLUDE : settings.mk
+
+OBJFILES=$(OBJ)$/idxdict.obj
+APP1TARGET=idxdict
+APP1RPATH=NONE
+APP1OBJS=$(OBJFILES)
+
+.INCLUDE : target.mk
commit f52d7bc17d62e249e78699c622670fc48fe50919
Author: Steven Butler <stevenb at kjross.com.au>
Date:   Thu Jan 27 17:58:51 2011 +0000

    create native code dictionary indexer

diff --git a/dictionaries/source/idxdict.cpp b/dictionaries/source/idxdict.cpp
new file mode 100644
index 0000000..737b59d
--- /dev/null
+++ b/dictionaries/source/idxdict.cpp
@@ -0,0 +1,78 @@
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <map>
+#include <stdlib.h>
+#include <string.h>
+
+static const int MAXLINE = 1024*64;
+
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+        if (argc != 3 || strcmp(argv[1],"-o"))
+        {
+                cout << "Usage: idxdict -o outputfile < input\n";
+                ::exit(99);
+        }
+        // This call improves performance by approx 5x
+        cin.sync_with_stdio(false);
+
+        const char * outputFile(argv[2]);
+        char inputBuffer[MAXLINE];
+        multimap<string, size_t> entries;
+        multimap<string,size_t>::iterator ret(entries.begin());
+
+        int line(1);
+        cin.getline(inputBuffer, MAXLINE);
+        const string encoding(inputBuffer);
+        size_t currentOffset(encoding.size()+1);
+        while (true)
+        {
+                // Extract the next word, but not the entry count
+                cin.getline(inputBuffer, MAXLINE, '|');
+
+                if (cin.eof()) break;
+
+                string word(inputBuffer);
+                ret = entries.insert(ret, pair<string, size_t>(word, currentOffset));
+                currentOffset += word.size() + 1;
+                // Next is the entry count
+                cin.getline(inputBuffer, MAXLINE);
+                if (!cin.good())
+                {
+                        cerr << "Unable to read entry - insufficient buffer?.\n";
+                        exit(99);
+                }
+                currentOffset += strlen(inputBuffer)+1;
+                int entryCount(strtol(inputBuffer, NULL, 10));
+                for (int i(0); i < entryCount; ++i)
+                {
+                        cin.getline(inputBuffer, MAXLINE);
+                        currentOffset += strlen(inputBuffer)+1;
+                        ++line;
+                }
+        }
+
+        // Use binary mode to prevent any translation of LF to CRLF on Windows
+        ofstream outputStream(outputFile, ios_base::binary| ios_base::trunc|ios_base::out);
+        if (!outputStream.is_open())
+        {
+                cerr << "Unable to open output file " << outputFile << endl;
+                ::exit(99);
+        }
+
+        cout << outputFile << endl;
+
+        outputStream << encoding << '\n' << entries.size() << '\n';
+
+        for (multimap<string, size_t>::const_iterator ii(entries.begin());
+                ii != entries.end();
+                ++ii
+        )
+        {
+                outputStream << ii->first << '|' << ii->second << '\n';
+        }
+}
+


More information about the Libreoffice-commits mailing list