summaryrefslogtreecommitdiff
path: root/recipes/poboxserver
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/poboxserver')
-rw-r--r--recipes/poboxserver/poboxserver/OpenPOBox-1.25.diff173
-rw-r--r--recipes/poboxserver/poboxserver/pbserver.sh38
-rw-r--r--recipes/poboxserver/poboxserver/remove-local-includes.patch16
-rw-r--r--recipes/poboxserver/poboxserver/unicode.patch13
-rw-r--r--recipes/poboxserver/poboxserver_1.2.5.bb42
-rw-r--r--recipes/poboxserver/qpobox/qpobox-0.5.4-opie.patch595
-rw-r--r--recipes/poboxserver/qpobox/qpobox.patch57
-rw-r--r--recipes/poboxserver/qpobox_0.5.4.bb18
8 files changed, 952 insertions, 0 deletions
diff --git a/recipes/poboxserver/poboxserver/OpenPOBox-1.25.diff b/recipes/poboxserver/poboxserver/OpenPOBox-1.25.diff
new file mode 100644
index 0000000000..d3add6d79c
--- /dev/null
+++ b/recipes/poboxserver/poboxserver/OpenPOBox-1.25.diff
@@ -0,0 +1,173 @@
+diff -ur OpenPOBox.orig/asearch/Makefile OpenPOBox/asearch/Makefile
+--- OpenPOBox.orig/asearch/Makefile 2001-07-23 16:18:15.000000000 +0900
++++ OpenPOBox/asearch/Makefile 2003-06-14 17:52:12.668859200 +0900
+@@ -2,7 +2,6 @@
+ # $Date: 2004/09/28 03:42:40 $
+ # $Revision: 1.6 $
+ #
+-CC = gcc
+ CFLAGS = -Xcpluscomm
+ WTANGLE = perl ../wtangle/wtangle
+
+diff -ur OpenPOBox.orig/romakana/rklist OpenPOBox/romakana/rklist
+--- OpenPOBox.orig/romakana/rklist 2001-07-23 23:29:06.000000000 +0900
++++ OpenPOBox/romakana/rklist 2003-06-18 10:05:47.358003200 +0900
+@@ -127,7 +127,7 @@
+ na ナ
+ ne ネ
+ ni ニ
+-#nn ン
++nn ン
+ no ノ
+ nu ヌ
+ nya ニャ
+diff -ur OpenPOBox.orig/server/Makefile.in OpenPOBox/server/Makefile.in
+--- OpenPOBox.orig/server/Makefile.in 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/Makefile.in 2003-06-14 17:52:12.678873600 +0900
+@@ -10,7 +10,6 @@
+ # CFLAGS = -DUNIX @CFLAGS@ -Xcpluscomm \
+ # -I../asearch -I../romakana -I../include -g
+
+-CC = gcc
+ CFLAGS = -DUNIX @CFLAGS@ \
+ -I/usr/local/include -I/usr/local/lib/glib/include \
+ -I@prefix@/include \
+diff -ur OpenPOBox.orig/server/pbserver.html OpenPOBox/server/pbserver.html
+--- OpenPOBox.orig/server/pbserver.html 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/pbserver.html 2003-06-18 10:20:24.779673600 +0900
+@@ -60,8 +60,8 @@
+
+ #define POBOXSERVERPORT 1178
+
+-#define MAXCANDS 100
+-#define MAXWORDLEN 100
++#define MAXCANDS 300
++#define MAXWORDLEN 50
+ unsigned char *cands[MAXCANDS],*candspat[MAXCANDS];
+
+ int process(int);
+@@ -115,7 +115,7 @@
+
+ process(int sock)
+ {
+- unsigned char buf[1000],combuf[BUFSIZE];
++ unsigned char buf[8000],combuf[BUFSIZE];
+
+ unsigned char w[100],p[100];
+ int i,n;
+@@ -135,9 +135,11 @@
+ pobox_usedict(NULL); // save all existing changes
+ return -1; // this makes the server's main routine disconnect
+ case '1':
++#if 0 // delete tolower
+ for(pat=combuf+1;*pat;pat++){
+ if(isupper(*pat)) *pat = tolower(*pat);
+ }
++#endif
+ pat = combuf+1;
+ patlen = strlen(pat);
+ pobox_context(context[sock],strlen(context[sock]));
+diff -ur OpenPOBox.orig/server/poboxlib.html OpenPOBox/server/poboxlib.html
+--- OpenPOBox.orig/server/poboxlib.html 2002-02-19 09:37:10.000000000 +0900
++++ OpenPOBox/server/poboxlib.html 2004-09-28 10:37:22.818192000 +0900
+@@ -557,7 +557,7 @@
+ //
+ /////////////////////////////////////////////////////////////////
+
+-#define MAXCANDS 40
++#define MAXCANDS 300
+ static UCHAR *cands[MAXCANDS];
+ static UCHAR *candspat[MAXCANDS];
+ static int ncands = 0;
+@@ -603,7 +603,7 @@
+ //
+ // $BC18l8!:w(B
+ //
+-POBOX_INT pobox_search(UCHAR *pat)
++POBOX_INT pobox_search(UCHAR *orig_pat)
+ {
+ int i,j;
+ int m;
+@@ -615,12 +615,18 @@
+ UCHAR searchpat[1000];
+ UCHAR kana[MAXWORDLEN];
+
++ UCHAR pat[100];
++
+ Dict *dict;
+ DicEntry de;
+
+ if(pat == NULL || strlen(pat) > 100)
+ return 0;
+
++ for (p = orig_pat, s = pat; *p; p++, s++) {
++ *s = tolower(*p);
++ }
++ *s = '\0';
+ #ifndef USEGC
+ for(i=0;i<ncands;i++){
+ if(cands[i]) free(cands[i]);
+@@ -642,6 +648,8 @@
+ if(*s == 0xa4) *s = 0xa5;
+ }
+ addcand(&de);
++ de.word = orig_pat;
++ addcand(&de);
+ de.word = pat;
+ addcand(&de);
+ }
+@@ -769,7 +777,54 @@
+ }
+ }
+ }
++ }
++#ifdef USELOOKUP
++ else if(dict->poboxdict->type == POBOXDICT_LOOKUP){
++ // $B$"$$$^$$8!:w$O$H$j$"$($:J]N1(B
++ // $BAw$j2>L>8!:w(B
++printf("okurigana == pat=[%s]\n",pat);
++ strcpy(searchpat, pat);
++ while (ncands == 0 && !exact && *searchpat != '\0') {
++ int i, l;
++
++printf("okurigana searchpat=[%s]\n",searchpat);
++ if(lookup_search(dict->lookup,searchpat)){
++ char *line, *s;
++ UCHAR wordbuf[100];
++ for(;(line = lookup_get_next_line(dict->lookup)) && ncands < MAXCANDS;){
++ de.pat = line;
++ for(s = line;*s && *s != '\t';s++);
++ *s++ = '\0';
++ if (strncmp(de.pat, searchpat, strlen(de.pat)) != 0) {
++ /* $BF~NO$,FI$_$G;O$^$C$F$$$J$$>l9g$O8uJd$+$i30$9(B */
++ free(line);
++ continue;
++ }
++
++ de.word = s;
++ for(;*s && *s != '\t' && *s != '\n' && *s != '\r';s++);
++ *s = '\0';
++ strcpy(wordbuf, de.word);
++ Roma2Kana(pat+strlen(de.pat)-1,kana,rktable);
++ strcat(wordbuf,kana);
++ de.word = wordbuf;
++
++ de.context = NULL;
++ addcand(&de);
++ free(line);
++printf("okurigana cand=[%s]\n",s);
++ }
++ }
++ // delete vowels
++ l = strlen(searchpat);
++ searchpat[l - 1] = '\0';
++ for (i = l - 2; i >= 0 && !consonant(searchpat[i]); i--) {
++ searchpat[i] = '\0';
++ }
++ }
+ }
++#endif
++
+ }
+
+ if(ncands+3 < MAXCANDS){
diff --git a/recipes/poboxserver/poboxserver/pbserver.sh b/recipes/poboxserver/poboxserver/pbserver.sh
new file mode 100644
index 0000000000..e6067ed6ff
--- /dev/null
+++ b/recipes/poboxserver/poboxserver/pbserver.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+killproc()
+{
+ pid=`/bin/ps -e x |
+ /bin/grep $1 |
+ /bin/grep -v grep |
+ /bin/sed -e 's/^ *//' -e 's/ .*//'`
+ [ "$pid" != "" ] && kill $pid
+}
+
+usage()
+{
+ echo "Usage: $0 {start|stop}"
+}
+
+if [ $# -lt 1 ] ; then usage ; exit ; fi
+
+case "$1" in
+start)
+ echo -n "Start pbserver"
+ # make sure lo interface is configured (otherwise qpobox will not bind to pbserver)
+ ifconfig lo|grep 127.0.0.1 >/dev/null || ifconfig lo 127.0.0.1
+ cd @palmtopdir@/pobox; ./pbserver > /dev/null &
+ echo
+ sleep 1
+ ;;
+
+stop)
+ echo -n "Stop pbserver"
+ killproc pbserver
+ echo
+ ;;
+
+esac
+
+exit 0
+
diff --git a/recipes/poboxserver/poboxserver/remove-local-includes.patch b/recipes/poboxserver/poboxserver/remove-local-includes.patch
new file mode 100644
index 0000000000..10f9d312d6
--- /dev/null
+++ b/recipes/poboxserver/poboxserver/remove-local-includes.patch
@@ -0,0 +1,16 @@
+
+#
+# Signed off by Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- OpenPOBox/server/Makefile.in~remove-local-includes
++++ OpenPOBox/server/Makefile.in
+@@ -11,8 +11,6 @@
+ # -I../asearch -I../romakana -I../include -g
+
+ CFLAGS = -DUNIX @CFLAGS@ \
+- -I/usr/local/include -I/usr/local/lib/glib/include \
+- -I@prefix@/include \
+ -I../asearch -I../romakana -I../include -g
+
+ pbserver: pbserver.o server.o poboxlib.o romakana_he.o lookup.o
diff --git a/recipes/poboxserver/poboxserver/unicode.patch b/recipes/poboxserver/poboxserver/unicode.patch
new file mode 100644
index 0000000000..884070a3c8
--- /dev/null
+++ b/recipes/poboxserver/poboxserver/unicode.patch
@@ -0,0 +1,13 @@
+diff --git a/../pbserver/Makefile b/../pbserver/Makefile
+index 27847c1..d6ffff3 100755
+--- a/../pbserver/Makefile
++++ b/../pbserver/Makefile
+@@ -15,7 +15,7 @@ configure:
+ dic: staticdic learndic
+
+ staticdic: fugodic.txt
+- nkf -e $< | ruby dicfilter.rb | sort |uniq > $@
++ nkf -w $< | ruby dicfilter.rb | sort |uniq > $@
+
+ learndic:
+ touch $@
diff --git a/recipes/poboxserver/poboxserver_1.2.5.bb b/recipes/poboxserver/poboxserver_1.2.5.bb
new file mode 100644
index 0000000000..49730374e7
--- /dev/null
+++ b/recipes/poboxserver/poboxserver_1.2.5.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "OpenPOBox is an open source implementation of a 'Predictive Operation Based On eXample'"
+SECTION = "inputmethods"
+LICENSE = "GPL"
+DEPENDS = "perl-native ruby-native nkf-native"
+PR = "r7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gakusei/pobox-${PV}.tar.bz2 \
+ http://www.vanille.de/mirror/pbserver-${PV}.tar.gz \
+ file://OpenPOBox-1.25.diff;patch=1 \
+ file://remove-local-includes.patch;patch=1 \
+ file://unicode.patch;patch=1 \
+ file://pbserver.sh"
+
+S = "${WORKDIR}/OpenPOBox"
+
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "pbserver"
+INITSCRIPT_PARAMS = "start 99 5 . stop 01 0 ."
+
+EXTRA_OECONF = "--enable-lookup"
+PARALLEL_MAKE = ""
+
+do_compile() {
+ oe_runmake
+ cp ${S}/dict/data/fugodic ${WORKDIR}/pbserver/fugodic.txt
+ oe_runmake -C ${WORKDIR}/pbserver dic
+ #patch -p1
+}
+
+do_install() {
+ install -d ${D}${palmtopdir}/pobox/
+ install -m 0755 ${S}/server/pbserver ${D}${palmtopdir}/pobox/
+ install -m 0644 ${WORKDIR}/pbserver/staticdic ${D}${palmtopdir}/pobox/
+ install -m 0644 ${WORKDIR}/pbserver/learndic ${D}${palmtopdir}/pobox/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/pbserver.sh ${D}${sysconfdir}/init.d/pbserver
+ sed -i -e 's,@palmtopdir@,${palmtopdir},g' ${D}${sysconfdir}/init.d/pbserver
+}
+
+FILES_${PN}-dbg += "${palmtopdir}/pobox/.debug"
+FILES_${PN} += "${palmtopdir}/pobox/*"
diff --git a/recipes/poboxserver/qpobox/qpobox-0.5.4-opie.patch b/recipes/poboxserver/qpobox/qpobox-0.5.4-opie.patch
new file mode 100644
index 0000000000..91b9db712a
--- /dev/null
+++ b/recipes/poboxserver/qpobox/qpobox-0.5.4-opie.patch
@@ -0,0 +1,595 @@
+diff -Naur qpobox.orig/candlist.cpp qpobox/candlist.cpp
+--- qpobox.orig/candlist.cpp 2005-01-09 14:53:44.000000000 +0900
++++ qpobox/candlist.cpp 2006-04-12 23:28:06.000000000 +0900
+@@ -24,7 +24,7 @@
+
+ #include <qpainter.h>
+
+-CandList::CandList(QWidget *parent, WFlags f = 0)
++CandList::CandList(QWidget *parent, WFlags f)
+ : QLabel(parent, "CandList", f)
+ {
+ clear();
+diff -Naur qpobox.orig/icon/qpobox.xpm qpobox/icon/qpobox.xpm
+--- qpobox.orig/icon/qpobox.xpm 2003-06-15 04:58:27.000000000 +0900
++++ qpobox/icon/qpobox.xpm 2006-04-13 16:50:57.000000000 +0900
+@@ -1,97 +1,246 @@
+ /* XPM */
+-static char *magick[] = {
+-/* columns rows colors chars-per-pixel */
+-"56 26 65 1",
+-" c gray0",
+-". c gray5",
+-"X c #0c0d13",
+-"o c #161616",
+-"O c #191714",
+-"+ c gray11",
+-"@ c #131929",
+-"# c gray14",
+-"$ c #322a33",
+-"% c #303529",
+-"& c #3d3131",
+-"* c #3c3c3c",
+-"= c #1f2842",
+-"- c #3f4535",
+-"; c #2c4071",
+-": c #364472",
+-"> c #543d3d",
+-", c #544848",
+-"< c #5c4a4a",
+-"1 c #505050",
+-"2 c #545850",
+-"3 c #5f6951",
+-"4 c #6a4f4f",
+-"5 c gray42",
+-"6 c #747474",
+-"7 c gray49",
+-"8 c #102cba",
+-"9 c #4a5a81",
+-"0 c #5572b9",
+-"q c #4e71c7",
+-"w c #5d85ea",
+-"e c #6b8cde",
+-"r c #6087e9",
+-"t c #658ae7",
+-"y c #618bf4",
+-"u c #638efa",
+-"i c #6591ff",
+-"p c #6994fc",
+-"a c #a30463",
+-"s c #b12170",
+-"d c #bd387c",
+-"f c #8f6969",
+-"g c #c24281",
+-"h c #cc568a",
+-"j c #96a57f",
+-"k c gray54",
+-"l c #9b9b9b",
+-"z c #869fbb",
+-"x c #8997bc",
+-"c c #ba8b8b",
+-"v c #a3b18d",
+-"b c #bbbbbb",
+-"n c #88a9ef",
+-"m c #a3bbe3",
+-"M c #bbce9f",
+-"N c #e98fa5",
+-"B c #eb92a7",
+-"V c #e8abab",
+-"C c #ffbaba",
+-"Z c #cce0ad",
+-"A c #cee1b1",
+-"S c #d1e6b1",
+-"D c #d9eeb8",
+-"F c #def4bc",
+-"G c #fcf7bd",
+-/* pixels */
+-" ",
+-" +#l ",
+-" o . o7 ",
+-" . oCCCCCVX .* ",
+-" +. oCCCCCCCCCCCCo .+b ",
+-" o .+CCCCCNaaaaaaaNCCCC+. ok ",
+-" ,X .cCCCCCCCaaaBCCCBaaaCCCCCCC. o1 ",
+-" o oCCCCCCCCCCaaNCCCdsshNadCCCCCCCCCo # ",
+-" o ,CCCCCCCCCaaaBCCCgaaadsBCCCCC< .$ ",
+-" ooFS- >CCCCCCCNaaaaaaaBCCCCC< qip ",
+-" ooFFFFFv cCCCCCCCCCCCCf X=;yiiiip ",
+-" ooFFFFFFFFFM% 4CCCC& @wiiiiiiiiip ",
+-" ooFFFFFF888zFFFZ3 O+ :wiiiGGGGiiiiiii ",
+-" ooFFFFFF88z88zFFFFFF iiiiiiGGimGGiiiiii ",
+-" ooFFFFFF88FFz8zFFFFF iiiiiGGniiGGiiiiip ",
+-" ooFFFFFF88FFF88FFFFF iiiiiGGiiiGGiiiiii ",
+-" ooFFFFFF888zF88FFFFF pppiiGGiiiGGiiiiii ",
+-" ooFFFFFF88z888FFFFFF piiiiGGnimGiiiiiii ",
+-" o.FFFFFF88FFFFFFFFFF iiiiipGGGGiipiio 9 ",
+-" 6. oFFFFFFFFFFFFFFF iiiiiiiiiiir. .op ",
+-" 2. ovFFFFFFFFFFF ppiiiipi+o otp ",
+-" 5o .+FFFFFFFF piiipo .#x ",
+-" b+. oFFFFF p0. X*i ",
+-" F. oFF ot ",
+-" Ao. p ",
+-" "
+-};
++static char * qpobox_xpm[] = {
++"37 17 226 2",
++" c None",
++". c #191515",
++"+ c #271D1D",
++"@ c #151414",
++"# c #291F1F",
++"$ c #433232",
++"% c #221B1B",
++"& c #553F3F",
++"* c #B28383",
++"= c #FFBABA",
++"- c #FCB8B8",
++"; c #AB7F7F",
++"> c #231C1C",
++", c #372C2C",
++"' c #211D1D",
++") c #241B1B",
++"! c #5E4848",
++"~ c #B78686",
++"{ c #DDA2A2",
++"] c #F7ABB2",
++"^ c #D36491",
++"/ c #C03F7F",
++"( c #C34381",
++"_ c #C24281",
++": c #BE3A7D",
++"< c #E688A2",
++"[ c #DA9C9F",
++"} c #241E1E",
++"| c #261C1C",
++"1 c #201C1C",
++"2 c #3D2D2D",
++"3 c #211C1C",
++"4 c #563F3F",
++"5 c #775959",
++"6 c #E7AAAA",
++"7 c #EC96A8",
++"8 c #B22171",
++"9 c #C54783",
++"0 c #ED97A9",
++"a c #F19EAD",
++"b c #DD7699",
++"c c #B93078",
++"d c #C54883",
++"e c #FBB2B6",
++"f c #7B5B5B",
++"g c #413030",
++"h c #0D0D0C",
++"i c #161311",
++"j c #110E0E",
++"k c #4D3B3B",
++"l c #C49090",
++"m c #E5A7A7",
++"n c #FAB6B6",
++"o c #F5A6B0",
++"p c #BB347A",
++"q c #BA3178",
++"r c #E07D9D",
++"s c #DC7498",
++"t c #B32573",
++"u c #B62B75",
++"v c #BA3279",
++"w c #D36390",
++"x c #F9AEB4",
++"y c #EBACAC",
++"z c #E1A4A4",
++"A c #C59191",
++"B c #503C3C",
++"C c #251C1D",
++"D c #19151A",
++"E c #030303",
++"F c #1B1B1A",
++"G c #DBF1B9",
++"H c #9AA982",
++"I c #666B54",
++"J c #2E2723",
++"K c #0C0909",
++"L c #5F4645",
++"M c #815E5E",
++"N c #936B6B",
++"O c #EEAEAE",
++"P c #FDB6B8",
++"Q c #E17E9D",
++"R c #CD588B",
++"S c #F09CAC",
++"T c #E3A6A6",
++"U c #906969",
++"V c #2F2526",
++"W c #1B1619",
++"X c #3A3547",
++"Y c #334069",
++"Z c #597FDF",
++"` c #6490FE",
++" . c #07090F",
++".. c #25355D",
++"+. c #DEF4BC",
++"@. c #CCE0AF",
++"#. c #94A593",
++"$. c #929F90",
++"%. c #696C5A",
++"&. c #211F1A",
++"*. c #372B29",
++"=. c #372928",
++"-. c #4E3A3A",
++";. c #C69191",
++">. c #D89D9D",
++",. c #BE8B8B",
++"'. c #473536",
++"). c #433131",
++"!. c #2E2223",
++"~. c #28242B",
++"{. c #737CA3",
++"]. c #6E85C0",
++"^. c #6284DA",
++"/. c #638EFB",
++"(. c #6591FF",
++"_. c #CBE1BB",
++":. c #102CBA",
++"<. c #3D57BA",
++"[. c #5F78BA",
++"}. c #ABC2BB",
++"|. c #DAEFB8",
++"1. c #A2B289",
++"2. c #747A60",
++"3. c #5C564C",
++"4. c #020202",
++"5. c #424050",
++"6. c #47588F",
++"7. c #5C81E2",
++"8. c #B8C9DA",
++"9. c #D1DACF",
++"0. c #D6DDCD",
++"a. c #D0D9CF",
++"b. c #6B95FC",
++"c. c #A2B9BB",
++"d. c #A4BCBB",
++"e. c #425DBA",
++"f. c #AAC1BB",
++"g. c #ABC0A5",
++"h. c #557AD6",
++"i. c #A9BFE0",
++"j. c #E2E5C8",
++"k. c #799FF5",
++"l. c #8EADEC",
++"m. c #FCF7BD",
++"n. c #729AF9",
++"o. c #5F79BA",
++"p. c #C4DABB",
++"q. c #3C57BA",
++"r. c #6F88BA",
++"s. c #AAC0A5",
++"t. c #B6C7DB",
++"u. c #DBE1CB",
++"v. c #87A8EF",
++"w. c #181817",
++"x. c #6983BA",
++"y. c #516BBA",
++"z. c #556FBA",
++"A. c #D1E7BB",
++"B. c #A3BBE3",
++"C. c #E3E6C7",
++"D. c #92AFEB",
++"E. c #A0B9E4",
++"F. c #6692FE",
++"G. c #5375CB",
++"H. c #4D6FC4",
++"I. c #0A0E17",
++"J. c #2E406F",
++"K. c #1B1D19",
++"L. c #5D664E",
++"M. c #6F795F",
++"N. c #D5ECBB",
++"O. c #869FBB",
++"P. c #C9E0BB",
++"Q. c #6691FE",
++"R. c #9DB7E6",
++"S. c #A4BCE3",
++"T. c #96B2E9",
++"U. c #638DF7",
++"V. c #354A7D",
++"W. c #2B3E6D",
++"X. c #111316",
++"Y. c #27365C",
++"Z. c #3F599B",
++"`. c #BDCFA0",
++" + c #5C6550",
++".+ c #4C5340",
++"++ c #34382E",
++"@+ c #8C9A78",
++"#+ c #A3B38B",
++"$+ c #C1D4A4",
++"%+ c #597FDD",
++"&+ c #4B6BBB",
++"*+ c #32426B",
++"=+ c #1C2231",
++"-+ c #243358",
++";+ c #344775",
++">+ c #5B82E4",
++",+ c #5A81E3",
++"'+ c #849172",
++")+ c #838F6F",
++"!+ c #2F322A",
++"~+ c #30342A",
++"{+ c #565F49",
++"]+ c #9CAA85",
++"^+ c #5376CE",
++"/+ c #445E9D",
++"(+ c #293A64",
++"_+ c #1B2337",
++":+ c #374D83",
++"<+ c #405B9E",
++"[+ c #4D6AB3",
++"}+ c #CEE3AF",
++"|+ c #BACD9E",
++"1+ c #484E3E",
++"2+ c #454C3B",
++"3+ c #575E4B",
++"4+ c #758473",
++"5+ c #010101",
++"6+ c #1D2A49",
++"7+ c #29375A",
++"8+ c #577BD6",
++"9+ c #5F89F0",
++"0+ c #828F6F",
++"a+ c #87977D",
++"b+ c #5C7499",
++"c+ c #8CACD3",
++" ",
++" . + @ # . ",
++" $ % & * = = - ; & > , ",
++" ' ) > ! ~ { ] ^ / ( _ : < [ ~ ! } | 1 ",
++" 2 3 4 5 6 = = = 7 8 9 0 a b _ c d e = = = f 4 } g ",
++" h i j k l m n = = o p q r 7 s t u v w x y z A B C D E ",
++" F G H I J K L M N O P Q R R R R S T U M V W X Y Z ` ... ",
++" F +.+.+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(.(.(. ... ",
++" F +.+.+._.:.<.[.}.|.1.2.3.4.5.6.7.(.8.9.0.a.b.(.(.(. ... ",
++" F +.+.+._.:.c.d.e.f.+.+.g.4.h.(.(.i.j.k.l.m.n.(.(.(. ... ",
++" F +.+.+._.:.o.p.q.r.+.+.s.4.h.(.(.t.u.(.v.m.n.(.(.(. ... ",
++" w.+.+.+._.:.x.y.z.A.+.+.s.4.h.(.(.B.C.D.t.E.F.(.G.H.I.J. ",
++" K.L.M.+.N.O.P.+.+.+.+.+.s.4.h.(.(.Q.R.S.T.U.V.W.X.Y.Z. ",
++" `. +.+++@+#+$++.+.+.+.s.4.h.(.(.%+&+*+=+-+;+>+,+ ",
++" '+)+!+~+{+]++.+.s.4.^+/+(+_+:+<+[+ ",
++" }+|+1+2+3+4+5+6+7+8+9+ ",
++" 0+a+b+c+ "};
+diff -Naur qpobox.orig/poboximpl.cpp qpobox/poboximpl.cpp
+--- qpobox.orig/poboximpl.cpp 2003-06-15 04:58:25.000000000 +0900
++++ qpobox/poboximpl.cpp 2006-04-13 16:52:54.000000000 +0900
+@@ -27,106 +27,7 @@
+ #include "poboximpl.h"
+ #include "poboxpanel.h"
+
+-/* XPM */
+-/* XPM */
+-static char * logo1_xpm[] = {
+-"52 28 66 1",
+-" c None",
+-". c gray5",
+-"X c #0c0d13",
+-"o c #161616",
+-"O c #191714",
+-"+ c gray11",
+-"@ c #131929",
+-"# c gray14",
+-"$ c #322a33",
+-"% c #303529",
+-"& c #3d3131",
+-"* c #3c3c3c",
+-"= c #1f2842",
+-"- c #3f4535",
+-"; c #2c4071",
+-": c #364472",
+-"> c #543d3d",
+-", c #544848",
+-"< c #5c4a4a",
+-"1 c #505050",
+-"2 c #545850",
+-"3 c #5f6951",
+-"4 c #6a4f4f",
+-"5 c gray42",
+-"6 c #747474",
+-"7 c gray49",
+-"8 c #102cba",
+-"9 c #4a5a81",
+-"0 c #5572b9",
+-"q c #4e71c7",
+-"w c #5d85ea",
+-"e c #6b8cde",
+-"r c #6087e9",
+-"t c #658ae7",
+-"y c #618bf4",
+-"u c #638efa",
+-"i c #6591ff",
+-"p c #6994fc",
+-"a c #a30463",
+-"s c #b12170",
+-"d c #bd387c",
+-"f c #8f6969",
+-"g c #c24281",
+-"h c #cc568a",
+-"j c #96a57f",
+-"k c gray54",
+-"l c #9b9b9b",
+-"z c #869fbb",
+-"x c #8997bc",
+-"c c #ba8b8b",
+-"v c #a3b18d",
+-"b c #bbbbbb",
+-"n c #88a9ef",
+-"m c #a3bbe3",
+-"M c #bbce9f",
+-"N c #e98fa5",
+-"B c #eb92a7",
+-"V c #e8abab",
+-"C c #ffbaba",
+-"Z c #cce0ad",
+-"A c #cee1b1",
+-"S c #d1e6b1",
+-"D c #d9eeb8",
+-"F c #def4bc",
+-"G c #fcf7bd",
+-"H c #070707",
+-/* pixels */
+-" ",
+-" ",
+-" +#l ",
+-" oHHH.HHo7 ",
+-" .HHoCCCCCVXHH.* ",
+-" +.HHoCCCCCCCCCCCCoHH.+b ",
+-" oHH.+CCCCCNaaaaaaaNCCCC+.HHok ",
+-" ,XHH.cCCCCCCCaaaBCCCBaaaCCCCCCC.HHo1 ",
+-" oHHoCCCCCCCCCCaaNCCCdsshNadCCCCCCCCCoHHH# ",
+-" oHHHHH,CCCCCCCCCaaaBCCCgaaadsBCCCCC<H.$HHH ",
+-" ooFS-HHHH>CCCCCCCNaaaaaaaBCCCCC<HHHHHqipHH ",
+-" ooFFFFFvHHHHHHcCCCCCCCCCCCCfHHHX=;yiiiipHH ",
+-" ooFFFFFFFFFM%HHHHH4CCCC&HHHH@wiiiiiiiiipHH ",
+-" ooFFFFFF888zFFFZ3HO+HHHH:wiiiGGGGiiiiiiiHH ",
+-" ooFFFFFF88z88zFFFFFFHHiiiiiiGGimGGiiiiiiHH ",
+-" ooFFFFFF88FFz8zFFFFFHHiiiiiGGniiGGiiiiipHH ",
+-" ooFFFFFF88FFF88FFFFFHHiiiiiGGiiiGGiiiiiiHH ",
+-" ooFFFFFF888zF88FFFFFHHpppiiGGiiiGGiiiiiiHH ",
+-" ooFFFFFF88z888FFFFFFHHpiiiiGGnimGiiiiiiiHH ",
+-" o.FFFFFF88FFFFFFFFFFHHiiiiipGGGGiipiioHHH9 ",
+-" 6.HHoFFFFFFFFFFFFFFFHHiiiiiiiiiiir.HH.op ",
+-" 2.HHovFFFFFFFFFFFHHppiiiipi+oHHotp ",
+-" 5oHH.+FFFFFFFFHHpiiipoHH.#x ",
+-" b+.HHoFFFFFHHp0.HHX*i ",
+-" F.HHoFFHHHHot ",
+-" Ao.HHHp ",
+-" ",
+-" ",
+-};
++#include "icon/qpobox.xpm"
+
+ POBoxImpl::POBoxImpl()
+ : input(0), icn(0), ref(0)
+@@ -156,7 +57,7 @@
+ QPixmap *POBoxImpl::icon()
+ {
+ if (!icn)
+- icn = new QPixmap((const char **)logo1_xpm);
++ icn = new QPixmap((const char **)qpobox_xpm);
+ return icn;
+ }
+
+diff -Naur qpobox.orig/poboxpanel.cpp qpobox/poboxpanel.cpp
+--- qpobox.orig/poboxpanel.cpp 2006-04-07 23:51:22.000000000 +0900
++++ qpobox/poboxpanel.cpp 2006-04-13 22:33:07.000000000 +0900
+@@ -24,7 +24,7 @@
+ #include "qpoboxconfig.h"
+ #include "pbclient.h"
+ #include "candlist.h"
+-#include "lib/fepmonitor.h"
++//#include "lib/fepmonitor.h"
+
+ #include <qpe/global.h>
+ #include <qapplication.h>
+@@ -32,7 +32,8 @@
+ #include <qclipboard.h>
+ #include <qtimer.h>
+ #include <qfile.h>
+-#include <sl/jpnfeputil.h>
++//#include <sl/jpnfeputil.h>
++#include <opie2/okeyfilter.h>
+
+ #include <stdlib.h>
+
+@@ -88,7 +89,7 @@
+ connect(m_channel, SIGNAL(received(const QCString&, const QByteArray&)),
+ this, SLOT(appMessage(const QCString&, const QByteArray&)));
+
+- m_fep_monitor = new FepMonitor(this);
++// m_fep_monitor = new FepMonitor(this);
+ }
+
+ POBoxPanel::~POBoxPanel()
+@@ -123,12 +124,14 @@
+ m_pobox->deleteWord(word, input);
+ }
+
++#if 0
+ if (is_hide && isVisible()) {
+ JpnFep::hideInputMethod();
+ }
+ if (is_show) {
+ JpnFep::changeInputMethod(im);
+ }
++#endif
+ }
+
+ void POBoxPanel::candidateClicked()
+@@ -222,9 +225,11 @@
+ m_processed_keycode = keycode;
+
+ if (m_im_mode) {
++#if 0
+ if (m_fep_monitor->isActive()) {
+ thru = true;
+ }
++#endif
+ if (func == F_IM_MODE) {
+ keycode = Key_F25;
+ m_im_mode = false;
+@@ -381,10 +386,10 @@
+ case F_IM_MODE:
+ fixCandidate();
+ m_im_mode = true;
+- if (!m_fep_monitor->isActive()) {
++// if (!m_fep_monitor->isActive()) {
+ keycode = Key_F25;
+ thru = true;
+- }
++// }
+ m_cand->setText(tr("IM mode"));
+ break;
+ case F_THRU_MODE:
+@@ -625,7 +630,8 @@
+ void POBoxPanel::showEvent(QShowEvent *e)
+ {
+ if (!e->spontaneous()) {
+- QWSServer::setKeyboardFilter(m_keyFilter);
++// QWSServer::setKeyboardFilter(m_keyFilter);
++ Opie::Core::OKeyFilter::inst()->addHandler(m_keyFilter);
+ }
+
+ QFontMetrics fm(m_inputline->font());
+@@ -639,16 +645,19 @@
+ m_cand->setMaxDispCand(m_cfg->m_maxDispCand);
+ requestCandidate(true);
+
++#if 0
+ if (m_fep_monitor->isActive()) {
+ emit keyPress(-1, Qt::Key_F25, 0, 1, 0);
+ }
++#endif
+ }
+
+ // disable KeyboardFilter
+ void POBoxPanel::hideEvent(QHideEvent *e)
+ {
+ if (!e->spontaneous()) {
+- QWSServer::setKeyboardFilter(NULL);
++// QWSServer::setKeyboardFilter(NULL);
++ Opie::Core::OKeyFilter::inst()->remHandler(m_keyFilter);
+ }
+
+ m_pobox->saveDictionary();
+diff -Naur qpobox.orig/qpobox.pro qpobox/qpobox.pro
+--- qpobox.orig/qpobox.pro 2003-07-26 01:12:27.000000000 +0900
++++ qpobox/qpobox.pro 2006-04-13 22:07:25.000000000 +0900
+@@ -1,9 +1,9 @@
+ TEMPLATE = lib
+ CONFIG += qt warn_on release
+-HEADERS = poboximpl.h poboxpanel.h pbclient.h qpoboxconfig.h candlist.h lib/fepmonitor.h lib/KeyNames.h
++HEADERS = poboximpl.h poboxpanel.h pbclient.h qpoboxconfig.h candlist.h lib/KeyNames.h
+ SOURCES = poboximpl.cpp poboxpanel.cpp pbclient.cpp qpoboxconfig.cpp candlist.cpp lib/KeyNames.cpp
+ TARGET = qpobox
+ INCLUDEPATH += $(QPEDIR)/include
+-LIBS += -lqpe -lsl
++LIBS += -lqpe -lopiecore2
+ VERSION = 1.0.0
+
diff --git a/recipes/poboxserver/qpobox/qpobox.patch b/recipes/poboxserver/qpobox/qpobox.patch
new file mode 100644
index 0000000000..9ed8f6c6b0
--- /dev/null
+++ b/recipes/poboxserver/qpobox/qpobox.patch
@@ -0,0 +1,57 @@
+diff -Naur qpobox.orig/pbclient.cpp qpobox/pbclient.cpp
+--- qpobox.orig/pbclient.cpp 2003-06-21 04:56:31.000000000 +0200
++++ qpobox/pbclient.cpp 2006-05-11 22:49:00.000000000 +0200
+@@ -28,7 +28,8 @@
+ m_address(address), m_port(port)
+ {
+ m_sock = new QSocket(this);
+- m_conv = QTextCodec::codecForName("EUC-JP");
++ //m_conv = QTextCodec::codecForName("EUC-JP");
++ m_conv = QTextCodec::codecForName("utf8");
+
+ connect(m_sock, SIGNAL(readyRead()), this, SLOT(socketReadyRead()));
+ connect(m_sock, SIGNAL(error(int)), this, SLOT(socketError(int)));
+diff -Naur qpobox.orig/qpobox.key qpobox/qpobox.key
+--- qpobox.orig/qpobox.key 2003-08-12 22:23:15.000000000 +0200
++++ qpobox/qpobox.key 2006-05-12 23:27:19.000000000 +0200
+@@ -1,15 +1,15 @@
+ [INIT]
+ Shift+Space = THRU
+ Space = NEXT
+- Shift+Return = THRU_MODE
++ Shift+Enter = THRU_MODE
+ F21 = CLOSE
+ F25 = IM_MODE
+
+ [INPUT]
+ Shift+Space = PREV
+ Space = NEXT
+- Shift+Return = FIX
+- Return = EXACT
++ Shift+Enter = FIX
++ Enter = EXACT
+ BackSpace = BS
+ Delete = DELETE
+ Left = SHRINK
+@@ -22,7 +22,7 @@
+ [SELECT]
+ Shift+Space = PREV
+ Space = NEXT
+- Return = FIX
++ Enter = FIX
+ BackSpace = BS
+ Delete = NOP
+ Left = PREV
+diff -Naur qpobox.orig/qpoboxconfig.cpp qpobox/qpoboxconfig.cpp
+--- qpobox.orig/qpoboxconfig.cpp 2005-01-09 06:53:44.000000000 +0100
++++ qpobox/qpoboxconfig.cpp 2006-05-11 22:38:22.000000000 +0200
+@@ -224,7 +224,8 @@
+ if (t != m_key_loaded) {
+ if (f.open(IO_ReadOnly)) {
+ QTextStream ts(&f);
+- QTextCodec *codec=QTextCodec::codecForName("UTF-8");
++ //QTextCodec *codec=QTextCodec::codecForName("UTF-8");
++ QTextCodec *codec=QTextCodec::codecForName("eucJP");
+ ts.setCodec(codec);
+ poboxmode_t mode = MODE_INIT;
+
diff --git a/recipes/poboxserver/qpobox_0.5.4.bb b/recipes/poboxserver/qpobox_0.5.4.bb
new file mode 100644
index 0000000000..9bb8c34523
--- /dev/null
+++ b/recipes/poboxserver/qpobox_0.5.4.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "A japanese inputmethod for Qt/Embedded based palmtop environments."
+SECTION = "opie/inputmethods"
+RDEPENDS = "poboxserver virtual/japanese-font"
+LICENSE = "GPL"
+HOMEPAGE = "http://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=QPOBox"
+PR = "r1"
+
+SRC_URI = "http://www.vanille.de/mirror/qpobox-${PV}.tar.gz \
+ file://qpobox-0.5.4-opie.patch;patch=1 \
+ file://qpobox.patch;patch=1"
+S = "${WORKDIR}/qpobox"
+
+inherit opie
+
+do_install() {
+ install -d ${D}${palmtopdir}/share
+ install -m 644 qpobox.key ${D}${palmtopdir}/share
+}