1#include "ruby/ruby.h" 2#include "ruby/encoding.h" 3 4static VALUE sym_7bit, sym_valid, sym_unknown, sym_broken; 5static VALUE 6str_coderange(VALUE str) 7{ 8 switch (ENC_CODERANGE(str)) { 9 case ENC_CODERANGE_7BIT: 10 return sym_7bit; 11 case ENC_CODERANGE_VALID: 12 return sym_valid; 13 case ENC_CODERANGE_UNKNOWN: 14 return sym_unknown; 15 case ENC_CODERANGE_BROKEN: 16 return sym_broken; 17 } 18 rb_bug("wrong condition of coderange"); 19 UNREACHABLE; 20} 21 22void 23Init_coderange(VALUE klass) 24{ 25 sym_7bit = ID2SYM(rb_intern("7bit")); 26 sym_valid = ID2SYM(rb_intern("valid")); 27 sym_unknown = ID2SYM(rb_intern("unknown")); 28 sym_broken = ID2SYM(rb_intern("broken")); 29 rb_define_method(klass, "coderange", str_coderange, 0); 30} 31