forked from aniani/vim
updated for version 7.0-022
This commit is contained in:
parent
4169da7845
commit
20ff79237a
@ -643,11 +643,23 @@ static VALUE buffer_aref(VALUE self, VALUE num)
|
|||||||
|
|
||||||
static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
|
static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
|
||||||
{
|
{
|
||||||
buf_T *savebuf = curbuf;
|
char *line = STR2CSTR(str);
|
||||||
char *line = STR2CSTR(str);
|
#ifdef FEAT_AUTOCMD
|
||||||
|
aco_save_T aco;
|
||||||
|
#else
|
||||||
|
buf_T *save_curbuf = curbuf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) {
|
if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL)
|
||||||
|
{
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* set curwin/curbuf for "buf" and save some things */
|
||||||
|
aucmd_prepbuf(&aco, buf);
|
||||||
|
#else
|
||||||
curbuf = buf;
|
curbuf = buf;
|
||||||
|
curwin->w_buffer = buf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (u_savesub(n) == OK) {
|
if (u_savesub(n) == OK) {
|
||||||
ml_replace(n, (char_u *)line, TRUE);
|
ml_replace(n, (char_u *)line, TRUE);
|
||||||
changed();
|
changed();
|
||||||
@ -655,10 +667,19 @@ static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str)
|
|||||||
syn_changed(n); /* recompute syntax hl. for this line */
|
syn_changed(n); /* recompute syntax hl. for this line */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
curbuf = savebuf;
|
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* restore curwin/curbuf and a few other things */
|
||||||
|
aucmd_restbuf(&aco);
|
||||||
|
/* Careful: autocommands may have made "buf" invalid! */
|
||||||
|
#else
|
||||||
|
curwin->w_buffer = save_curbuf;
|
||||||
|
curbuf = save_curbuf;
|
||||||
|
#endif
|
||||||
update_curbuf(NOT_VALID);
|
update_curbuf(NOT_VALID);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
rb_raise(rb_eIndexError, "index %d out of buffer", n);
|
rb_raise(rb_eIndexError, "index %d out of buffer", n);
|
||||||
return Qnil; /* For stop warning */
|
return Qnil; /* For stop warning */
|
||||||
}
|
}
|
||||||
@ -676,12 +697,24 @@ static VALUE buffer_aset(VALUE self, VALUE num, VALUE str)
|
|||||||
|
|
||||||
static VALUE buffer_delete(VALUE self, VALUE num)
|
static VALUE buffer_delete(VALUE self, VALUE num)
|
||||||
{
|
{
|
||||||
buf_T *buf = get_buf(self);
|
buf_T *buf = get_buf(self);
|
||||||
buf_T *savebuf = curbuf;
|
long n = NUM2LONG(num);
|
||||||
long n = NUM2LONG(num);
|
#ifdef FEAT_AUTOCMD
|
||||||
|
aco_save_T aco;
|
||||||
|
#else
|
||||||
|
buf_T *save_curbuf = curbuf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (n > 0 && n <= buf->b_ml.ml_line_count) {
|
if (n > 0 && n <= buf->b_ml.ml_line_count)
|
||||||
|
{
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* set curwin/curbuf for "buf" and save some things */
|
||||||
|
aucmd_prepbuf(&aco, buf);
|
||||||
|
#else
|
||||||
curbuf = buf;
|
curbuf = buf;
|
||||||
|
curwin->w_buffer = buf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (u_savedel(n, 1) == OK) {
|
if (u_savedel(n, 1) == OK) {
|
||||||
ml_delete(n, 0);
|
ml_delete(n, 0);
|
||||||
|
|
||||||
@ -691,10 +724,19 @@ static VALUE buffer_delete(VALUE self, VALUE num)
|
|||||||
|
|
||||||
changed();
|
changed();
|
||||||
}
|
}
|
||||||
curbuf = savebuf;
|
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* restore curwin/curbuf and a few other things */
|
||||||
|
aucmd_restbuf(&aco);
|
||||||
|
/* Careful: autocommands may have made "buf" invalid! */
|
||||||
|
#else
|
||||||
|
curwin->w_buffer = save_curbuf;
|
||||||
|
curbuf = save_curbuf;
|
||||||
|
#endif
|
||||||
update_curbuf(NOT_VALID);
|
update_curbuf(NOT_VALID);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
rb_raise(rb_eIndexError, "index %d out of buffer", n);
|
rb_raise(rb_eIndexError, "index %d out of buffer", n);
|
||||||
}
|
}
|
||||||
return Qnil;
|
return Qnil;
|
||||||
@ -702,13 +744,25 @@ static VALUE buffer_delete(VALUE self, VALUE num)
|
|||||||
|
|
||||||
static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
|
static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
|
||||||
{
|
{
|
||||||
buf_T *buf = get_buf(self);
|
buf_T *buf = get_buf(self);
|
||||||
buf_T *savebuf = curbuf;
|
char *line = STR2CSTR(str);
|
||||||
char *line = STR2CSTR(str);
|
long n = NUM2LONG(num);
|
||||||
long n = NUM2LONG(num);
|
#ifdef FEAT_AUTOCMD
|
||||||
|
aco_save_T aco;
|
||||||
|
#else
|
||||||
|
buf_T *save_curbuf = curbuf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) {
|
if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL)
|
||||||
|
{
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* set curwin/curbuf for "buf" and save some things */
|
||||||
|
aucmd_prepbuf(&aco, buf);
|
||||||
|
#else
|
||||||
curbuf = buf;
|
curbuf = buf;
|
||||||
|
curwin->w_buffer = buf;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (u_inssub(n + 1) == OK) {
|
if (u_inssub(n + 1) == OK) {
|
||||||
ml_append(n, (char_u *) line, (colnr_T) 0, FALSE);
|
ml_append(n, (char_u *) line, (colnr_T) 0, FALSE);
|
||||||
|
|
||||||
@ -718,7 +772,15 @@ static VALUE buffer_append(VALUE self, VALUE num, VALUE str)
|
|||||||
|
|
||||||
changed();
|
changed();
|
||||||
}
|
}
|
||||||
curbuf = savebuf;
|
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
/* restore curwin/curbuf and a few other things */
|
||||||
|
aucmd_restbuf(&aco);
|
||||||
|
/* Careful: autocommands may have made "buf" invalid! */
|
||||||
|
#else
|
||||||
|
curwin->w_buffer = save_curbuf;
|
||||||
|
curbuf = save_curbuf;
|
||||||
|
#endif
|
||||||
update_curbuf(NOT_VALID);
|
update_curbuf(NOT_VALID);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -666,6 +666,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
22,
|
||||||
/**/
|
/**/
|
||||||
21,
|
21,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user