1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

merge revision(s) 20151:

* ext/stringio/stringio.c (strio_ungetc): should allow ungetc at
	  the top of the buffer.  ref #701


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2009-02-09 04:39:52 +00:00
parent cde7c40982
commit 783b5e40d8
3 changed files with 26 additions and 12 deletions

View file

@ -1,3 +1,8 @@
Mon Feb 9 13:39:14 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* ext/stringio/stringio.c (strio_ungetc): should allow ungetc at
the top of the buffer. ref #701
Thu Feb 5 09:37:39 2009 NARUSE, Yui <naruse@ruby-lang.org>
* ext/nkf/nkf-utf8/nkf.c (h_conv): can't guess UTF-8 input in

View file

@ -771,15 +771,24 @@ strio_ungetc(self, ch)
int cc = NUM2INT(ch);
long len, pos = ptr->pos;
if (cc != EOF && pos > 0) {
if ((len = RSTRING(ptr->string)->len) < pos-- ||
(unsigned char)RSTRING(ptr->string)->ptr[pos] !=
(unsigned char)cc) {
strio_extend(ptr, pos, 1);
RSTRING(ptr->string)->ptr[pos] = cc;
OBJ_INFECT(ptr->string, self);
if (cc != EOF) {
len = RSTRING(ptr->string)->len;
if (pos == 0) {
char *p;
rb_str_resize(ptr->string, len + 1);
p = RSTRING(ptr->string)->ptr;
memmove(p + 1, p, len);
}
--ptr->pos;
else {
if (len < pos-- ||
(unsigned char)RSTRING(ptr->string)->ptr[pos] !=
(unsigned char)cc) {
strio_extend(ptr, pos, 1);
}
--ptr->pos;
}
RSTRING(ptr->string)->ptr[pos] = cc;
OBJ_INFECT(ptr->string, self);
ptr->flags &= ~STRIO_EOF;
}
return Qnil;

View file

@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.6"
#define RUBY_RELEASE_DATE "2009-02-05"
#define RUBY_RELEASE_DATE "2009-02-09"
#define RUBY_VERSION_CODE 186
#define RUBY_RELEASE_CODE 20090205
#define RUBY_PATCHLEVEL 322
#define RUBY_RELEASE_CODE 20090209
#define RUBY_PATCHLEVEL 323
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 2
#define RUBY_RELEASE_DAY 5
#define RUBY_RELEASE_DAY 9
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];