/* language.c -- language (and script) module.
- Copyright (C) 2003, 2004, 2006
+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H15PRO112
&& (p = MPLIST_NEXT (p)) /* char list */
&& ! MPLIST_TAIL_P (p)
&& (p = MPLIST_NEXT (p)) /* otf tag */
- && MPLIST_SYMBOL_P (p)
- && otf_tag == MPLIST_SYMBOL (p))
+ && ! MPLIST_TAIL_P (p))
{
- script = MPLIST_SYMBOL (pl);
- break;
+ if (MPLIST_SYMBOL_P (p))
+ {
+ if (otf_tag == MPLIST_SYMBOL (p))
+ return MPLIST_SYMBOL (pl);
+ }
+ else if (MPLIST_PLIST (p))
+ {
+ MPlist *p0;
+
+ MPLIST_DO (p0, MPLIST_PLIST (p))
+ if (MPLIST_SYMBOL_P (p0) && otf_tag == MPLIST_SYMBOL (p0))
+ return MPLIST_SYMBOL (pl);
+ }
}
}
return script;
}
if (MPLIST_TAIL_P (pl))
{
- pl = MPLIST_NEXT (MPLIST_NEXT (MPLIST_PLIST (plist)));
- if (! (plist = mplist__assq (pl, language)))
- plist = mplist__assq (pl, language2);
+ MPLIST_DO (pl, plist)
+ {
+ MPlist *p = MPLIST_NEXT (MPLIST_NEXT (MPLIST_PLIST (pl))), *p0;
+
+ if ((p0 = mplist__assq (p, language))
+ || (p0 = mplist__assq (p, language2)))
+ {
+ plist = p0;
+ break;
+ }
+ }
+ if (MPLIST_TAIL_P (pl))
+ return NULL;
}
}
- if (! plist)
- return NULL;
plist = MPLIST_NEXT (MPLIST_PLIST (plist));
if (territory != Mnil)
{
$SCRIPT ¤Ï¥·¥ó¥Ü¥ë¤Ç¡¢¤½¤Î̾Á°¤Ï Unicode Character Database ¤Ë¼¨¤µ
¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È̾¤ò¤¹¤Ù¤Æ¾®Ê¸»ú¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
- @return ¤³¤Î´Ø¿ô¤Ï¡¢À°·Á¼° (well-formed) plist ¤òÊÖ¤¹¡£³Æ¥¡¼¤Ï
+ @return
+ ¤³¤Î´Ø¿ô¤Ï¡¢À°·Á¼° (well-formed) plist ¤òÊÖ¤¹¡£³Æ¥¡¼¤Ï
#Msymbol ¤Ç¤¢¤ê¡¢¸Ä¡¹¤ÎÃÍ¤Ï ISO639-1 ¤ËÄê¤á¤é¤ì¤¿2ʸ»ú¸À¸ì¥³¡¼¥É
(ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï ISO639-2 ¤ËÄê¤á¤é¤ì¤¿3ʸ»ú¸À¸ì¥³¡¼¥É) ¤ò̾
Á°¤È¤¹¤ë¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ÊÖ¤µ¤ì¤ë plist ¤ÏÊѹ¹¤·¤¿¤ê²òÊü¤·¤¿¤ê¤·¤Æ