Esempio n. 1
0
static int
enc_set_default_encoding(struct default_encoding *def, VALUE encoding, const char *name)
{
    int overridden = FALSE;

    if (def->index != -2)
	/* Already set */
	overridden = TRUE;

    if (NIL_P(encoding)) {
	def->index = -1;
	def->enc = 0;
	st_insert(enc_table.names, (st_data_t)strdup(name),
		  (st_data_t)UNSPECIFIED_ENCODING);
    }
    else {
	def->index = rb_enc_to_index(rb_to_encoding(encoding));
	def->enc = 0;
	enc_alias_internal(name, def->index);
    }

    if (def == &default_external)
	enc_alias_internal("filesystem", Init_enc_set_filesystem_encoding());

    return overridden;
}
Esempio n. 2
0
File: encoding.c Progetto: 217/ruby
static int
enc_alias(const char *alias, int idx)
{
    if (!valid_encoding_name_p(alias)) return -1;
    alias = enc_alias_internal(alias, idx);
    set_encoding_const(alias, rb_enc_from_index(idx));
    return idx;
}
Esempio n. 3
0
File: encoding.c Progetto: 217/ruby
int
rb_locale_encindex(void)
{
    VALUE charmap = rb_locale_charmap(rb_cEncoding);
    int idx;

    if (NIL_P(charmap))
        idx = rb_usascii_encindex();
    else if ((idx = rb_enc_find_index(StringValueCStr(charmap))) < 0)
        idx = rb_ascii8bit_encindex();

    if (rb_enc_registered("locale") < 0) enc_alias_internal("locale", idx);

    return idx;
}
Esempio n. 4
0
int
rb_locale_encindex(void)
{
    int idx = rb_locale_charmap_index();

    if (idx < 0) idx = ENCINDEX_ASCII;

    if (rb_enc_registered("locale") < 0) {
# if defined _WIN32
	void Init_w32_codepage(void);
	Init_w32_codepage();
# endif
	enc_alias_internal("locale", idx);
    }

    return idx;
}
Esempio n. 5
0
File: encoding.c Progetto: 217/ruby
static int
enc_set_filesystem_encoding(void)
{
    int idx;
#if defined NO_LOCALE_CHARMAP
    idx = rb_enc_to_index(rb_default_external_encoding());
#elif defined _WIN32 || defined __CYGWIN__
    char cp[sizeof(int) * 8 / 3 + 4];
    snprintf(cp, sizeof cp, "CP%d", AreFileApisANSI() ? GetACP() : GetOEMCP());
    idx = rb_enc_find_index(cp);
    if (idx < 0) idx = rb_ascii8bit_encindex();
#else
    idx = rb_enc_to_index(rb_default_external_encoding());
#endif

    enc_alias_internal("filesystem", idx);
    return idx;
}
Esempio n. 6
0
int
rb_locale_encindex(void)
{
    VALUE charmap = rb_locale_charmap(rb_cEncoding);
    int idx;

    if (NIL_P(charmap))
        idx = ENCINDEX_US_ASCII;
    else if ((idx = rb_enc_find_index(StringValueCStr(charmap))) < 0)
        idx = ENCINDEX_ASCII;

    if (rb_enc_registered("locale") < 0) {
# if defined _WIN32
	void Init_w32_codepage(void);
	Init_w32_codepage();
# endif
	enc_alias_internal("locale", idx);
    }

    return idx;
}