.\" Copyright (C) 2001 Information-technology Promotion Agency (IPA)
.\" Copyright (C) 2001-2009
.\"   National Institute of Advanced Industrial Science and Technology (AIST)
.\" This file is part of the m17n library documentation.
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Section, no Front-Cover Texts,
.\" and no Back-Cover Texts.  A copy of the license is included in the
.\" appendix entitled "GNU Free Documentation License".
.TH "msymbol_put" 3m17n "15 Oct 2009" "" "Version 1.5.5" "" "The m17n Library" \" -*- nroff -*-
.ad l
.nh
.SH NAME
msymbol_put \- Set the value of a symbol property. 


.SH SYNOPSIS
int
\fBmsymbol_put\fP (\fBMSymbol\fP
\fIsymbol\fP, \fBMSymbol\fP
\fIkey\fP, void *
\fIval\fP)


.SH DESCRIPTION
Set the value of a symbol property. 
.PP
The
.ft B
msymbol_put()
.ft R
function assigns
.ft B
val
.ft R
to the value of the symbol property that belongs to
.ft B
symbol
.ft R
and whose key is
.ft B
key\fP.
.ft R
If the symbol property already has a value,
.ft B
val
.ft R
overwrites the old one. Both
.ft B
symbol
.ft R
and
.ft B
key
.ft R
must not be
.ft B
Mnil\fP.
.ft R
.PP
If
.ft B
key
.ft R
is a managing key,
.ft B
val
.ft R
must be a managed object. In this case, the reference count of the old value, if not
.ft C
NULL\fP,
.ft R
is decremented by one, and that of
.ft B
val
.ft R
is incremented by one.
.PP
.SH RETURN VALUE
.PP
.RS 4
If the operation was successful,
.ft B
msymbol_put()
.ft R
returns 0. Otherwise it returns \-1 and assigns an error code to the external variable
.ft B
merror_code\fP.
.ft R
.RE
.PP
.SH ERRORS
.PP
.RS 4
\fCMERROR_SYMBOL
.ft R
.RE
.PP
.SH "SEE ALSO"
.PP
.RS 4
\fBmsymbol_get()
.ft R
.RE
.PP

.SH COPYRIGHT
Copyright (C) 2001 Information\-technology Promotion Agency (IPA)
.br
Copyright (C) 2001\-2009 National Institute of Advanced Industrial Science and Technology (AIST)
.br
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License 
<http://www.gnu.org/licenses/fdl.html>.
