summaryrefslogblamecommitdiff
path: root/japanese/slirc/files/patch-vfile-module.c
blob: 0db71b0c51b8987500d5fee564941698bfb7814b (plain) (tree)

















































                                                                        
--- vfile-module.c.orig	Tue Aug 24 00:08:56 1999
+++ vfile-module.c	Sat Jan  6 21:53:38 2001
@@ -54,6 +54,9 @@
 #include <sys/wait.h>
 
 #include <slang.h>
+#ifdef KANJI
+#include <slkanji.h>
+#endif
 
 /* we need stripped-down version of SLang_Object_Type for cookies: */
 typedef	struct {
@@ -1331,6 +1334,9 @@
 	unsigned long ip;
 	void *data;
 	char *s = NULL;
+#ifdef KANJI
+	char *s2 = NULL;
+#endif
 	SLang_BString_Type *bs = NULL;
 	SLang_Array_Type *at = NULL;
 	SLang_MMT_Type *mmt = NULL;
@@ -1351,8 +1357,15 @@
 		case SLANG_STRING_TYPE:
 				if (SLang_pop_slstring(&s)) return -1;
 				type = strlen(s);
+#ifdef KANJI
+	                        s2 = kSLCodeConv(s,&type,kSLcode,JIS,0);
+				type = strlen(s2);
+ 				if (len < 0 || len > type) len = type;
+				data = s2;
+#else
 				if (len < 0 || len > type) len = type;
 				data = s;
+#endif
 				break;
 		case SLANG_BSTRING_TYPE:
 				if (SLang_pop_bstring(&bs)) return -1;
@@ -1397,6 +1410,11 @@
 	if (at) SLang_free_array (at);
 	if (bs) SLbstring_free(bs);
 	SLang_free_slstring(s); /* NULL is ok */
+#ifdef KANJI
+	if(s2 != NULL)
+		SLfree(s2);
+#endif
+
 	if (mmt) SLang_free_mmt(mmt);
 	return ct;
 }