diff options
Diffstat (limited to 'string.c')
| -rw-r--r-- | string.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -129,6 +129,23 @@ rb_enc_str_coderange(VALUE str) return cr; } +int rb_enc_str_asciionly_p(VALUE str) +{ + rb_encoding *enc = rb_enc_get(str); + + if (rb_enc_asciicompat(enc) && + rb_enc_str_coderange(str) == ENC_CODERANGE_SINGLE) { + char *ptr = RSTRING_PTR(str); + long len = RSTRING_LEN(str); + long i; + for (i = 0; i < len; i++) + if (ptr[i] & 0x80) + return Qfalse; + return Qtrue; + } + return Qfalse; +} + static inline void str_mod_check(VALUE s, char *p, long len) { |
