summaryrefslogtreecommitdiff
path: root/pack.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-01 16:56:19 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-01 16:56:19 +0000
commit7ff702406a324ed12c69bc23a7cfaf066e401547 (patch)
treeaf1c1a9ee2d96bcc009c639271ef5031fd6a05dd /pack.c
parentd92b461dd9f5ff0eae7d15435aab1507dfb53496 (diff)
* include/ruby/intern.h (rb_uv_to_utf8): declared.
* re.c (rb_reg_preprocess): new function for dynamic regexp with \u{} such as Regexp.new("\\u{6666}"). (rb_reg_prepare_re): preprocess regexp for recompiling. (read_escaped_byte): new function. (unescape_escaped_nonascii): new function. (append_utf8): new function. (unescape_unicode_list): new function. (unescape_unicode_bmp): new function. (unescape_nonascii): new function. (rb_reg_initialize): preprocess regexp. * pack.c (rb_uv_to_utf8): renamed from uv_to_utf8. * parse.y (STR_NEW3): take func instead of has8 and hasmb. (parser_str_new): use default coderange mechanism except for regexp. (parser_tokadd_utf8): copy regexp source as-is. (parser_read_escape): UTF-8 stuff removed. (parser_tokadd_escape): has8bit and hasmb removed. (parser_tokadd_string): fix 8-bit single byte character with \u. (parser_parse_string): has8bit and hasmb removed. (parser_here_document): has8bit and hasmb removed. (parser_yylex): call parser_tokadd_utf8 instead of read_escape for UTF-8 character. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'pack.c')
-rw-r--r--pack.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/pack.c b/pack.c
index 4cab476bd2..b1d7268850 100644
--- a/pack.c
+++ b/pack.c
@@ -365,7 +365,6 @@ static const char toofew[] = "too few arguments";
static void encodes(VALUE,const char*,long,int);
static void qpencode(VALUE,VALUE,long);
-static int uv_to_utf8(char*,unsigned long);
static unsigned long utf8_to_uv(const char*,long*);
/*
@@ -872,7 +871,7 @@ pack_pack(VALUE ary, VALUE fmt)
if (l < 0) {
rb_raise(rb_eRangeError, "pack(U): value out of range");
}
- le = uv_to_utf8(buf, l);
+ le = rb_uv_to_utf8(buf, l);
rb_str_buf_cat(res, (char*)buf, le);
}
break;
@@ -1991,8 +1990,8 @@ pack_unpack(VALUE str, VALUE fmt)
#define BYTEWIDTH 8
-static int
-uv_to_utf8(char *buf, unsigned long uv)
+int
+rb_uv_to_utf8(char buf[6], unsigned long uv)
{
if (uv <= 0x7f) {
buf[0] = (char)uv;