From ce2b982cd2c839fa736375e7906057785f4f3738 Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 27 Dec 2007 06:27:39 +0000 Subject: [PATCH] * encoding.c (rb_enc_codelen): show codepoint in error message. * include/ruby/encoding.h (rb_enc_codelen): comment it returns positive integer. * string.c (rb_str_concat): rb_enc_codelen doesn't return 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++++ encoding.c | 2 +- include/ruby/encoding.h | 2 +- string.c | 3 --- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 512cc6f589..c4fab6d80c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Thu Dec 27 15:25:16 2007 Tanaka Akira + + * encoding.c (rb_enc_codelen): show codepoint in error message. + + * include/ruby/encoding.h (rb_enc_codelen): comment it returns + positive integer. + + * string.c (rb_str_concat): rb_enc_codelen doesn't return 0. + Thu Dec 27 15:18:44 2007 Tanaka Akira * encoding.c (rb_enc_codelen): error message refined. diff --git a/encoding.c b/encoding.c index 5c74871ecd..2e8b9b54ea 100644 --- a/encoding.c +++ b/encoding.c @@ -680,7 +680,7 @@ rb_enc_codelen(int c, rb_encoding *enc) { int n = ONIGENC_CODE_TO_MBCLEN(enc,c); if (n == 0) { - rb_raise(rb_eArgError, "invalid codepoint"); + rb_raise(rb_eArgError, "invalid codepoint 0x%x", c); } return n; } diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index 1b1e3d7c59..1a57876555 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -87,7 +87,7 @@ int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc); int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc); #define rb_enc_mbc_to_codepoint(p, e, enc) ONIGENC_MBC_TO_CODE(enc,(UChar*)(p),(UChar*)(e)) -/* -> codelen or raise exception */ +/* -> codelen>0 or raise exception */ int rb_enc_codelen(int code, rb_encoding *enc); /* code,ptr,encoding -> write buf */ diff --git a/string.c b/string.c index 7a88e79330..e780d1a992 100644 --- a/string.c +++ b/string.c @@ -1104,9 +1104,6 @@ rb_str_concat(VALUE str1, VALUE str2) int pos = RSTRING_LEN(str1); int len = rb_enc_codelen(c, enc); - if (len == 0) { - rb_raise(rb_eArgError, "invalid codepoint 0x%x", c); - } rb_str_resize(str1, pos+len); rb_enc_mbcput(c, RSTRING_PTR(str1)+pos, enc); return str1;