summaryrefslogtreecommitdiffstats
path: root/japanese/iiimf-le-freewnn
diff options
context:
space:
mode:
authordaichi <daichi@FreeBSD.org>2005-05-24 12:37:50 +0000
committerdaichi <daichi@FreeBSD.org>2005-05-24 12:37:50 +0000
commit2fc57c4b8b6311308d0cd7c060698ffba5fdeb98 (patch)
tree37dac9da04b94e927a5886af6f57c1828f27f13b /japanese/iiimf-le-freewnn
parent834341d742892c8f5d7d774127f637922888c5ce (diff)
downloadFreeBSD-ports-2fc57c4b8b6311308d0cd7c060698ffba5fdeb98.zip
FreeBSD-ports-2fc57c4b8b6311308d0cd7c060698ffba5fdeb98.tar.gz
IIIMF-related ports:
- drop maintainership - update to r12.2 - some bug fixes PR: 81184 Submitted by: Masanori OZAWA <ozawa@ongs.co.jp> Approved by: maintainer
Diffstat (limited to 'japanese/iiimf-le-freewnn')
-rw-r--r--japanese/iiimf-le-freewnn/Makefile64
-rw-r--r--japanese/iiimf-le-freewnn/distinfo4
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-Makefile60
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-acfiles_check_sys.m412
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-leif_Makefile.am8
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-leif_configure.ac53
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-leif_freewnn_Makefile.am12
-rw-r--r--japanese/iiimf-le-freewnn/files/patch-leif_freewnn_freewnn.c126
-rw-r--r--japanese/iiimf-le-freewnn/pkg-plist5
9 files changed, 220 insertions, 124 deletions
diff --git a/japanese/iiimf-le-freewnn/Makefile b/japanese/iiimf-le-freewnn/Makefile
index db4b1f0..793fa28 100644
--- a/japanese/iiimf-le-freewnn/Makefile
+++ b/japanese/iiimf-le-freewnn/Makefile
@@ -6,71 +6,57 @@
#
PORTNAME= le-freewnn
-PORTVERSION= ${IIIMF_VER:S/_/./g:C/-.*//}
-PORTREVISION= 2
+PORTVERSION= 12.2
CATEGORIES= japanese textproc
MASTER_SITES= http://www.openi18n.org/download/im-sdk/src/
PKGNAMEPREFIX= iiimf-
-DISTNAME= im-sdk-src-${IIIMF_VER}
+DISTNAME= iiimf-src-${PORTVERSION}
EXTRACT_SUFX= .tar.bz2
-MAINTAINER= daichi@freebsd.org
+MAINTAINER= ozawa@ongs.co.jp
COMMENT= FreeWnn language engine for IIIMF
LIB_DEPENDS= wnn.0:${PORTSDIR}/japanese/FreeWnn-lib
-RUN_DEPENDS= ${LOCALBASE}/lib/im/htt:${PORTSDIR}/textproc/iiimf-server \
+RUN_DEPENDS= iiimd:${PORTSDIR}/textproc/iiimf-server \
+ ${LOCALBASE}/lib/iiim/csconv/csconv.so:${PORTSDIR}/textproc/iiimf-csconv \
${LOCALBASE}/bin/Wnn4/jserver:${PORTSDIR}/japanese/FreeWnn-server
-IIIMF_VER= r12_1-svn2002
+ONLY_FOR_ARCHS= i386
+
USE_BZIP2= yes
USE_ICONV= yes
USE_REINPLACE= yes
USE_GMAKE= yes
-USE_AUTOCONF_VER= 259
-USE_AUTOHEADER_VER= 259
-USE_AUTOMAKE_VER= 19
+WANT_AUTOCONF_VER= 259
+WANT_AUTOHEADER_VER= 259
+WANT_AUTOMAKE_VER= 19
WANT_LIBTOOL_VER= 15
-AUTOMAKE_ARGS+= --add-missing
-CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
-
-WRKSRC= ${WRKDIR}/${DISTNAME:S/src-//}/leif
-PATCH_WRKSRC= ${WRKDIR}/${DISTNAME:S/src-//}
+WRKSRC= ${WRKDIR}/${DISTNAME:S/src-//}
+BUILDDIR= ${WRKSRC}/leif
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 503000
-IGNORE= "It is supported on FreeBSD 5.3 and later"
-.endif
-
-.if ${ARCH} != "i386"
-IGNORE= "${ARCH} is not support."
+IGNORE= It is supported on FreeBSD 5.3 and later.
.endif
CFLAGS+= -I${LOCALBASE}/include -I${LOCALBASE}/include/wnn \
${PTHREAD_CFLAGS}
LDFLAGS+= -L${LOCALBASE}/lib -liconv ${PTHREAD_LIBS}
-CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
-UPDATE_ARGS+= ACLOCAL=${ACLOCAL} AUTOMAKE=${AUTOMAKE} \
- AUTOHEADER=${AUTOHEADER} AUTOCONF=${AUTOCONF} \
- LIBTOOL=${LIBTOOL} LIBTOOLIZE=${LIBTOOLIZE} \
- ACLOCAL_DIR="-I ${LOCALBASE}/share/aclocal -I ${ACLOCAL_DIR}"
+CONFIGURE_ENV+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
post-patch:
- ${REINPLACE_CMD} -e "s,/usr/lib/im,${PREFIX}/lib/im,g" \
- ${WRKSRC}/../acfiles/im_common.m4 \
- ${WRKSRC}/../lib/CSConv/csconv.h
-
-pre-configure:
- @cd ${WRKSRC}/../ && ${GMAKE} ${UPDATE_ARGS} update-acfiles
- @cd ${WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${LIBTOOLIZE} --force --copy
- @cd ${WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${ACLOCAL} \
- -I ../acfiles -I ${LOCALBASE}/share/aclocal -I ${ACLOCAL_DIR}
- @cd ${WRKSRC} && ${REINPLACE_CMD} \
- -e "s^\$$ac_aux_dir/ltconfig^${LTCONFIG}^g" \
- -e "/^ltmain=/!s^\$$ac_aux_dir/ltmain.sh^${LIBTOOLFLAGS} ${LTMAIN}^g" \
- -e '/^LIBTOOL=/s^\$$(top_builddir)/libtool^${LIBTOOL}^g' \
- ${LIBTOOLFILES}
- @cd ${WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOHEADER}
+ ${REINPLACE_CMD} \
+ -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
+ -e "s,%%PREFIX%%,${PREFIX},g" \
+ ${WRKSRC}/Makefile ${BUILDDIR}/Makefile.am \
+ ${BUILDDIR}/freewnn/freewnn.c
+ ${REINPLACE_CMD} -e "s,/usr/lib/iiim,${LOCALBASE}/lib/iiim,g" \
+ ${WRKSRC}/lib/CSConv/csconv.h
+
+do-configure:
+ @cd ${WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${GMAKE} reconfig
+ @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${GMAKE} config
.include <bsd.port.post.mk>
diff --git a/japanese/iiimf-le-freewnn/distinfo b/japanese/iiimf-le-freewnn/distinfo
index 440e49d..4416cce 100644
--- a/japanese/iiimf-le-freewnn/distinfo
+++ b/japanese/iiimf-le-freewnn/distinfo
@@ -1,2 +1,2 @@
-MD5 (im-sdk-src-r12_1-svn2002.tar.bz2) = 51f3f10b11f8d4a206e2b190ec36a32a
-SIZE (im-sdk-src-r12_1-svn2002.tar.bz2) = 18141292
+MD5 (iiimf-src-12.2.tar.bz2) = 70dbf257fe64ddf8611dfa6449da537c
+SIZE (iiimf-src-12.2.tar.bz2) = 11452670
diff --git a/japanese/iiimf-le-freewnn/files/patch-Makefile b/japanese/iiimf-le-freewnn/files/patch-Makefile
index bcc2cb2..c13173f 100644
--- a/japanese/iiimf-le-freewnn/files/patch-Makefile
+++ b/japanese/iiimf-le-freewnn/files/patch-Makefile
@@ -1,19 +1,47 @@
---- Makefile Thu Apr 8 03:28:00 2004
-+++ Makefile Wed Feb 16 14:09:34 2005
-@@ -2,6 +2,7 @@
- AUTOMAKE = automake
- AUTOHEADER = autoheader
- AUTOCONF = autoconf
-+LIBTOOLIZE = libtoolize
+--- Makefile.orig Mon May 9 15:32:45 2005
++++ Makefile Mon May 9 15:35:03 2005
+@@ -1,29 +1,31 @@
+ ## deprecated in favour of AUTORECONF
+-#ACLOCAL = aclocal
+-#AUTOMAKE = automake --add-missing --copy
+-#LIBTOOLIZE = libtoolize --force --copy
+-#AUTOHEADER = autoheader
+-#AUTOCONF = autoconf
++ACLOCAL = aclocal19
++AUTOMAKE = automake19 --add-missing --copy
++LIBTOOLIZE = libtoolize15 --force --copy
++AUTOHEADER = autoheader259
++AUTOCONF = autoconf259
+ #CONFIG_CMD = $(ACLOCAL) -I $${acfilesdir} && \
+ # $(LIBTOOLIZE) && \
+ # $(AUTOHEADER) && \
+ # $(AUTOMAKE) && \
+ # $(AUTOCONF)
- CONFIG_CMD = $(ACLOCAL) -I $${acfilesdir} && \
- $(AUTOHEADER) && \
-@@ -21,7 +22,7 @@
+-AUTORECONF = autoreconf
++AUTORECONF = autoreconf259
+ BOOTSTRAP = $(AUTORECONF) --install --force
+ INTL_CMD = glib-gettextize -f && intltoolize --copy --force --automake
- update-acfiles:
- cd acfiles && \
-- $(ACLOCAL) && $(AUTOMAKE) --add-missing --copy && libtoolize --force --copy && \
-+ $(ACLOCAL) $(ACLOCAL_DIR) && $(AUTOMAKE) --add-missing --copy && $(LIBTOOLIZE) --force --copy && \
- rm -f Makefile.in aclocal.m4
+-CONFIG_FLAGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var
++CONFIG_FLAGS = --prefix=%%PREFIX%% --sysconfdir=%%LOCALBASE%%/etc --localstatedir=/var
+
+-INTLDIRS = iiimgcf gnome-im-switcher
++#INTLDIRS = iiimgcf gnome-im-switcher
+
+-BUILDDIRS = lib/CSConv lib/EIMIL lib/iiimp lib/iiimcf \
+- iiimsf leif leif/sun_le_korea leif/sch_le_sun leif/tch_le_sun \
+- iiimxcf/xiiimp.so iiimxcf/htt_xbe \
+- iiimgcf gnome-im-switcher doc
++BUILDDIRS = leif
++#BUILDDIRS = lib/CSConv lib/EIMIL lib/iiimp lib/iiimcf \
++# iiimsf leif leif/sun_le_korea leif/sch_le_sun leif/tch_le_sun \
++# iiimxcf/xiiimp.so iiimxcf/htt_xbe \
++# iiimgcf gnome-im-switcher doc
+
+-CONFIGDIRS = $(BUILDDIRS) leif/m17n_le leif/thai_le_sun
++CONFIGDIRS = $(BUILDDIRS)
++#CONFIGDIRS = $(BUILDDIRS) leif/m17n_le leif/thai_le_sun
+
+ all: compile
- config:
diff --git a/japanese/iiimf-le-freewnn/files/patch-acfiles_check_sys.m4 b/japanese/iiimf-le-freewnn/files/patch-acfiles_check_sys.m4
index 8626eea..44ee86c 100644
--- a/japanese/iiimf-le-freewnn/files/patch-acfiles_check_sys.m4
+++ b/japanese/iiimf-le-freewnn/files/patch-acfiles_check_sys.m4
@@ -1,10 +1,12 @@
---- acfiles/check_sys.m4.orig Tue Sep 14 13:31:27 2004
-+++ acfiles/check_sys.m4 Wed Mar 2 08:39:25 2005
-@@ -203,6 +203,11 @@
+--- acfiles/check_sys.m4.orig Mon May 9 15:28:20 2005
++++ acfiles/check_sys.m4 Mon May 9 15:32:07 2005
+@@ -203,6 +203,13 @@
CXX=${CC}
fi
;;
+ cc*:*)
++ DEBUG_CFLAGS="${DEBUG_CFLAGS} -ggdb"
++ DEBUG_CXXFLAGS="${DEBUG_CXXFLAGS} -g"
+ COMMON_CFLAGS="${COMMON_CFLAGS} -Wall"
+ SHLIBCFLAGS='-fpic'
+ SHLIBLDFLAGS='-shared'
@@ -12,7 +14,7 @@
*)
DEBUG_CXX_CFLAGS="${DEBUG_CXX_CFLAGS} -g"
;;
-@@ -249,8 +254,8 @@
+@@ -249,8 +256,8 @@
COMMON_CXX_CFLAGS="${COMMON_CXX_CFLAGS} -DLinux"
;;
*freebsd*)
@@ -23,7 +25,7 @@
;;
esac
-@@ -288,9 +293,9 @@
+@@ -288,9 +295,9 @@
THREAD_CXX_CFLAGS="-mt"
HAVE_THREAD="uithread"
;;
diff --git a/japanese/iiimf-le-freewnn/files/patch-leif_Makefile.am b/japanese/iiimf-le-freewnn/files/patch-leif_Makefile.am
new file mode 100644
index 0000000..710a4d8
--- /dev/null
+++ b/japanese/iiimf-le-freewnn/files/patch-leif_Makefile.am
@@ -0,0 +1,8 @@
+--- leif/Makefile.am.orig Fri May 13 15:45:41 2005
++++ leif/Makefile.am Fri May 13 15:46:03 2005
+@@ -1,4 +1,4 @@
+ AUTOMAKE_OPTIONS = foreign
+ SUBDIRS = $(LE_TARGETS)
+
+-ACLOCAL_AMFLAGS = -I ../acfiles
++ACLOCAL_AMFLAGS = -I %%LOCALBASE%%/share/aclocal -I ../acfiles
diff --git a/japanese/iiimf-le-freewnn/files/patch-leif_configure.ac b/japanese/iiimf-le-freewnn/files/patch-leif_configure.ac
index a2cf10f..120f704 100644
--- a/japanese/iiimf-le-freewnn/files/patch-leif_configure.ac
+++ b/japanese/iiimf-le-freewnn/files/patch-leif_configure.ac
@@ -1,53 +1,28 @@
---- leif/configure.ac.orig Wed Oct 6 23:00:36 2004
-+++ leif/configure.ac Thu Mar 24 18:13:32 2005
-@@ -44,15 +44,15 @@
+--- leif/configure.ac.orig Wed May 11 13:01:08 2005
++++ leif/configure.ac Wed May 11 13:02:22 2005
+@@ -75,16 +75,16 @@
- IM_CHECK_SYSTEM
- IM_CHECK_DLOPEN
--IM_CHECK_CANNA
-+dnl IM_CHECK_CANNA
- IM_CHECK_FREEWNN
+ LDFLAGS="${COMMON_LDFLAGS} ${THREAD_LDFLAGS} ${LDFLAGS}"
--IM_CHECK_X
--IM_CHECK_GTK
--IM_CHECK_MOTIF
--PKG_CHECK_MODULES(GTK2, gtk+-2.0 gtk+-x11-2.0)
--AC_SUBST(GTK2_CFLAGS)
--AC_SUBST(GTK2_LIBS)
-+dnl IM_CHECK_X
-+dnl IM_CHECK_GTK
-+dnl IM_CHECK_MOTIF
-+dnl PKG_CHECK_MODULES(GTK2, gtk+-2.0 gtk+-x11-2.0)
-+dnl AC_SUBST(GTK2_CFLAGS)
-+dnl AC_SUBST(GTK2_LIBS)
-
- dnl --------------------------------------------------------------------------------
- dnl Section 5: compilation options
-@@ -63,23 +63,16 @@
-
- CFLAGS="${COMMON_CXX_CFLAGS} ${COMMON_CFLAGS} \
- ${DEBUG_CXX_CFLAGS} ${DEBUG_CFLAGS} \
-- ${THREAD_COMMON_CXX_CFLAGS}"
-+ ${THREAD_COMMON_CXX_CFLAGS} ${CFLAGS}"
-
- CXXFLAGS="${COMMON_CXX_CFLAGS} ${COMMON_CXXFLAGS} \
- ${DEBUG_CXX_CFLAGS} ${DEBUG_CXXFLAGS} \
-- ${THREAD_COMMON_CXX_CFLAGS}"
-+ ${THREAD_COMMON_CXX_CFLAGS} ${CXXFLAGS}"
-
--LDFLAGS="${COMMON_LDFLAGS} ${THREAD_LDFLAGS}"
-+LDFLAGS="${COMMON_LDFLAGS} ${THREAD_LDFLAGS} ${LDFLAGS}"
-
--LE_TARGETS="default template sampleja sampleja2 sampleja3 newpy testEIMIL unit hangul chewing"
+-LE_TARGETS="default template sampleja sampleja2 sampleja3 newpy testEIMIL unit hangul fop_test"
+LE_TARGETS="freewnn"
-IM_ADD_TARGET(LE_TARGETS, HAVE_CANNA, canna)
-IM_ADD_TARGET(LE_TARGETS, HAVE_FREEWNN, freewnn)
+-IM_ADD_TARGET(LE_TARGETS, HAVE_CHEWING, chewing)
-IM_ADD_TARGET(LE_TARGETS, HAVE_X, sampleja3/xaux_common)
-IM_ADD_TARGET(LE_TARGETS, HAVE_GTK, sampleja3/xaux_gtk)
-IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, newpy/xaux)
-IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, sampleja/xaux)
-IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, sampleja3/xaux_motif)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_CANNA, canna)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_FREEWNN, freewnn)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_CHEWING, chewing)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_X, sampleja3/xaux_common)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_GTK, sampleja3/xaux_gtk)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, newpy/xaux)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, sampleja/xaux)
++#IM_ADD_TARGET(LE_TARGETS, HAVE_MOTIF, sampleja3/xaux_motif)
dnl --------------------------------------------------------------------------------
dnl Section 6: compilation test
diff --git a/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_Makefile.am b/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_Makefile.am
deleted file mode 100644
index 88801a9..0000000
--- a/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
---- leif/freewnn/Makefile.am.orig Wed Mar 2 23:48:30 2005
-+++ leif/freewnn/Makefile.am Wed Mar 2 23:49:21 2005
-@@ -3,7 +3,8 @@
- -DNO_COLOR_FEEDBACK -DNO_CARET_NEGO \
- -I$(IM_INCLUDEDIR)/iml \
- -I$(CSCONV_DIR) \
-- -I/usr/include/wnn
-+ -DLOCALBASE="\"${LOCALBASE}\"" \
-+ -DIMDIR="\"${IMDIR}\""
- FreeWnnLE_la_LDFLAGS = -module -rpath $(IM_LEIFDIR) $(SHLIBLDFLAGS) $(THREAD_LDFLAGS)
- FreeWnnLE_la_LIBADD = -lwnn $(THREAD_LIBS)
- FreeWnnLE_la_SOURCES = freewnn.c
diff --git a/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_freewnn.c b/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_freewnn.c
index 255f856..e7b91d4 100644
--- a/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_freewnn.c
+++ b/japanese/iiimf-le-freewnn/files/patch-leif_freewnn_freewnn.c
@@ -1,18 +1,15 @@
---- leif/freewnn/freewnn.c.orig Mon Oct 4 19:13:52 2004
-+++ leif/freewnn/freewnn.c Sun Feb 20 15:43:20 2005
-@@ -59,9 +59,9 @@
+--- leif/freewnn/freewnn.c.orig Sun Mar 20 11:41:29 2005
++++ leif/freewnn/freewnn.c Wed May 18 01:20:56 2005
+@@ -59,7 +59,7 @@
#define BUFSIZE 1024
#endif
-#define WNNRCFILE "/etc/FreeWnn/ja/wnnenvrc"
-+#define WNNRCFILE (LOCALBASE "/lib/wnn/ja_JP/wnnenvrc")
++#define WNNRCFILE "%%LOCALBASE%%" "/lib/wnn/ja_JP/wnnenvrc"
--#define CSC_PATH "/usr/lib/im/csconv/csconv.so"
-+#define CSC_PATH (IMDIR "/csconv/csconv.so")
#define CSC_OPEN_LOCALE "csconv_open_locale"
#define CSC_OPEN "csconv_open"
- #define CSC_CONV "csconv"
-@@ -163,7 +163,7 @@
+@@ -162,7 +162,7 @@
int count = 0;
if( str == NULL ) return NULL;
@@ -21,7 +18,7 @@
for(i=0;i<strlen(str);i++) {
count++;
-@@ -202,7 +202,7 @@
+@@ -201,7 +201,7 @@
if( wstr == NULL ) return NULL;
@@ -30,3 +27,114 @@
for(i=0;wstr[i] != 0;i++)
count++;
+@@ -388,14 +388,14 @@
+
+ UTFCHAR*
+ UTF8_to_UTFCHAR(unsigned char* str) {
+- UTFCHAR *p, *ustr = NULL;
++ UTFCHAR *ustr = NULL;
+ int len, ulen;
+
+ const char *csc_arg_str_ccp; /* For compiler optimization */
+ char *csc_arg_str_cp; /* For compiler optimization */
+
+ if( str == NULL ) return NULL;
+- if( *str == '\0' ) return NULL;
++ if( *str == '\0' ) return "";
+
+ if( csconv_utf8_cd == NULL ) {
+ csconv_utf8_cd = csc_open("UTF-16", "UTF-8");
+@@ -408,30 +408,34 @@
+ len = strlen(str);
+
+ ulen = sizeof(UTFCHAR)*(len+1);
+- p = ustr = (UTFCHAR*)calloc(len+1, sizeof(UTFCHAR));
++ ustr = (UTFCHAR*)malloc(ulen);
++ if (!ustr) return NULL;
++ memset(ustr, 0, ulen);
++ ulen--;
+
+ /* Below 2 lines are to prevent gcc's warning and for the sake
+ of compiler optimization */
+ csc_arg_str_ccp = (const char*)str;
+ csc_arg_str_cp = (char*)ustr;
+
+- csc_conv(csconv_utf8_cd, &csc_arg_str_ccp, &len, &csc_arg_str_cp, &ulen);
+-
+- *ustr = 0;
++ if ((size_t)-1 == csc_conv(csconv_utf8_cd, &csc_arg_str_ccp, &len, &csc_arg_str_cp, &ulen)) {
++ free(ustr);
++ return NULL;
++ }
+
+- return p;
++ return ustr;
+ }
+
+ UTFCHAR*
+ euc2UTFCHAR(unsigned char* str) {
+- UTFCHAR *p, *ustr = NULL;
++ UTFCHAR *ustr = NULL;
+ int len, ulen;
+
+ const char *csc_arg_str_ccp; /* For compiler optimization */
+ char *csc_arg_str_cp; /* For compiler optimization */
+
+ if( str == NULL ) return NULL;
+- if( *str == '\0' ) return NULL;
++ if( *str == '\0' ) return "";
+
+ if( csconv_cd == NULL ) {
+ csconv_cd = csc_open_locale("ja_JP.eucJP", "UTF-16", "MultiByte");
+@@ -444,18 +448,22 @@
+ len = strlen(str);
+
+ ulen = sizeof(UTFCHAR)*(len+1);
+- p = ustr = (UTFCHAR*)calloc(len+1, sizeof(UTFCHAR));
++ ustr = (UTFCHAR*)malloc(ulen);
++ if (!ustr) return NULL;
++ memset(ustr, 0, ulen);
++ ulen--;
+
+ /* Below 2 lines are to prevent gcc's warning and for the sake
+ of compiler optimization */
+ csc_arg_str_ccp = (const char*)str;
+ csc_arg_str_cp = (char*)ustr;
+
+- csc_conv(csconv_cd, &csc_arg_str_ccp, &len, &csc_arg_str_cp, &ulen);
+-
+- *ustr = 0;
++ if ((size_t)-1 == csc_conv(csconv_cd, &csc_arg_str_ccp, &len, &csc_arg_str_cp, &ulen)) {
++ free(ustr);
++ return NULL;
++ }
+
+- return p;
++ return ustr;
+ }
+
+ IMText*
+@@ -466,7 +474,10 @@
+ ustr = UTF8_to_UTFCHAR(str);
+
+ p = create_IMText(s, ustrlen(ustr));
+- memcpy(p->text.utf_chars, ustr, (ustrlen(ustr)+1)*sizeof(UTFCHAR));
++ if (p && ustr) {
++ memcpy(p->text.utf_chars, ustr, (ustrlen(ustr)+1)*sizeof(UTFCHAR));
++ }
++ if (ustr) free(ustr);
+
+ return p;
+ }
+@@ -479,7 +490,10 @@
+ ustr = euc2UTFCHAR(str);
+
+ p = create_IMText(s, ustrlen(ustr));
+- memcpy(p->text.utf_chars, ustr, (ustrlen(ustr)+1)*sizeof(UTFCHAR));
++ if (p && ustr) {
++ memcpy(p->text.utf_chars, ustr, (ustrlen(ustr)+1)*sizeof(UTFCHAR));
++ }
++ if (ustr) free(ustr);
+
+ return p;
+ }
diff --git a/japanese/iiimf-le-freewnn/pkg-plist b/japanese/iiimf-le-freewnn/pkg-plist
index 9a46912..fdc944d 100644
--- a/japanese/iiimf-le-freewnn/pkg-plist
+++ b/japanese/iiimf-le-freewnn/pkg-plist
@@ -1,2 +1,3 @@
-lib/im/leif/FreeWnnLE.so
-@unexec rmdir %D/lib/im/leif > /dev/null 2>&1 || true
+lib/iiim/le/FreeWnnLE/FreeWnnLE.so
+@dirrm lib/iiim/le/FreeWnnLE
+@unexec rmdir %D/lib/iiim/le > /dev/null 2>&1 || true
OpenPOWER on IntegriCloud