You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
02111-1307, USA. */
/***en
if (! MPLIST_TAIL_P (&sym->plist))
{
if (sym->plist.key->managing_key)
- M17N_OBJECT_UNREF (sym->plist.val);
+ M17N_OBJECT_UNREF (MPLIST_VAL (&sym->plist));
M17N_OBJECT_UNREF (sym->plist.next);
sym->plist.key = Mnil;
}
return (MPLIST_TAIL_P (plist) ? NULL : MPLIST_VAL (plist));
}
+/*=*/
+/***en
+ @brief Set the value (function pointer) of a symbol property.
+
+ The msymbol_put_func () function is similar to msymbol_put () but for
+ setting function pointer $FUNC as the property value of $SYMBOL for
+ key $KEY. */
+
+/***ja
+ @brief ¥·¥ó¥Ü¥ë¥×¥í¥Ñ¥Æ¥£¤ÎÃÍ(´Ø¿ô¥Ý¥¤¥ó¥¿)¤òÀßÄꤹ¤ë.
+
+ ´Ø¿ô msymbol_put_func () ¤Ï¡¢´Ø¿ô msymbol_put () ¤ÈƱÍͤˡ¢¥·¥ó¥Ü¥ë
+ $SYMBOL ¤Î¥¡¼¤¬ $KEY ¤Ç¤¢¤ë¥·¥ó¥Ü¥ë¥×¥í¥Ñ¥Æ¥£¤ÎÃͤòÀßÄꤹ¤ë¡£Ã¢¤·
+ ¤½¤ÎÃͤϴؿô¥Ý¥¤¥ó¥¿ $FUNC ¤Ç¤¢¤ë¡£ */
+
+/***
+ @seealso msymbol_put (), M17N_FUNC () */
+int
+msymbol_put_func (MSymbol symbol, MSymbol key, M17NFunc func)
+{
+ if (symbol == Mnil || key == Mnil)
+ MERROR (MERROR_SYMBOL, -1);
+ mplist_put_func (&symbol->plist, key, func);
+ return 0;
+}
+
+/*=*/
+
+/***en
+ @brief Get the value (function pointer) of a symbol property.
+
+ The msymbol_get_func () function is similar to msymbol_get () but for
+ getting a function pointer form the property of symbol $SYMBOL. */
+
+/***ja
+ @brief ¥·¥ó¥Ü¥ë¥×¥í¥Ñ¥Æ¥£¤ÎÃÍ (´Ø¿ô¥Ý¥¤¥ó¥¿) ¤òÆÀ¤ë.
+
+ ´Ø¿ô msymbol_get_func () ¤Ï¡¢´Ø¿ô msymbol_get () ¤ÈƱÍͤˡ¢¥·¥ó¥Ü¥ë
+ $SYMBOL ¤¬»ý¤Ä¥·¥ó¥Ü¥ë¥×¥í¥Ñ¥Æ¥£¤Î¤¦¤Á¡¢¥¡¼¤¬ $KEY ¤Ç¤¢¤ë¤â¤Î¤òÆÀ¤ë¡£Ã¢¤·
+ ¤½¤ÎÃͤϴؿô¥Ý¥¤¥ó¥¿¤ò¤Ç¤¢¤ë¡£ */
+
+/***
+ @seealso
+ msymbol_get () */
+
+M17NFunc
+msymbol_get_func (MSymbol symbol, MSymbol key)
+{
+ if (symbol == Mnil || key == Mnil)
+ return NULL;
+ return mplist_get_func (&symbol->plist, key);
+}
+
/*** @} */
#include <stdio.h>