Example #1
0
int16_t cut_by_pos_ii(s_glue * const gl,uchar let)
{
    B_LINES bl;
    int16_t pen=0,upper=32000,dis,i;


    get_b_lines(gl->celist[0],&bl);
    for(i=0; i < gl->ncell; i++)
        upper = MIN(upper,gl->celist[i]->row);

    if(let==(uchar)'\xa9' /* й */ &&
            !is_russian_turkish_conflict(let) // 21.05.2002 E.P.
      ) {
        if((dis=upper-bl.b2) <= 0) { // letter upper than bbs2
            dis = abs(dis);
            if(dis < 5) pen = iot_pen_lc[dis];
        }
        else pen = 160; // letter lower than bbs2
        if( gl->ncell==1 && (gl->celist[0]->recsource == c_rs_ev ||
                             gl->celist[0]->recsource == (c_rs_ev|c_rs_deskr) ))// events brought vers
            if((Ns1+Ns2)>0 && bl.b2-bl.b1>6) {
                dis=upper-bl.b1;
                pen +=  dis<3 ? 60 : 0;
            }
    }
    if(let==(uchar)'\x89' /* Й */) { // Capital iot
        if((dis=upper-bl.b1) <= 0 ) { // letter upper than bbs1
            dis = abs(dis);
            if(dis < 5) pen = iot_pen_uc[dis];
        }
        else pen = 160; // letter lower than bbs1
    }
    return pen;
}
Example #2
0
void serbian_J2j(void)
{
B_LINES my_bases;
cell *c,*e;
int16_t   n;
char bb[90];

get_b_lines(NULL,&my_bases);
for(c=cell_f()->nextl,e=cell_l();c!=e;c=c->nextl)
  if( (c->flg&c_f_let) && c->nvers && c->w*3<=c->h &&
      (c->vers[0].let=='J' ||
        memchr("[]!",c->vers[0].let,3)&&
          c->row<(my_bases.b2 + my_bases.b1)/2&&
          c->row+c->h>(my_bases.b3 + my_bases.b4)/2) )
    {
    if( (n=geom_neck((int16_t)(my_bases.b2 - my_bases.b1),c))!=0 )
      {
      if( db_status && snap_activity('c') )
        {
        sprintf (bb,"serbian reverse J-->>j. bs= %d %d (%d). find neck on %d",
          my_bases.b1, my_bases.b2, my_bases.b2 - my_bases.b1, n);
        snap_show_text(bb);
        snap_monitor();
        }
      c->vers[0].let='j';

      }
    if( c->nvers && c->vers[0].let=='j' && check_let(c, '/') )
        del_version(  c,'/');
    }
return;
}
Example #3
0
static int16_t final_slash_l(cell *c)
 {
 int16_t i;
 uchar fnt;

 get_b_lines(c,&bl);
 if (c->row+c->h>=bl.b3+MIN(3,MAX(1,c->h/10)))
  return 0;
 if ((c->flg & (c_f_let|c_f_bad)) == 0)
   return 0;   // AL 940318
 if (c->flg & c_f_dust)
   return 0;   // AL 940318
 if ((fnt=c->prevl->font|c->nextl->font)&c_fp_ser && !(fnt&c_fp_gelv))
  return 0;
 c->nvers-=MAX(0,c->nvers-(VERS_IN_CELL-4));
 c->vers[c->nvers].let='l';
 c->vers[c->nvers+1].let='I';
 c->vers[c->nvers+2].let='1';
 c->vers[c->nvers].prob=c->vers[c->nvers+1].prob=c->vers[c->nvers+2].prob=
							    c->vers[0].prob;
 for (i=0; i<c->nvers; i++)
  if (memchr("lI1",c->vers[i].let,3))
   c->vers[i].prob=0;
 c->nvers+=3;
 c->vers[c->nvers].let=0;
 if (c->env!=NULL && !is_slash(c))
  c->vers[0].prob=MAX(2,c->vers[0].prob-50);
 sort_vers(c);
 return 1;
 }
Example #4
0
static void final_dotcom(cell *c)
 {

 get_b_lines(c,&bl);
 if (c->row+c->h-bl.b3>=2)
  c->vers[0].let=',';
 }
Example #5
0
static void final_ao_gpq(cell *c)
 {
 uchar let;
 int16_t nvers,i;

 if (c->vers[0].prob<=DAO) return;
 get_b_lines(c,&bl);
 if (c->row+c->h-bl.b3>=2)
  {
  if ((let=c->vers[0].let)=='a')
   {
   c->vers[2].let='a'; c->vers[2].prob=c->vers[0].prob-DAO; nvers=3;
   if (c->nvers>=2 && c->vers[1].let=='o' && c->vers[1].prob>DAO)
    {c->vers[3].let='o'; c->vers[3].prob=c->vers[1].prob-DAO; nvers++;}
   c->vers[0].let='g'; c->vers[1].let='q';
   c->vers[1].prob=c->vers[0].prob;
   }
  else
   {
   nvers=3; i=1;
   if (c->nvers>=2 && c->vers[1].let=='o')
    {
    nvers=4;
    if (c->vers[1].prob>=c->vers[0].prob-DAO) i=2;
    else {c->vers[3].let=c->vers[1].let; c->vers[3].prob=c->vers[1].prob;}
    }
   c->vers[i].let='g'; c->vers[i+1].let='q';
   c->vers[i].prob=c->vers[i+1].prob=c->vers[0].prob-DAO;
   }
  }
 else
  {
  if (c->row+c->h-bl.b3>=2)
   {
   c->vers[3].let='o'; c->vers[3].prob=c->vers[0].prob-DAO; nvers=4;
   if (c->nvers>=2 && c->vers[1].let=='a' && c->vers[1].prob>DAO)
    {c->vers[4].let='a'; c->vers[4].prob=c->vers[1].prob-DAO; nvers++;}
   c->vers[0].let='g'; c->vers[1].let='p'; c->vers[2].let='q';
   c->vers[1].prob=c->vers[2].prob=c->vers[0].prob;
   }
  else
   {
   nvers=4; i=1;
   if (c->nvers>=2 && c->vers[1].let=='a')
    {
    nvers=5;
    if (c->vers[1].prob>=c->vers[0].prob-DAO) i=2;
    else {c->vers[4].let=c->vers[1].let; c->vers[4].prob=c->vers[1].prob;}
    }
   c->vers[i].let='g'; c->vers[i+1].let='p'; c->vers[i+2].let='q';
   c->vers[i].prob=c->vers[i+1].prob=c->vers[i+2].prob=c->vers[0].prob-DAO;
   }
  }
 c->vers[nvers].let=0; c->nvers=nvers;
 }
Example #6
0
static void final_vy(cell *c)
 {

 if (c->vers[0].prob<=DVY) return;
 get_b_lines(c,&bl);
 if (c->row+c->h-bl.b3>=2)
  {c->vers[0].let='y'; c->vers[1].let='v';}
 else c->vers[1].let='y';
 c->vers[1].prob=c->vers[0].prob-DVY;
 c->vers[2].let=0;
 c->nvers=2;
 }
Example #7
0
static int16_t final_back_slash(cell *c)
 {

 get_b_lines(c,&bl);
 if (c->row>bl.b1+2 || c->row+c->h<bl.b3 ||
     c->env==NULL || c->env->nl!=1 || !is_back_slash(c))
  return 0;
 c->nvers=1;
 c->vers[0].let='\\';
 c->vers[0].prob=254;
 c->vers[1].let=0;
 return 1;
 }
Example #8
0
void erection_delete_seq(cell *b,cell *e)
{
cell *c;
B_LINES bl;

get_b_lines(b,&bl);
for(c=b;c!=e;c=c->next)
  if( erection_enable && (c->pos_inc&erect_rot) && c->stick_inc!=NO_INCLINE )
    {
    c->save_stick_inc =  c->stick_inc;
    erect_cell_value(c, (int16_t)(-c->stick_inc), 0, FALSE);
    erect_rotate_bl(c,(int16_t)((p2_active&&line_scale)?(bl.b3>>line_scale):bl.b3),(int32_t)(-c->stick_inc),+1);
    c->stick_inc = NO_INCLINE;
    c->pos_inc   = erect_rest;
    c->left      = c->col;
    c->right     = c->col+c->w;
    }
Example #9
0
uchar   erection_one_incline_word(cell *b, cell *e)
{
Bool    inc   ;
B_LINES bl    ;

if( !setup_incline_word(b,e, FALSE) ) // without statistic making
  {
  if( db_status && snap_activity('i') )
    {
    snap_show_text("ERECT : No erection images");
    snap_monitor();
    }
  clear_incline_word(b,e);
  return 0;
  }
get_b_lines(b,&bl);

inc = erection_incline_word_set(b, e);
return (uchar)inc;
}
Example #10
0
int16_t rec_ii(cell* c,cell * cap)
{
    cell *clist[8];
    uchar let;
    let = c->vers[0].let;
    if( cap->row > c->row )        return 0; // not a cap
    if( cap->w*3 < c->w )          return 0; // not so wide as need
    if( cap->w < 4 || cap->h < 3 ) return 0; // just dot
    if( cap->col < c->col-2 )      return 0; // left dust
    if(c->row > cap->row+cap->h &&
            (c->row-(cap->row+cap->h)) > c->h/2 ) return 0; // dust lay so high
    if( let != r_cu_u || (let == r_cu_u&&(c->pos_inc&erect_rot)) )
        // 'u' with cap
        if( c->col+c->w/2 < cap->col ||
                c->col+c->w/2 > cap->col+cap->w) return 0;  // not centered dust
    if( let == r_cu_u)  // 'u' with cap
        if( c->col+c->w < cap->col ||
                c->col      > cap->col+cap->w) return 0;  // not centered dust
    if(0&&!p2_active)  // OLEG
        if( let==r_cu_u || let==(uchar)'\xa8' /* и */ )
        {
            B_LINES bl;
            get_b_lines(c,&bl);
            if( cap->row+cap->h<=bl.b1+1 )
                return 0;
        }

    clist[0]=c;
    clist[1]=cap;
    if( !compose_cell(2,clist,c) )
        return -1; //OLEG:new return style of composed
    let = is_lower(let) ? (uchar)'\xa9' /* й */ : (uchar)'\x89' /* Й */;
    c->vers[0].let = let;
    c->vers[0].prob=MIN(254,c->vers[0].prob+2);
    c->recsource = 0; // artifact
    c->dens = 255; // undef
    c->nvers=1;
    c->vers[1].let=c->vers[1].prob=0;
    return 1;
}
Example #11
0
//extern uchar pass_cut;
void criteria(cell *c)
{
    uchar let = 0, *raster = 0;
    cf::version *vers = 0;
    int16_t r = 0, flacc = 0, flon = 0, inc = 0;
    cf::version save[VERS_IN_CELL] = { 0 };
    int16_t snvers = 0;

    // #define PROB_V_OK 170
    if (c->nvers > 0)
        memcpy(save, c->vers, c->nvers);
    snvers = c->nvers;
    if (!c->nvers)
        return;
    get_b_lines(c, &bl);
    H = (int16_t) get_size();
    if (c->nvers == 1 && c->vers[0].let == '>')
        test_rq(c);
    if (c->nvers == 1 && ((let = c->vers[0].let) == 'c' || let == 'C') || (c->nvers == 2
            && (c->vers[0].let == 'c' && c->vers[1].let == 'C' || c->vers[0].let == 'C'
                    && c->vers[1].let == 'c')))
        test_c(c);
    if (c->nvers >= 2 && (c->vers[0].let == 'a' && c->vers[1].let == 'o' || c->vers[0].let == 'o'
            && c->vers[1].let == 'a'))
        crit_oa(c);
    for (vers = c->vers, flacc = flon = 0; (let = vers->let) != 0; vers++) {
        { //Andrew
            if ((let = vers->let) == liga_CC || let == liga_CR) {
                raster = save_raster(c);
                inc = AnglesCurve(raster, (int16_t) ((c->w + 7) / 8), c->h);
                inc = (4 - inc) * 40;
                if (3 * c ->w > 4 * c ->h)
                    inc += 150;
                if (3 * c ->w < 2 * c ->h)
                    inc += 150;

                if (c->env && c->env->nl < 4)
                    inc += 100;

                if (vers->prob > inc)
                    vers->prob -= inc;
                else
                    vers->prob = 0;
            }
        }

        if (((language == LANGUAGE_FRENCH || language == LANGUAGE_ITALIAN) && memchr(
                "ACEIOUaceiou", let, 12) || // Включая нижние акценты "c" 05.07.2002 E.P.
                language == LANGUAGE_SPANISH && memchr("AEINOUaeniou", let, 12) || language
                == LANGUAGE_GERMAN && memchr("AOUaou", let, 6) || language == LANGUAGE_RUSSIAN
                && memchr("Ґ…", let, 2) || language == LANGUAGE_CROATIAN
                && memchr("SZCszc", let, 6)
        /*&& !pass_cut*/|| language == LANGUAGE_POLISH && memchr("AESZCNOaeszcno", let, 14) || // Включая нижние акценты a,e 05.07.2002 E.P.
                language == LANGUAGE_PORTUGUESE && memchr("AEOUIaeoui", let, 10) || language
                == LANGUAGE_SWEDISH && memchr("AEOaeo", let, 6)) && !flacc ||

        // 05.09.2000 E.P.
                language == LANGUAGE_CZECH && memchr("AaCcDdEeIiNnOoRrSsTtUuYyZz", let, 26)
                || language == LANGUAGE_ROMANIAN && memchr("AaIiSsTt", let, 8) || // Включая нижние акценты s,t 05.07.2002 E.P.
                language == LANGUAGE_HUNGARIAN && memchr("AaEeIiOoUu", let, 10) || language
                == LANGUAGE_SLOVENIAN && memchr("CcSsZz", let, 6) ||

        // 09.07.2001 E.P.
                language == LANGUAGE_LATVIAN && memchr("AaCcEeGgIiKkLlNnSsUuZz", let, 22)
                || language == LANGUAGE_LITHUANIAN && memchr("AaCcEeIiSsUuZz", let, 14) || language
                == LANGUAGE_ESTONIAN && memchr("AaOoSsUuZz", let, 10) ||

        // 21.05.2002 E.P.
                language == LANGUAGE_TURKISH && (memchr("AaCcIiGgOoSsUu", let, 14) || let
                        == i_sans_accent) || 0) {
            flacc = 1;
            if (accent(c))
                break;
        }

        // Урезание чужих букв из общих таблиц
        if (language == LANGUAGE_POLISH && memchr("qQ", let, 2) ||

        // BULGAR 08.09.2000 E.P.
                language == LANGUAGE_RUSSIAN && langBul && (let == 155 || let == 235 || // Ыы 08.09.2000 E.P.
                        let == 157 || let == 237 || // Ээ 08.09.2000 E.P.
                        let == r_EE_2dot || let == r_e_2dot) ||

        language == LANGUAGE_SLOVENIAN && isnot_slovenian(let) ||

        // 09.07.2001 E.P.
                language == LANGUAGE_LATVIAN && isnot_latvian(let) || language
                == LANGUAGE_LITHUANIAN && isnot_lithuanian(let) || language == LANGUAGE_ESTONIAN
                && isnot_estonian(let) ||

        // 21.05.2002 E.P.
                language == LANGUAGE_TURKISH && isnot_turkish(let) || 0) {
            vers->prob >>= 1;
            if (vers->prob & 1)
                vers->prob--;
            if (!vers->prob)
                vers->prob = 2;
        }

        if (c->isBadLetter()) // Oleg : 02-28-96 04:55pm : letter only
            if (((let = vers->let) == 'i' || let == 'j' || (language == LANGUAGE_TURKISH && let
                    == II_dot_accent) // 17.06.2002 E.P.
            ) && (r = ij_dot(c)) != 0) {
                if (r > 0)
                    break;
                vers--;
                continue;
            }

        // Nick 18.06.2002
        if (language == LANGUAGE_TURKISH && ((let = vers->let) == i_sans_accent || let
                == II_dot_accent) && (r = upper_right_angle(c)) > 0) {
            vers->prob = MAX(2, vers->prob - r);
            continue;
        }

        if ((let = vers->let) == '!' || let == '?') {
            if (excl_dot(c) > 0)
                break;
            vers--;
            continue;
        }
        if (language != LANGUAGE_RUSSIAN) // refuse with  ,Ў
            if ((let = vers->let) == invers_exm || let == invers_qm) {
                if (inv_dot(c) > 0)
                    break;
                vers--;
                continue;
            }

        if ((language == LANGUAGE_FRENCH || language == LANGUAGE_TURKISH // 18.06.2002 E.P.
        ) && (vers->let == 'c' || vers->let == 'C'))
            c_to_ctail(c, 0); // AL 940321
        if (vers->let == liga_rt && not_rt(c)) {
            vers--;
            continue;
        }
        if (is_liga_ff(vers->let) && not_ff(c)) {
            vers--;
            continue;
        }

        if (vers->let == 'n' || vers->let == 'o')
            flon = 1;
    }
Example #12
0
void final_crit()
 {
 cell *c;
 uchar let,let1;
 int16_t cnt;

 for (cnt=0,c=cell_f()->next; c->next!=NULL; c=c->next)
  {
  if (c->flg&c_f_space) continue;
  let=c->vers[0].let;
  if(final_crit_russian(c)) cnt++;
  if (c->font&c_fp_undrln)
   {
   if (let=='v')
    final_vy(c);
   if (let=='e' || let=='u')
    final_eg(c);
   if (let=='o' || let=='a' && c->nvers>=2 && c->vers[1].let=='o')
    final_ao_gpq(c);
   if (let=='O')
    final_OQ(c);
   if (let=='.')
    final_dotcom(c);
   }
  if (let=='/')
   cnt+=final_slash_l(c);
  else
   {
   if ((c->font|c->font_new)&c_fp_it && memchr("Il1",let,3))
    cnt+=final_no_slash(c);
   if (c->flg&c_f_bad || c->vers[0].prob<PROBL)
    cnt+=final_back_slash(c);
   }
  if ((let=='c' || let=='C') && c->vers[1].let=='<')
   {
   c->nvers=1;
   c->vers[1].let=0;
   }
  if ((let=='b' || let=='h') && (c->font|c->font_new)&c_fp_it)
   final_bh(c);
  if ( (language==LANG_GERMAN   ||
	    language==LANG_SPANISH  ||
		language==LANG_FRENCH	||
		language==LANG_ESTONIAN	||	// 19.07.2001 E.P.
		language==LANG_TURKISH		// 30.05.2002 E.P.
	   ) &&
      ((c->font|c->font_new)&c_fp_it || let=='i' ||
		let==liga_i ||
		 language == LANG_TURKISH &&  // 30.05.2002 E.P.
			(let==i_sans_accent||let==II_dot_accent)
	  ) &&
      (let=='i' || let==liga_i ||
		 language == LANG_TURKISH &&  // 30.05.2002 E.P.
			(let==i_sans_accent||let==II_dot_accent) ||
	   let==liga_fi || let==liga_ffi
	  ) &&
      ( (let1=c->nextl->vers[0].let)=='i' ||
		let1==liga_i ||
		 language == LANG_TURKISH &&  // 30.05.2002 E.P.
			(let1==i_sans_accent||let1==II_dot_accent)
	  ) &&
       (c->cg_flag&c_cg_cutr && c->nextl->cg_flag&c_cg_cutl ||
	    ((c->font|c->font_new)&c_fp_str) && c->nextl->col-(c->col+c->w)<=1
	   )
	  )
   final_ii_u(c);
  if (language==LANG_GERMAN && memchr("0AOU",let,4) ||
      language==LANG_SWEDISH && memchr("0AO",let,3) ||
      language==LANG_SPANISH && let=='U' ||
	  language==LANG_ESTONIAN && memchr("0AOU",let,4)	// 19.07.2001 E.P.
	 )
   {
   get_b_lines(c,&bl);
   if (bl.b1>c->row)
    final_AOU_2dot(c);
   }
  if (language==LANG_SWEDISH && c->vers[0].let=='A')
   {
   get_b_lines(c,&bl);
   if (bl.b1>c->row+MAX(4,bl.ps/4))
    final_A_circle(c);
   }
  if (let=='-' && 3*c->h<c->w &&
      (c->prev->flg&(c_f_fict|c_f_space) && c->prev->vers[0].let!=0x1e ||
       memchr(".,:;",c->prev->vers[0].let,4)) &&
      (c->next->flg&(c_f_fict|c_f_space) && c->next->vers[0].let!=0x1e ||
       memchr(".,:;",c->next->vers[0].let,4)))
   c->vers[0].let='_';
  if (let=='F' && c->cg_flag&c_cg_cutr &&
      memchr(".,",c->next->vers[0].let,2) && c->next->cg_flag&c_cg_cutl &&
      c->col+c->w>c->next->col)
   {
   clist[0]=c;
   clist[1]=c->next;
   compose_cell(2,clist,c);
   c->vers[0].let='E';
   c->left=c->col;
   c->right=c->col+c->w;
   }
  if (memchr("Vv",let,2) && c->cg_flag&c_cg_cutr &&
      c->next->vers[0].let==let && c->next->cg_flag&c_cg_cutl)
   final_vv_w(c);
  if (let=='d' && c->vers[0].prob>=PROBD &&
      memchr("cistx",c->next->vers[0].let,5) &&
      c->next->vers[0].prob<=PROBB &&
      c->next->col-(c->col+c->w)<=1)
   final_d_chck(c);
  if (let==0x27 && c->cg_flag&c_cg_cutr &&
      memchr("Il",c->next->vers[0].let,2) && c->next->cg_flag&c_cg_cutl)
   {
     c=c->next;  // AL 940321
     final_Il_1(c);
     cnt++;
   }
  if (let=='7' && c->cg_flag&c_cg_cutr &&
      c->next->vers[0].let==0x27 && c->next->cg_flag&c_cg_cutl)
   {final_7_T(c); cnt++;}
  }
 if (cnt)
  {
  delspace();
  space_size((int16_t)get_size());
  space_cell();
  context_proc_line();
  cont_space();
  }
 }
Example #13
0
//
// main erection function :
// find and erected incline words
//
uchar   erection_incline_words(int16_t pass)
{
cell *c, *e, *tmp, *sc              ;
uchar buf[MAX_LEN_WORD+40]           ;
uchar wrd[MAX_LEN_WORD+40], word_len ;
Bool inc, incline, no_res           ;
B_LINES bl                          ;
#ifdef STEND_INC
static char  oldstr[256]="c:\\";
char         str[256]      ;
static int16_t   oldline=-1    ;
FILE         *fp           ;
static int16_t   first=1       ;
#endif
int16_t          av_inc=0, n_inc=0;

local_pass=pass;
if( !setup_incline_word(cell_f()->nextl,cell_l(), TRUE) )
  {
  if( db_status && snap_activity('i') )
    {
    snap_show_text("ERECT : No erection images");
    snap_monitor();
    }
  clear_incline_word(cell_f()->nextl,cell_l());
  return 0;
  }


if( db_status && snap_activity('i') )
 {
 snap_show_text("ERECT : Begin erection words");
 snap_monitor();
 }

c       = cell_f() ;
incline = FALSE    ;
while(1)
  {
  if( (c  = erect_next_word(c))==NULL )break;
  no_res=1;
  inc   =0;
  strcpy(buf,"ERECT : Word : ");
  get_b_lines(c,&bl);
  e = erect_end_word(c, wrd, &word_len, (int16_t)(bl.ps/2) );
  strcpy(&buf[14],wrd);
  erect_page_words++;
  sc = snap_stopcell(c,e)?snap_get_stopcell():NULL;
  tmp = c->prev;
  inc = erection_incline_word(c, e, bl.b3, 0);
  if( inc && !local_pass )
    {
    incline = 1;
    av_inc+=inc;
    n_inc++;
    erect_page_incline[inc/16]++;
    }

#ifdef STEND_INC
  if( inc && !(db_status && snap_activity('i')) )
    {
    set_page_name(str);
    if( strcmp(str, oldstr) )
      {
      strcpy(oldstr, str);
      fp = fopen("erection.txt",first?"wt":"at");
      if( fp==NULL )
        fp = fopen("erection.txt","wt");
      if( first)  first=0;
      fprintf(fp,"\nfile : %s", str);
      fclose(fp);
      }
    if( oldline!=line_number)
      {
      oldline=line_number;
      fp = fopen("erection.txt","at");
      fprintf(fp,"\nline %d : ", line_number+1);
      fclose(fp);
      }
    sprintf(wrd,"(%d)",inc);
    no_res=0;
    strcat(buf,wrd)        ;
    fp = fopen("erection.txt","at");
    fprintf(fp," %s ", &buf[14]);
    fclose(fp);
    }
#endif

  if( db_status && snap_activity('i') )
    {
    if( inc || sc )
      {
      if( inc )
        sprintf(wrd,"(%d)",inc);
      else
        sprintf(wrd,"(no erection)");
      if( no_res )
        strcat(buf,wrd)      ;
      snap_newcell(sc?sc:tmp->next)        ;
      snap_show_text(buf)    ;
      snap_monitor()         ;
      }
    }
  if( e==NULL )
    break;
  c = e;
  }
if( n_inc )
    erection_inc = av_inc / n_inc;
clear_incline_word(cell_f()->nextl,cell_l());
if( db_status && snap_activity('i') )
 {
 snap_show_text("ERECT : End erection words ");
 snap_monitor();
 }

return(uchar) incline ;
}