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

ruby-changes:19314

From: nobu <ko1@a...>
Date: Wed, 27 Apr 2011 00:54:20 +0900 (JST)
Subject: [ruby-changes:19314] Ruby:r31354 (trunk): * include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_MASK): add.

nobu	2011-04-27 00:54:14 +0900 (Wed, 27 Apr 2011)

  New Revision: 31354

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

  Log:
    * include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_MASK): add.

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/encoding.h
    trunk/transcode.c

Index: include/ruby/encoding.h
===================================================================
--- include/ruby/encoding.h	(revision 31353)
+++ include/ruby/encoding.h	(revision 31354)
@@ -303,6 +303,7 @@
 #define ECONV_UNDEF_HEX_CHARREF                 0x00000030
 
 #define ECONV_DECORATOR_MASK                    0x0000ff00
+#define ECONV_NEWLINE_DECORATOR_MASK            0x00003f00
 
 #define ECONV_UNIVERSAL_NEWLINE_DECORATOR       0x00000100
 #define ECONV_CRLF_NEWLINE_DECORATOR            0x00001000
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31353)
+++ ChangeLog	(revision 31354)
@@ -1,3 +1,7 @@
+Wed Apr 27 00:54:12 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_MASK): add.
+
 Wed Apr 27 00:51:01 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (rb_file_truncate): fix function.
Index: transcode.c
===================================================================
--- transcode.c	(revision 31353)
+++ transcode.c	(revision 31354)
@@ -1025,14 +1025,16 @@
 {
     int num_decorators;
 
-    if ((ecflags & ECONV_CRLF_NEWLINE_DECORATOR) &&
-        (ecflags & ECONV_CR_NEWLINE_DECORATOR))
+    switch (ecflags & ECONV_NEWLINE_DECORATOR_MASK) {
+      case ECONV_UNIVERSAL_NEWLINE_DECORATOR:
+      case ECONV_CRLF_NEWLINE_DECORATOR:
+      case ECONV_CR_NEWLINE_DECORATOR:
+      case 0:
+	break;
+      default:
         return -1;
+    }
 
-    if ((ecflags & (ECONV_CRLF_NEWLINE_DECORATOR|ECONV_CR_NEWLINE_DECORATOR)) &&
-        (ecflags & ECONV_UNIVERSAL_NEWLINE_DECORATOR))
-        return -1;
-
     if ((ecflags & ECONV_XML_TEXT_DECORATOR) &&
         (ecflags & ECONV_XML_ATTR_CONTENT_DECORATOR))
         return -1;
@@ -1965,7 +1967,7 @@
         }
     }
 
-    ec->flags &= ~(ECONV_UNIVERSAL_NEWLINE_DECORATOR|ECONV_CRLF_NEWLINE_DECORATOR|ECONV_CR_NEWLINE_DECORATOR);
+    ec->flags &= ~ECONV_NEWLINE_DECORATOR_MASK;
 
 }
 
@@ -1987,9 +1989,7 @@
         has_description = 1;
     }
 
-    if (ecflags & (ECONV_UNIVERSAL_NEWLINE_DECORATOR|
-                   ECONV_CRLF_NEWLINE_DECORATOR|
-                   ECONV_CR_NEWLINE_DECORATOR|
+    if (ecflags & (ECONV_NEWLINE_DECORATOR_MASK|
                    ECONV_XML_TEXT_DECORATOR|
                    ECONV_XML_ATTR_CONTENT_DECORATOR|
                    ECONV_XML_ATTR_QUOTE_DECORATOR)) {
@@ -2647,9 +2647,7 @@
     arg2 = argc<=1 ? Qnil : argv[1];
     dencidx = str_transcode_enc_args(str, &arg1, &arg2, &sname, &senc, &dname, &denc);
 
-    if ((ecflags & (ECONV_UNIVERSAL_NEWLINE_DECORATOR|
-                    ECONV_CRLF_NEWLINE_DECORATOR|
-                    ECONV_CR_NEWLINE_DECORATOR|
+    if ((ecflags & (ECONV_NEWLINE_DECORATOR_MASK|
                     ECONV_XML_TEXT_DECORATOR|
                     ECONV_XML_ATTR_CONTENT_DECORATOR|
                     ECONV_XML_ATTR_QUOTE_DECORATOR)) == 0) {

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

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