#include <setjmp.h>
#include <ctype.h>
#include <string.h>

#include "extern.h"

extern jmp_buf env;

rsin()     /* receive sentence from RS232C  RS232C->*rsent */

        {int i = 0 , ix = 0, ibuff, ch = 0;
         
         kanji = 0;
         
         t_mset(WAIT_TIME);
                   
         while(1)
             {if ( ! chkcd() ) longjmp(env,1); /* con ¼Þ®³À² ÃÞ Å¹ÚÊÞ ÓÄÞÙ */
              if ( t_itrpt() )
                 {
				   linecut();
                   longjmp(env,2);     }
                                             /* À²Ñ¥±³Ä ¼®Ø */

             while( rshit() ) 
                  {  
		     ch = rsbread();
               
		     if ( ch == 0x08 )  { putchar(ch);
					  ch = 0x20;
					  putchar(ch);
					  ch = 0x08;
					  putchar(ch);
				 	  if ( i ) { i--; }
					  continue;
					}

                     if ( ch != 0x0d && ch != 0x09 && iscntrl(ch) )
                        { continue; }
                                          
                               
                      if (kanji == 0 && iskanji(ch) )  kanji = 1;
                                /* ¶Ý¼Þ Æ­³Ø®¸ ÊÝÀÞÝ */
                       
                      *(rsent + i) = ch;
                      if ( moniflg ) putchar(ch);
					  if ( ch == 0x0d ) *(rsent + i) = '\n';
                      i++; 
                      if ( ch == 0x0d || i > 255 || ch == '>' )    break;
                  }
            if ( ch == 0x0d )  { addlf(ch); break; }
            if ( i > 255 || ch == '>' ) break;
           }           
         *(rsent + i) = NULL;
	     return(0);
       }

