+
+static int
+check_description (MPlist *plist)
+{
+ MText *mt;
+
+ if (MPLIST_MTEXT_P (plist))
+ return 1;
+ if (MPLIST_PLIST_P (plist))
+ {
+ MPlist *pl = MPLIST_PLIST (plist);
+
+ if (MFAILP (MPLIST_SYMBOL_P (pl) && MPLIST_SYMBOL (pl) == M_gettext))
+ return 0;
+ pl =MPLIST_NEXT (pl);
+ if (MFAILP (MPLIST_MTEXT_P (pl)))
+ return 0;
+ mt = MPLIST_MTEXT (pl);
+ M17N_OBJECT_REF (mt);
+#if ENABLE_NLS
+ {
+ char *translated = dgettext ("m17n-db", (char *) MTEXT_DATA (mt));
+
+ if (translated == (char *) MTEXT_DATA (mt))
+ translated = dgettext ("m17n-contrib", (char *) MTEXT_DATA (mt));
+ if (translated != (char *) MTEXT_DATA (mt))
+ {
+ M17N_OBJECT_UNREF (mt);
+ mt = mtext__from_data (translated, strlen (translated),
+ MTEXT_FORMAT_UTF_8, 1);
+ }
+ }
+#endif
+ mplist_set (plist, Mtext, mt);
+ M17N_OBJECT_UNREF (mt);
+ return 1;
+ }
+ if (MFAILP (MPLIST_SYMBOL_P (plist) && MPLIST_SYMBOL (plist) == Mnil))
+ return 0;
+ return 1;
+}
+
+