diff -crN chasen1.51/lib/jfgets.c chasen1.51k1/lib/jfgets.c
*** chasen1.51/lib/jfgets.c	Mon Jul  7 17:03:10 1997
--- chasen1.51k1/lib/jfgets.c	Wed Nov 18 15:48:39 1998
***************
*** 24,30 ****
  #define INNER_BUFSIZE   8192
  
  /* delimiter for jfgets() */
! static char jfgets_delimiter[256] = "．。"; /*"！？";*/
  
  void
  set_jfgets_delimiter(delimiter)
--- 24,30 ----
  #define INNER_BUFSIZE   8192
  
  /* delimiter for jfgets() */
! char jfgets_delimiter[256] = "．。"; /*"！？";*/
  
  void
  set_jfgets_delimiter(delimiter)
***************
*** 70,76 ****
  }
  #endif
  
- static
  int
  jistoeuc(ibuffer, obuffer)
       unsigned char *ibuffer;
--- 70,75 ----
***************
*** 129,135 ****
   */
  
  #if 1
- static
  void
  reduce_white(orig)
       unsigned char *orig;
--- 128,133 ----
***************
*** 217,223 ****
   *		-1:	error
   */
  
- static
  int
  isterminator(target, termlist)
       unsigned char *target;
--- 215,220 ----
***************
*** 253,259 ****
  static unsigned char ibuf[INNER_BUFSIZE];
  static unsigned char *pos=(unsigned char *)""; /* set to the end of line */
  
! static int iskanji1(str, idx)
      unsigned char *str;
      int idx;
  {
--- 250,256 ----
  static unsigned char ibuf[INNER_BUFSIZE];
  static unsigned char *pos=(unsigned char *)""; /* set to the end of line */
  
! int iskanji1(str, idx)
      unsigned char *str;
      int idx;
  {
diff -crN chasen1.51/lib/parse.c chasen1.51k1/lib/parse.c
*** chasen1.51/lib/parse.c	Wed Jul  2 08:06:26 1997
--- chasen1.51k1/lib/parse.c	Wed Nov 18 16:38:35 1998
***************
*** 36,45 ****
  #define malloc_short(n)    malloc_chars(2, n)
  #define malloc_int(n)      malloc_chars(4, n)
  #define free_chars()       malloc_chars(0, 0)
  static void *malloc_chars(size, nitems)
      int nitems, size;
  {
!     static char *buffer_ptr[128];
      static int buffer_ptr_num = 0;
      static int buffer_idx = CHA_MALLOC_SIZE;
  
--- 36,46 ----
  #define malloc_short(n)    malloc_chars(2, n)
  #define malloc_int(n)      malloc_chars(4, n)
  #define free_chars()       malloc_chars(0, 0)
+ #define mc_buf_size (256)
  static void *malloc_chars(size, nitems)
      int nitems, size;
  {
!     static char *buffer_ptr[mc_buf_size];
      static int buffer_ptr_num = 0;
      static int buffer_idx = CHA_MALLOC_SIZE;
  
***************
*** 59,67 ****
  	}
  
  	if (buffer_idx + nitems >= CHA_MALLOC_SIZE) {
! 	    if (buffer_ptr_num == 128)
  	      cha_exit(1, "Can't allocate memory");
! 	    buffer_ptr[buffer_ptr_num++] = cha_malloc(CHA_MALLOC_SIZE);
  	    buffer_idx = 0;
  	}
  
--- 60,71 ----
  	}
  
  	if (buffer_idx + nitems >= CHA_MALLOC_SIZE) {
! 	    if (buffer_ptr_num == mc_buf_size)
  	      cha_exit(1, "Can't allocate memory");
! 	    if (nitems <= CHA_MALLOC_SIZE)
! 	      buffer_ptr[buffer_ptr_num++] = cha_malloc(CHA_MALLOC_SIZE);
! 	    else
! 	      buffer_ptr[buffer_ptr_num++] = cha_malloc(nitems);
  	    buffer_idx = 0;
  	}
  
***************
*** 141,147 ****
      static int nblock = 0;
  
  #if 0
!     printf("# mrph %d ", nblock);
  #endif
      Mrph = malloc_free_block((void *)Mrph, &nblock,
  			     sizeof(mrph2_t) * MRPH_NUM, do_free);
--- 145,151 ----
      static int nblock = 0;
  
  #if 0
!     printf("# mrph %d", nblock);
  #endif
      Mrph = malloc_free_block((void *)Mrph, &nblock,
  			     sizeof(mrph2_t) * MRPH_NUM, do_free);
***************
*** 388,394 ****
  		new_mrph->length = length + strlen(Form[ktype][*f].gobi);
  		new_mrph->con_tbl = con_tbl + *f - 1;
  		if (++new_mrph_idx % MRPH_NUM == 0 && malloc_mrph())
! 		  return FALSE;
  		new_mrph = &Mrph[new_mrph_idx];
  	    }
  	} else {
--- 392,400 ----
  		new_mrph->length = length + strlen(Form[ktype][*f].gobi);
  		new_mrph->con_tbl = con_tbl + *f - 1;
  		if (++new_mrph_idx % MRPH_NUM == 0 && malloc_mrph())
! 		    return FALSE;
! 		  else
!                     mrph0 = &Mrph[mrph_idx];
  		new_mrph = &Mrph[new_mrph_idx];
  	    }
  	} else {
