Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

119 lines (91 sloc) 4.393 kb
#ifndef RBX_CAPI_ENCODING_H
#define RBX_CAPI_ENCODING_H
#ifdef __cplusplus
extern "C" {
#endif
#include "oniguruma.h"
#include "transcoder.h"
typedef OnigEncodingType rb_encoding;
#define ENCODING_INLINE_MAX 1023
#define ENCODING_GET_INLINED(obj) rb_enc_get_index(obj)
#define ENC_CODERANGE_UNKNOWN 0
#define ENC_CODERANGE_7BIT 1
#define MBCLEN_CHARFOUND_P(ret) ONIGENC_MBCLEN_CHARFOUND_P(ret)
#define rb_enc_isctype(c, t, enc) ONIGENC_IS_CODE_CTYPE(enc, c, t)
#define rb_enc_isascii(c, enc) ONIGENC_IS_CODE_ASCII(c)
#define rb_enc_isalpha(c, enc) ONIGENC_IS_CODE_ALPHA(enc, c)
#define rb_enc_islower(c, enc) ONIGENC_IS_CODE_LOWER(enc, c)
#define rb_enc_isupper(c, enc) ONIGENC_IS_CODE_UPPER(enc, c)
#define rb_enc_ispunct(c, enc) ONIGENC_IS_CODE_PUNCT(enc, c)
#define rb_enc_isalnum(c, enc) ONIGENC_IS_CODE_ALNUM(enc, c)
#define rb_enc_isprint(c, enc) ONIGENC_IS_CODE_PRINT(enc, c)
#define rb_enc_isspace(c, enc) ONIGENC_IS_CODE_SPACE(enc, c)
#define rb_enc_isdigit(c, enc) ONIGENC_IS_CODE_DIGIT(enc, c)
#define rb_enc_mbcput(c, buf, enc) ONIGENC_CODE_TO_MBC(enc,c,(UChar*)(buf))
#define rb_enc_asciicompat(enc) (rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc))
/* start, ptr, end, encoding -> prev_char */
#define rb_enc_prev_char(s,p,e,enc) \
((char *)onigenc_get_prev_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
/* start, ptr, end, encoding -> next_char */
#define rb_enc_left_char_head(s,p,e,enc) \
((char *)onigenc_get_left_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_right_char_head(s,p,e,enc) \
((char *)onigenc_get_right_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_step_back(s,p,e,n,enc) \
((char *)onigenc_step_back((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e),(int)(n)))
#define rb_enc_name(enc) (enc)->name
#define rb_enc_mbminlen(enc) (enc)->min_enc_len
#define rb_enc_mbmaxlen(enc) (enc)->max_enc_len
#define rb_usascii_str_new2 rb_usascii_str_new_cstr
#define ENCODING_GET(obj) rb_enc_get_index(obj)
#define ENCODING_SET(obj, i) rb_enc_set_index(obj, i)
int rb_encdb_alias(const char *alias, const char *orig);
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);
int rb_enc_codelen(int code, rb_encoding *enc);
rb_encoding* rb_utf8_encoding(void);
rb_encoding* rb_usascii_encoding(void);
rb_encoding* rb_ascii8bit_encoding(void);
rb_encoding* rb_locale_encoding(void);
rb_encoding* rb_filesystem_encoding(void);
int rb_enc_coderange_asciionly_p(VALUE obj);
#define ENC_CODERANGE_ASCIIONLY rb_enc_coderange_asciionly_p
int rb_utf8_encindex(void);
int rb_usascii_encindex(void);
int rb_ascii8bit_encindex(void);
int rb_locale_encindex(void);
int rb_filesystem_encindex(void);
int rb_enc_get_index(VALUE obj);
VALUE rb_obj_encoding(VALUE obj);
void rb_enc_set_index(VALUE obj, int index);
int rb_to_encoding_index(VALUE obj);
rb_encoding* rb_enc_find(const char* name);
rb_encoding* rb_enc_get(VALUE obj);
rb_encoding* rb_enc_compatible(VALUE str1, VALUE str2);
rb_encoding* rb_enc_from_index(int idx);
rb_encoding* rb_default_internal_encoding(void);
rb_encoding* rb_default_external_encoding(void);
rb_encoding* rb_to_encoding(VALUE obj);
VALUE rb_enc_from_encoding(rb_encoding *enc);
int rb_define_dummy_encoding(const char *);
int rb_enc_find_index(const char *name);
int rb_enc_to_index(rb_encoding* enc);
char* rb_enc_nth(const char *p, const char *e, long nth, rb_encoding *enc);
int rb_enc_dummy_p(rb_encoding *enc);
VALUE rb_enc_associate(VALUE, rb_encoding*);
VALUE rb_enc_associate_index(VALUE, int);
void rb_enc_copy(VALUE dest, VALUE src);
VALUE rb_enc_str_new(const char*, long, rb_encoding*);
VALUE rb_usascii_str_new(const char* ptr, long len);
VALUE rb_usascii_str_new2(const char* ptr);
int rb_enc_str_coderange(VALUE);
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);
VALUE rb_str_export_to_enc(VALUE, rb_encoding *);
VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);
VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);
void rb_declare_transcoder(const char* from, const char* to, const char* lib);
void rb_register_transcoder(const rb_transcoder* trans);
#ifdef __cplusplus
}
#endif
#endif
Jump to Line
Something went wrong with that request. Please try again.