summaryrefslogtreecommitdiffstats
path: root/time.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-29 09:19:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-29 09:19:15 +0000
commit4574cf872b0efe4e0b6ef180a5e273fccf0b628e (patch)
tree5a7cfc28983ed2e26680686bc23eb47de95fa813 /time.c
parent8c2372933098e73a549e0c8ce7c9edc94c03e38a (diff)
downloadruby-4574cf872b0efe4e0b6ef180a5e273fccf0b628e.tar.gz
ruby-4574cf872b0efe4e0b6ef180a5e273fccf0b628e.tar.xz
ruby-4574cf872b0efe4e0b6ef180a5e273fccf0b628e.zip
* time.c (time_strftime): format should be ascii compatible.
* parse.y (rb_intern3): non ASCII compatible symbols. * re.c (rb_reg_regsub): add encoding check. * string.c (rb_str_chomp_bang): ditto. * test/ruby/test_utf16.rb (TestUTF16::test_chomp): raises exception. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'time.c')
-rw-r--r--time.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/time.c b/time.c
index 8b3ac6c50..455f15bc1 100644
--- a/time.c
+++ b/time.c
@@ -12,6 +12,7 @@
#include "ruby/ruby.h"
#include <sys/types.h>
#include <time.h>
+#include "ruby/encoding.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -2077,6 +2078,9 @@ time_strftime(VALUE time, VALUE format)
time_get_tm(time, tobj->gmt);
}
StringValue(format);
+ if (!rb_enc_str_asciicompat_p(format)) {
+ rb_raise(rb_eArgError, "format should have ASCII compatible encoding");
+ }
format = rb_str_new4(format);
fmt = RSTRING_PTR(format);
len = RSTRING_LEN(format);