[前][次][番号順一覧][スレッド一覧]

ruby-changes:29869

From: nobu <ko1@a...>
Date: Thu, 11 Jul 2013 20:18:23 +0900 (JST)
Subject: [ruby-changes:29869] nobu:r41921 (trunk): transcode.c: fill terminator

nobu	2013-07-11 20:18:10 +0900 (Thu, 11 Jul 2013)

  New Revision: 41921

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=41921

  Log:
    transcode.c: fill terminator
    
    * transcode.c (str_encode_associate): fill terminator after conversion.

  Modified files:
    trunk/ChangeLog
    trunk/internal.h
    trunk/string.c
    trunk/transcode.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 41920)
+++ ChangeLog	(revision 41921)
@@ -1,4 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
-Thu Jul 11 20:18:03 2013  Nobuyoshi Nakada  <nobu@r...>
+Thu Jul 11 20:18:08 2013  Nobuyoshi Nakada  <nobu@r...>
+
+	* transcode.c (str_encode_associate): fill terminator after conversion.
 
 	* string.c (rb_enc_str_new, rb_str_set_len, rb_str_resize): fill
 	  minimum length of the encoding as the terminator.
Index: string.c
===================================================================
--- string.c	(revision 41920)
+++ string.c	(revision 41921)
@@ -1539,6 +1539,16 @@ rb_string_value_cstr(volatile VALUE *ptr https://github.com/ruby/ruby/blob/trunk/string.c#L1539
     return s;
 }
 
+void
+rb_str_fill_terminator(VALUE str)
+{
+    char *s = RSTRING_PTR(str);
+    long len = RSTRING_LEN(str);
+    rb_encoding *enc = rb_enc_get(str);
+    const int minlen = rb_enc_mbminlen(enc);
+    str_fill_term(str, s, len, minlen, enc);
+}
+
 VALUE
 rb_check_string_type(VALUE str)
 {
Index: internal.h
===================================================================
--- internal.h	(revision 41920)
+++ internal.h	(revision 41921)
@@ -441,6 +441,7 @@ VALUE rb_str_quote_unprintable(VALUE); https://github.com/ruby/ruby/blob/trunk/internal.h#L441
 VALUE rb_id_quote_unprintable(ID);
 #define QUOTE(str) rb_str_quote_unprintable(str)
 #define QUOTE_ID(id) rb_id_quote_unprintable(id)
+void rb_str_fill_terminator(VALUE str);
 
 /* struct.c */
 VALUE rb_struct_init_copy(VALUE copy, VALUE s);
Index: transcode.c
===================================================================
--- transcode.c	(revision 41920)
+++ transcode.c	(revision 41921)
@@ -2760,6 +2760,7 @@ str_encode_associate(VALUE str, int enci https://github.com/ruby/ruby/blob/trunk/transcode.c#L2760
     int cr = 0;
 
     rb_enc_associate_index(str, encidx);
+    rb_str_fill_terminator(str);
 
     /* transcoded string never be broken. */
     if (rb_enc_asciicompat(rb_enc_from_index(encidx))) {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]