diff -cNr kakasi-2.2.5/src/ChangeLog.lib kakasi-2.2.5.lib/src/ChangeLog.lib
*** kakasi-2.2.5/src/ChangeLog.lib	Thu Jan  1 09:00:00 1970
--- kakasi-2.2.5.lib/src/ChangeLog.lib	Mon Feb 15 09:20:22 1999
***************
*** 0 ****
--- 1,24 ----
+ kakasi-2.2.5w-lib1.diff$B$G$NJQ99E@(B		1999/01/11
+ 
+ dict.c
+ 	$B%^%/%m(BPERLMOD$B$,Dj5A$5$l$F$$$k>l9g$K!"(B
+ 	$B!&JQ?t(Bkanwadict$B$rHs(Bstatic$B$K$9$k(B
+ 	$B!&(Bkanwadict$B$N=i4|2=$r$9$k(B
+ 	$B$h$&$KJQ99(B
+ 
+ kakasi-2.2.5w-lib.diff$B$G$NJQ99E@(B		1999/01/08
+ 
+ Makefile
+ 	libkakasi.a$B$r:n@.$9$k%?!<%2%C%H$r@_Dj(B
+ kakasi.c
+ 	$B%^%/%m(BPERLMOD$B$,Dj5A$5$l$F$$$k>l9g$K!"(B
+ 	$B!&3F4X?t$NDj5A$rHs(Bstatic$B$K$9$k(B
+ 	$B!&(Bmain$B4X?t$rDj5A$7$J$$(B
+ 	$B$h$&$KJQ99(B
+ kanjiio.c
+ 	$BF~=PNO$rI8=`F~=PNO$G$O$J$/J8;zNs$KBP$7$F9T$&$h$&JQ99(B
+ 	$B!&4X?t(Bsetcharbuffer$B$N:n@.(B
+ 		$B$3$N4X?t$N0z?t$K;XDj$7$?NN0h$+$iF~NO(B
+ 	$B!&4X?t(Bgetpbstr$B$N:n@.(B
+ 		$BFbIt$N%P%C%U%!$K=PNO$5$l$?7k2L$r$3$N4X?t$G<hF@(B
+ 	$B$3$l$i$NJQ99$O!"%^%/%m(BPERLMOD$B$rDj5A$9$k$3$H$GM-8z$K$J$k(B
diff -cNr kakasi-2.2.5/src/Makefile kakasi-2.2.5.lib/src/Makefile
*** kakasi-2.2.5/src/Makefile	Mon Feb 15 09:19:19 1999
--- kakasi-2.2.5.lib/src/Makefile	Mon Feb 15 09:20:22 1999
***************
*** 24,29 ****
--- 24,37 ----
  # Revision 2.0  92/07/18  15:17:12  takahasi
  # 
  
+ # Modified by NOKUBI Takatsugu <knok@daionet.gr.jp>
+ #
+ # 1999/01/08
+ #	The following files ware modified.
+ #	Makefile
+ # 	kakasi.c
+ #	kanjiio.c
+ 
  # Please assign next values.
  
  # Directories of Dictionary and Utilities installed 
***************
*** 31,37 ****
  
  # Preferable Compiler and Options on your system
  CC=cc
! OPTIONS=-O -DWAKATIGAKI
  
  BINDIR=$(PREFIX)/bin
  LIBDIR=$(PREFIX)/lib/kakasi
--- 39,50 ----
  
  # Preferable Compiler and Options on your system
  CC=cc
! #OPTIONS=-g -DWAKATIGAKI
! OPTIONS=-g -DWAKATIGAKI -DPERLMOD
! 
! # Archiver command
! AR = ar
! AROPTS = cr
  
  BINDIR=$(PREFIX)/bin
  LIBDIR=$(PREFIX)/lib/kakasi
***************
*** 52,58 ****
  
  STDDICTS=itaijidict
  
! all: kakasi mkkanwa atoc-conv rdic-conv wx2-conv
  
  kakasi: $(OBJECTS)
  	$(CC) $(CFLAGS) -o $@ $(OBJECTS)
--- 65,75 ----
  
  STDDICTS=itaijidict
  
! #all: kakasi mkkanwa atoc-conv rdic-conv wx2-conv
! all: libkakasi
! 
! libkakasi: $(OBJECTS)
! 	$(AR) $(AROPTS) libkakasi.a $(OBJECTS)
  
  kakasi: $(OBJECTS)
  	$(CC) $(CFLAGS) -o $@ $(OBJECTS)
diff -cNr kakasi-2.2.5/src/dict.c kakasi-2.2.5.lib/src/dict.c
*** kakasi-2.2.5/src/dict.c	Mon Jun 20 09:05:23 1994
--- kakasi-2.2.5.lib/src/dict.c	Mon Feb 15 09:20:22 1999
***************
*** 25,30 ****
--- 25,35 ----
   * Revision 2.0  92/07/18  12:07:05  takahasi
   * 
  */
+ /*
+   Modified by NOKUBI Takatsugu <knok@daionet.gr.jp>
+   1999/01/11
+       Add PERLMOD macro.
+ */
  #include <stdio.h>
  #include <ctype.h>
  #include <string.h>
***************
*** 241,247 ****
--- 246,256 ----
  /* kanwa の initialize をする。実際には先頭部分を kanwa に読み込み,
     kanwa_load を clear する。*/
  
+ #ifdef PERLMOD
+ FILE *kanwadict = NULL;
+ #else
  static FILE *kanwadict;
+ #endif
  
  void init_kanwa()
  {
diff -cNr kakasi-2.2.5/src/kakasi.c kakasi-2.2.5.lib/src/kakasi.c
*** kakasi-2.2.5/src/kakasi.c	Mon Feb 15 09:19:19 1999
--- kakasi-2.2.5.lib/src/kakasi.c	Mon Feb 15 09:20:23 1999
***************
*** 24,29 ****
--- 24,34 ----
   * 
   * Revision 2.0  92/07/18  15:17:12  takahasi
  */
+ /*
+   Modified by NOKUBI Takatsugu <knok@daionet.gr.jp>
+   1999/01/08
+       Add PERLMOD macro.
+ */
  
  static char RCS_ID[] = "@(#) $Header: kakasi.c,v 2.2 92/08/02 takahasi Exp $ written by H. Takahashi";
  
***************
*** 51,57 ****
--- 56,66 ----
  
  extern input_term_type, output_term_type;
  
+ #ifdef PERLMOD
+ void digest_start_copy(c, r)
+ #else
  static void digest_start_copy(c, r)
+ #endif
       Character *c;
       Character *r;
  {
***************
*** 64,77 ****
--- 73,94 ----
      }
  }
  
+ #ifdef PERLMOD
+ void put_separator()
+ #else
  static void put_separator()
+ #endif
  {
      if (bunkatu_mode)
  	if (separator_out == 1)
  	    separator_out = 2;
  }
  
+ #ifdef PERLMOD
+ void putchars(results)
+ #else
  static void putchars(results)
+ #endif
       Character *results;
  {
      while(results->c1 != '\0') {
***************
*** 80,86 ****
--- 97,107 ----
      }
  }
  
+ #ifdef PERLMOD
+ void digest_out(c, ret)
+ #else
  static void digest_out(c, ret)
+ #endif
       Character *c;
       int ret;
  {
***************
*** 122,128 ****
--- 143,153 ----
      if (flush_mode) fflush(stdout);
  }
  
+ #ifdef PERLMOD
+ int digest(c, clen, r, rlen, type, proc)
+ #else
  static int digest(c, clen, r, rlen, type, proc)
+ #endif
       Character *c;
       int clen;
       Character *r;
***************
*** 183,189 ****
--- 208,218 ----
      return rlen - ret;
  }
  
+ #ifdef PERLMOD
+ void digest_shift(c, s)
+ #else
  static void digest_shift(c, s)
+ #endif
       Character *c;
       int s;
  {
***************
*** 199,204 ****
--- 228,234 ----
      }
  }
  
+ #ifndef PERLMOD
  int main(argc, argv)
       int argc;
       char **argv;
***************
*** 445,447 ****
--- 475,479 ----
      }
      return 0;
  }
+ 
+ #endif
diff -cNr kakasi-2.2.5/src/kanjiio.c kakasi-2.2.5.lib/src/kanjiio.c
*** kakasi-2.2.5/src/kanjiio.c	Mon Jun 20 09:05:20 1994
--- kakasi-2.2.5.lib/src/kanjiio.c	Mon Feb 15 09:20:23 1999
***************
*** 25,30 ****
--- 25,35 ----
   * Revision 2.0  92/07/18  15:38:40  takahasi
   * 
  */
+ /*
+   Modified by NOKUBI Takatsugu
+   1998/01/08
+        Add PERLMOD macro.
+  */
  #include <stdio.h>
  #include <string.h>
  #include "kakasi.h"
***************
*** 41,46 ****
--- 46,55 ----
  int output_GR = SETG3;
  int output_G[5] = {ASCII, KATAKANA, KATAKANA, JIS83, SJKANA};
  
+ #ifdef PERLMOD
+ unsigned char *getcharbuffer;
+ #endif /* PERLMOD */
+ 
  /* 1 文字バッファ */
  
  static Character kanji_buf={OTHER, 0, 0};
***************
*** 60,69 ****
--- 69,180 ----
  static unsigned char input_stack[1024];
  static input_stack_depth = 0;
  
+ #ifdef PERLMOD
+ 
+ int pbuf_error = 0;
+ 
+ #define PBSTRSIZE (4096)
+ #ifdef putchar
+ #undef putchar
+ #endif
+ #define putchar(x) putcharpbuf(x)
+ 
+ typedef struct pbuf_t {
+   char *str;
+   long size;
+   struct pbuf_t *next;
+ } pbuf;
+ 
+ pbuf pcbuf = {
+   NULL, -1, NULL
+ };
+ 
+ void setcharbuffer(s)
+      unsigned char *s;
+ {
+   getcharbuffer = s;
+ }
+ 
+ void putcharpbuf(c)
+      int c;
+ {
+   pbuf *pb = &pcbuf;
+   while (pb->size == PBSTRSIZE)
+     pb = pb->next;
+   if (pb->size < 0) {
+     pbuf *npb;
+     if ((pb->str = (char *) malloc(PBSTRSIZE)) == NULL) {
+       pbuf_error = 1;
+       return;
+     }
+     pb->size = 0;
+     if ((npb = (void *) malloc(sizeof(pbuf))) == NULL) {
+       pbuf_error = 1;
+       return;
+     }
+     npb->str = NULL;
+     npb->size = -1;
+     npb->next = NULL;
+     pb->next = npb;
+   }
+   pb->str[pb->size] = (char) c;
+   pb->size ++;
+ }
+ 
+ char *getpbstr() {
+   char *ret, *tmp;
+   long tsize = 0;
+   pbuf *pb = &pcbuf;
+   while (pb->next != NULL) {
+     tsize += pb->size;
+     pb = pb->next;
+   }
+   if (tsize <= 0)
+     return NULL;
+   pb = &pcbuf;
+   tmp = ret = (char *) malloc(tsize + 1);
+   if (ret == NULL)
+     return NULL;
+   while (pb->next != NULL) {
+     bcopy(pb->str, tmp, pb->size);
+     tmp += pb->size;
+     pb = pb->next;
+   }
+   ret[tsize] = '\0';
+   pb = &pcbuf;
+   free(pb->str);
+   pb = pb->next;
+   if (pb->next != NULL) {
+     pbuf *opb = pb;
+     pb = pb->next;
+     while (pb != NULL) {
+       free(opb->str);
+       free(opb);
+       opb = pb;
+       pb = pb->next;
+     }
+   } else {
+     free(pb);
+   }
+   pcbuf.str = NULL;
+   pcbuf.size = -1;
+   pcbuf.next = NULL;
+   return ret;
+ }
+ 
+ #endif /* PERLMOD */
+ 
  static int get1byte()
  {
      if (input_stack_depth == 0)
+ #ifdef PERLMOD
+       {
+       if (*getcharbuffer == '\0') return EOF;
+       return (int) *getcharbuffer ++;
+       }
+ #else
  	return getchar();
+ #endif /* PERLMOD */
      else
  	return input_stack[-- input_stack_depth];
  }
