Пример #1
0
static	void	bstack_paste()
{
	char	buf[MAXEDITLINE+1], buf_a[MAXEDITLINE+1];
	const	char	*q;
	EditLine	*ed,*edn;

	if (bstack_nums==0)
		return;

	q=bstack[bstack_nums-1].s;
	csr_leupdate();

	if (bstack[bstack_nums-1].blkm==BLKM_y)
		{
		 edn=ed=GetList(GetLineOffset()-1);
		 for(;;)
		 	{
		 	 q=str_paste(buf, q);
		 	 if (q==NULL)
		 	 	break;
		 	 InsertLine(ed, MakeLine(buf));
		 	 ed=ed->next;
		 	}
		 csrse.ed = edn -> next;
		} else
		{
		 ed=GetList(GetLineOffset());
		 strcpy(buf, ed->buffer);
		 buf[GetBufferOffset()]='\0';
		 strcpy(buf_a, ed->buffer+GetBufferOffset());

		 q=str_paste(buf+GetBufferOffset(), q);
		 if (q==NULL)
		 	{
		 	 strcat(buf, buf_a);
		 	 Realloc(ed, buf);
		 	} else
		 	{
		 	 Realloc(ed, buf);

			 for(;;)
			 	{
		 	 	 q=str_paste(buf, q);
		 	 	 if (q==NULL)
		 	 	 	break;
		 	 	 InsertLine(ed, MakeLine(buf));
		 	 	 ed=ed->next;
		 	 	}
		 	 strcat(buf, buf_a);
		 	 InsertLine(ed, MakeLine(buf));
		 	}
		}

	SetFileChangeFlag();

	csr_lenew();
	OffsetSetByColumn();
}
Пример #2
0
void	block_cmove()
{
	if (blck.blkm==BLKM_none)
		return;

	if (blck.y_ed != GetLineOffset())
		blck.blkm= BLKM_y; else
		{
		 if (blck.x_ed != GetBufferOffset())
		 	blck.blkm= BLKM_x;
		}

	blck.x_ed= GetBufferOffset();
	blck.y_ed= GetLineOffset();
}
Пример #3
0
int 	IsKanjiPosition()
{
	int 	i;

	i=GetBufferOffset();

	return i+1<=strlen(csrle.buf)
		&& iskanji(csrle.buf[i]) && iskanji(csrle.buf[i+1]);
}
Пример #4
0
SHELL	void	op_block_chlast()
{
	long	a;
	int 	b;
	blkm_t	blkm;

	if (blck.blkm!=BLKM_none)
		{
		 a=blck.y_st;
		 blck.y_st=GetLineOffset();

		 b=blck.x_st;
		 blck.x_st=GetBufferOffset();

		 blkm=blck.blkm;

		 csr_setly(a);
		 csr_setlx(b);

		 blck.blkm=blkm;
		}
}