* Dick Porter (dick@ximian.com)
* Mohammad DAMT (mdamt@cdl2000.com)
*
- * (C) 2003 Ximian, Inc.
+ * Copyright 2003 Ximian, Inc (http://www.ximian.com)
+ * Copyright 2004-2009 Novell, Inc (http://www.novell.com)
* (C) 2003 PT Cakram Datalingga Duaribu http://www.cdl2000.com
*/
len++;
}
- ret = mono_array_new (mono_domain_get (),
+ ret = mono_array_new_cached (mono_domain_get (),
mono_get_int32_class (), len);
for(i = 0; i < len; i++)
len++;
}
- ret = mono_array_new (mono_domain_get (), mono_get_string_class (), len);
+ ret = mono_array_new_cached (mono_domain_get (), mono_get_string_class (), len);
for(i = 0; i < len; i++)
mono_array_setref (ret, i, mono_string_new (domain, idx2string (names [i])));
domain = mono_domain_get ();
+ datetime->readOnly = this->is_read_only;
MONO_OBJECT_SETREF (datetime, AbbreviatedDayNames, create_names_array_idx (dfe->abbreviated_day_names,
NUM_DAYS));
MONO_OBJECT_SETREF (datetime, AbbreviatedMonthNames, create_names_array_idx (dfe->abbreviated_month_names,
MONO_ARCH_SAVE_REGS;
g_assert (this->number_format != 0);
+ if (this->number_index < 0)
+ return;
number = this->number_format;
nfe = &number_format_entries [this->number_index];
domain = mono_domain_get ();
+ number->readOnly = this->is_read_only;
number->currencyDecimalDigits = nfe->currency_decimal_digits;
MONO_OBJECT_SETREF (number, currencyDecimalSeparator, mono_string_new (domain,
idx2string (nfe->currency_decimal_separator)));
MONO_OBJECT_SETREF (this, win3lang, mono_string_new (domain, idx2string (ci->win3lang)));
MONO_OBJECT_SETREF (this, iso3lang, mono_string_new (domain, idx2string (ci->iso3lang)));
MONO_OBJECT_SETREF (this, iso2lang, mono_string_new (domain, idx2string (ci->iso2lang)));
+ MONO_OBJECT_SETREF (this, territory, mono_string_new (domain, idx2string (ci->territory)));
this->parent_lcid = ci->parent_lcid;
this->specific_lcid = ci->specific_lcid;
this->datetime_index = ci->datetime_format_index;
if (entry->lcid != entry->specific_lcid)
entry = culture_info_entry_from_lcid (entry->specific_lcid);
- return construct_culture (ci, entry);
+ if (entry)
+ return construct_culture (ci, entry);
+ else
+ return FALSE;
}
static const CultureInfoEntry*
const gchar *p;
gchar *c;
-#ifdef PLATFORM_WIN32
+#ifdef HOST_WIN32
locale = g_win32_getlocale ();
#else
locale = get_posix_locale ();
if ((p = strchr (locale, '.')) != NULL) {
/* assume new locale can't be larger than old one? */
- corrected = malloc (strlen (locale));
+ corrected = g_malloc (strlen (locale));
strncpy (corrected, locale, p - locale);
corrected [p - locale] = 0;
*/
if (corrected == NULL) {
- corrected = malloc (strlen (locale));
+ corrected = g_malloc (strlen (locale));
strncpy (corrected, locale, p - locale);
corrected [p - locale] = 0;
}
if ((c = strchr (corrected, '_')) != NULL)
*c = '-';
- g_strdown (corrected);
+ c = corrected;
+ corrected = g_ascii_strdown (c, -1);
+ g_free (c);
return corrected;
}
ret = construct_culture_from_specific_name (ci, locale);
g_free (locale);
+ ci->is_read_only = TRUE;
+ ci->use_user_override = TRUE;
return ret;
}
culture = (MonoCultureInfo *) mono_object_new (domain, class);
mono_runtime_object_init ((MonoObject *) culture);
construct_culture (culture, ci);
+ culture->use_user_override = TRUE;
mono_array_setref (ret, len++, culture);
}
}
gint32 options)
{
gint32 result;
- GUnicodeType c1type, c2type;
/* Ordinal can not be mixed with other options, and must return the difference, not only -1, 0, 1 */
if (options & CompareOptions_Ordinal)
return (gint32) c1 - c2;
- c1type = g_unichar_type (c1);
- c2type = g_unichar_type (c2);
-
if (options & CompareOptions_IgnoreCase) {
+ GUnicodeType c1type, c2type;
+
+ c1type = g_unichar_type (c1);
+ c2type = g_unichar_type (c2);
+
result = (gint32) (c1type != G_UNICODE_LOWERCASE_LETTER ? g_unichar_tolower(c1) : c1) -
(c2type != G_UNICODE_LOWERCASE_LETTER ? g_unichar_tolower(c2) : c2);
} else {