[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