Ruby 1.9.3p327(2012-11-10revision37606)
Data Structures | Defines | Functions | Variables
ext/iconv/iconv.c File Reference
#include "ruby/ruby.h"
#include <errno.h>
#include <iconv.h>
#include <assert.h>
#include "ruby/st.h"
#include "ruby/encoding.h"
Include dependency graph for iconv.c:

Go to the source code of this file.

Data Structures

struct  iconv_env_t
struct  rb_iconv_opt_t

Defines

#define VALUE2ICONV(v)   ((iconv_t)((VALUE)(v) ^ -1))
#define ICONV2VALUE(c)   ((VALUE)(c) ^ -1)
#define rb_sys_fail(s)   rb_iconv_sys_fail(s)
#define ICONV_FREE   iconv_dfree
#define ICONV_INPTR_CAST   (char **)
#define FAILED_MAXLEN   16
#define iconv_ctl(self, func, val)
#define iconv_s_list   rb_f_notimplement
#define iconv_trivialp   rb_f_notimplement
#define iconv_get_transliterate   rb_f_notimplement
#define iconv_set_transliterate   rb_f_notimplement
#define iconv_get_discard_ilseq   rb_f_notimplement
#define iconv_set_discard_ilseq   rb_f_notimplement

Functions

static VALUE iconv_fail _ ((VALUE error, VALUE success, VALUE failed, struct iconv_env_t *env, const char *mesg))
static VALUE
iconv_failure_initialize 
_ ((VALUE error, VALUE mesg, VALUE success, VALUE failed))
static VALUE iconv_failure_success _ ((VALUE self))
static iconv_t iconv_create _ ((VALUE to, VALUE from, struct rb_iconv_opt_t *opt, int *idx))
static void iconv_dfree _ ((void *cd))
static VALUE iconv_free _ ((VALUE cd))
static VALUE iconv_try _ ((iconv_t cd, const char **inptr, size_t *inlen, char **outptr, size_t *outlen))
static VALUE rb_str_derive _ ((VALUE str, const char *ptr, long len))
static VALUE iconv_convert _ ((iconv_t cd, VALUE str, long start, long length, int toidx, struct iconv_env_t *env))
static VALUE iconv_s_allocate _ ((VALUE klass))
static VALUE iconv_initialize _ ((int argc, VALUE *argv, VALUE self))
static VALUE iconv_s_convert _ ((struct iconv_env_t *env))
static VALUE charset_map_get (void)
static VALUE strip_glibc_option (VALUE *code)
static char * map_charset (VALUE *code)
 NORETURN (static void rb_iconv_sys_fail(const char *s))
static void rb_iconv_sys_fail (const char *s)
static iconv_t iconv_create (VALUE to, VALUE from, struct rb_iconv_opt_t *opt, int *idx)
static void iconv_dfree (void *cd)
static VALUE iconv_free (VALUE cd)
static VALUE check_iconv (VALUE obj)
static VALUE iconv_try (iconv_t cd, const char **inptr, size_t *inlen, char **outptr, size_t *outlen)
static VALUE iconv_failure_initialize (VALUE error, VALUE mesg, VALUE success, VALUE failed)
static VALUE iconv_fail (VALUE error, VALUE success, VALUE failed, struct iconv_env_t *env, const char *mesg)
static VALUE iconv_fail_retry (VALUE error, VALUE success, VALUE failed, struct iconv_env_t *env, const char *mesg)
static VALUE rb_str_derive (VALUE str, const char *ptr, long len)
static VALUE iconv_convert (iconv_t cd, VALUE str, long start, long length, int toidx, struct iconv_env_t *env)
static VALUE iconv_s_allocate (VALUE klass)
static VALUE get_iconv_opt_i (VALUE i, VALUE arg)
static void get_iconv_opt (struct rb_iconv_opt_t *opt, VALUE options)
static VALUE iconv_initialize (int argc, VALUE *argv, VALUE self)
static VALUE iconv_s_open (int argc, VALUE *argv, VALUE self)
static VALUE iconv_s_convert (struct iconv_env_t *env)
static VALUE iconv_s_iconv (int argc, VALUE *argv, VALUE self)
static VALUE iconv_s_conv (VALUE self, VALUE to, VALUE from, VALUE str)
static VALUE iconv_init_state (VALUE self)
static VALUE iconv_finish (VALUE self)
static VALUE iconv_iconv (int argc, VALUE *argv, VALUE self)
static VALUE iconv_conv (int argc, VALUE *argv, VALUE self)
static VALUE iconv_s_ctlmethods (VALUE klass)
static VALUE iconv_failure_success (VALUE self)
static VALUE iconv_failure_failed (VALUE self)
static VALUE iconv_failure_inspect (VALUE self)
static void warn_deprecated (void)
void Init_iconv (void)

Variables

static ID id_transliterate
static ID id_discard_ilseq
static VALUE rb_eIconvInvalidEncoding
static VALUE rb_eIconvFailure
static VALUE rb_eIconvIllegalSeq
static VALUE rb_eIconvInvalidChar
static VALUE rb_eIconvOutOfRange
static VALUE rb_eIconvBrokenLibrary
static ID rb_success
static ID rb_failed
static VALUE charset_map

Define Documentation

#define FAILED_MAXLEN   16

Definition at line 354 of file iconv.c.

Referenced by iconv_fail().

#define ICONV2VALUE (   c)    ((VALUE)(c) ^ -1)

Definition at line 80 of file iconv.c.

Referenced by iconv_initialize(), iconv_s_conv(), iconv_s_iconv(), and iconv_s_open().

#define iconv_ctl (   self,
  func,
  val 
)
Value:
(\
        iconvctl(VALUE2ICONV(check_iconv(self)), func, (void *)&(val)) ? \
        rb_sys_fail(#func) : (void)0)

Definition at line 628 of file iconv.c.

#define ICONV_FREE   iconv_dfree

Definition at line 295 of file iconv.c.

Referenced by check_iconv(), iconv_s_allocate(), and iconv_s_open().

#define iconv_get_discard_ilseq   rb_f_notimplement

Definition at line 1045 of file iconv.c.

Referenced by Init_iconv().

#define iconv_get_transliterate   rb_f_notimplement

Definition at line 1008 of file iconv.c.

Referenced by Init_iconv().

#define ICONV_INPTR_CAST   (char **)

Referenced by iconv_try().

#define iconv_s_list   rb_f_notimplement

Definition at line 853 of file iconv.c.

Referenced by Init_iconv().

#define iconv_set_discard_ilseq   rb_f_notimplement

Definition at line 1063 of file iconv.c.

Referenced by Init_iconv().

#define iconv_set_transliterate   rb_f_notimplement

Definition at line 1026 of file iconv.c.

Referenced by Init_iconv().

#define iconv_trivialp   rb_f_notimplement

Definition at line 989 of file iconv.c.

Referenced by Init_iconv().

#define rb_sys_fail (   s)    rb_iconv_sys_fail(s)

Definition at line 187 of file iconv.c.

Referenced by iconv_create(), iconv_free(), iconv_try(), and rb_iconv_sys_fail().

#define VALUE2ICONV (   v)    ((iconv_t)((VALUE)(v) ^ -1))

Definition at line 79 of file iconv.c.

Referenced by iconv_conv(), iconv_dfree(), iconv_free(), iconv_iconv(), and iconv_init_state().


Function Documentation

static VALUE iconv_fail_retry _ ( (VALUE error, VALUE success, VALUE failed, struct iconv_env_t *env, const char *mesg)  ) [static]
static VALUE iconv_failure_initialize _ ( (VALUE error, VALUE mesg, VALUE success, VALUE failed)  ) [static]
static iconv_t iconv_create _ ( (VALUE to, VALUE from, struct rb_iconv_opt_t *opt, int *idx)  ) [static]
static VALUE rb_str_derive _ ( (VALUE str, const char *ptr, long len ) [static]
static VALUE iconv_convert _ ( (iconv_t cd, VALUE str, long start, long length, int toidx, struct iconv_env_t *env)  ) [static]
static void iconv_dfree _ ( (void *cd)  ) [static]
static VALUE iconv_s_allocate _ ( (VALUE klass)  ) [static]
static VALUE iconv_conv _ ( (int argc, VALUE *argv, VALUE self)  ) [static]
static VALUE iconv_finish _ ( (VALUE self)  ) [static]
static VALUE iconv_init_state _ ( (VALUE cd)  ) [static]
static VALUE iconv_s_convert _ ( (struct iconv_env_t *env)  ) [static]
static VALUE iconv_try _ ( (iconv_t cd, const char **inptr, size_t *inlen, char **outptr, size_t *outlen)  ) [static]
static VALUE charset_map_get ( void  ) [static]

Definition at line 140 of file iconv.c.

References charset_map.

Referenced by Init_iconv().

static VALUE check_iconv ( VALUE  obj) [static]
static void get_iconv_opt ( struct rb_iconv_opt_t opt,
VALUE  options 
) [static]
static VALUE get_iconv_opt_i ( VALUE  i,
VALUE  arg 
) [static]
static VALUE iconv_conv ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE iconv_convert ( iconv_t  cd,
VALUE  str,
long  start,
long  length,
int  toidx,
struct iconv_env_t env 
) [static]
static iconv_t iconv_create ( VALUE  to,
VALUE  from,
struct rb_iconv_opt_t opt,
int *  idx 
) [static]
static void iconv_dfree ( void *  cd) [static]

Definition at line 290 of file iconv.c.

References VALUE2ICONV.

static VALUE iconv_fail ( VALUE  error,
VALUE  success,
VALUE  failed,
struct iconv_env_t env,
const char *  mesg 
) [static]
static VALUE iconv_fail_retry ( VALUE  error,
VALUE  success,
VALUE  failed,
struct iconv_env_t env,
const char *  mesg 
) [static]

Definition at line 393 of file iconv.c.

References iconv_fail(), rb_block_given_p(), rb_exc_raise(), rb_set_errinfo(), and rb_yield().

Referenced by iconv_convert().

static VALUE iconv_failure_failed ( VALUE  self) [static]

Definition at line 1123 of file iconv.c.

References rb_attr_get(), and rb_failed.

Referenced by Init_iconv().

static VALUE iconv_failure_initialize ( VALUE  error,
VALUE  mesg,
VALUE  success,
VALUE  failed 
) [static]

Definition at line 357 of file iconv.c.

References rb_call_super(), rb_failed, rb_ivar_set(), and rb_success.

Referenced by Init_iconv().

static VALUE iconv_failure_inspect ( VALUE  self) [static]
static VALUE iconv_failure_success ( VALUE  self) [static]

Definition at line 1110 of file iconv.c.

References rb_attr_get(), and rb_success.

Referenced by Init_iconv().

static VALUE iconv_finish ( VALUE  self) [static]

Definition at line 876 of file iconv.c.

References iconv_env_t::cd, check_iconv(), iconv_free(), iconv_init_state(), Qnil, and rb_ensure().

Referenced by iconv_s_open(), and Init_iconv().

static VALUE iconv_free ( VALUE  cd) [static]

Definition at line 298 of file iconv.c.

References Qnil, rb_sys_fail, and VALUE2ICONV.

Referenced by iconv_finish(), iconv_initialize(), iconv_s_conv(), and iconv_s_iconv().

static VALUE iconv_iconv ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE iconv_init_state ( VALUE  self) [static]

Definition at line 868 of file iconv.c.

References iconv_env_t::cd, DATA_PTR, ENCODING_GET, iconv_convert(), NULL, Qnil, and VALUE2ICONV.

Referenced by iconv_finish().

static VALUE iconv_initialize ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE iconv_s_allocate ( VALUE  klass) [static]

Definition at line 558 of file iconv.c.

References Data_Wrap_Struct, and ICONV_FREE.

Referenced by Init_iconv().

static VALUE iconv_s_conv ( VALUE  self,
VALUE  to,
VALUE  from,
VALUE  str 
) [static]
static VALUE iconv_s_convert ( struct iconv_env_t env) [static]
static VALUE iconv_s_ctlmethods ( VALUE  klass) [static]

Definition at line 1073 of file iconv.c.

References ID2SYM, rb_ary_new(), rb_ary_push(), and rb_intern.

Referenced by Init_iconv().

static VALUE iconv_s_iconv ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE iconv_s_open ( int  argc,
VALUE argv,
VALUE  self 
) [static]
static VALUE iconv_try ( iconv_t  cd,
const char **  inptr,
size_t *  inlen,
char **  outptr,
size_t *  outlen 
) [static]
void Init_iconv ( void  )
static char* map_charset ( VALUE code) [static]

Definition at line 162 of file iconv.c.

References charset_map, key, rb_funcall2(), rb_intern, RHASH_SIZE, RHASH_TBL, st_lookup(), StringValue, and StringValuePtr.

Referenced by iconv_create().

NORETURN ( static void   rb_iconv_sys_failconst char *s)
static void rb_iconv_sys_fail ( const char *  s) [static]

Definition at line 179 of file iconv.c.

References errno, iconv_fail(), NULL, Qnil, rb_eIconvBrokenLibrary, rb_exc_raise(), and rb_sys_fail.

static VALUE rb_str_derive ( VALUE  str,
const char *  ptr,
long  len 
) [static]

Definition at line 402 of file iconv.c.

References NIL_P, OBJ_INFECT, rb_str_new(), rb_str_subseq(), iconv_env_t::ret, RSTRING_LEN, and RSTRING_PTR.

Referenced by iconv_convert().

static VALUE strip_glibc_option ( VALUE code) [static]

Definition at line 146 of file iconv.c.

References rb_str_subseq(), RSTRING_END, RSTRING_PTR, and StringValue.

Referenced by iconv_create().

static void warn_deprecated ( void  ) [static]

Variable Documentation

VALUE charset_map [static]

Definition at line 131 of file iconv.c.

Referenced by charset_map_get(), Init_iconv(), and map_charset().

Definition at line 98 of file iconv.c.

Referenced by get_iconv_opt_i(), and Init_iconv().

ID id_transliterate [static]

Definition at line 98 of file iconv.c.

Referenced by get_iconv_opt_i(), and Init_iconv().

Definition at line 105 of file iconv.c.

Referenced by iconv_try(), Init_iconv(), and rb_iconv_sys_fail().

Definition at line 101 of file iconv.c.

Referenced by Init_iconv().

Definition at line 102 of file iconv.c.

Referenced by iconv_try(), and Init_iconv().

Definition at line 103 of file iconv.c.

Referenced by iconv_try(), and Init_iconv().

Definition at line 100 of file iconv.c.

Referenced by iconv_create(), and Init_iconv().

Definition at line 104 of file iconv.c.

Referenced by iconv_convert(), and Init_iconv().

ID rb_success [static]