1\section{Property List}
2\label{group__m17nPlist}\index{Property List@{Property List}}
3Property List objects and API for them.
4\subsection*{Typedefs}
5\begin{CompactItemize}
6\item
7typedef struct {\bf MPlist} {\bf MPlist}
8\begin{CompactList}\small\item\em Type of property list objects. \item\end{CompactList}\end{CompactItemize}
9\subsection*{Functions}
10\begin{CompactItemize}
11\item
12{\bf MPlist} $\ast$ {\bf mplist\_\-deserialize} ({\bf MText} $\ast$mt)
13\begin{CompactList}\small\item\em Generate a property list by deserializing an M-text. \item\end{CompactList}\item
14{\bf MPlist} $\ast$ {\bf mplist} (void)
15\begin{CompactList}\small\item\em Create a property list object. \item\end{CompactList}\item
16{\bf MPlist} $\ast$ {\bf mplist\_\-copy} ({\bf MPlist} $\ast$plist)
17\begin{CompactList}\small\item\em Copy a property list. \item\end{CompactList}\item
18{\bf MPlist} $\ast$ {\bf mplist\_\-put} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key, void $\ast$val)
19\begin{CompactList}\small\item\em Set the value of a property in a property list. \item\end{CompactList}\item
20void $\ast$ {\bf mplist\_\-get} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key)
21\begin{CompactList}\small\item\em Get the value of a property in a property list. \item\end{CompactList}\item
22{\bf MPlist} $\ast$ {\bf mplist\_\-put\_\-func} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key, {\bf M17NFunc} func)
23\begin{CompactList}\small\item\em Set the value (function pointer) of a property in a property list. \item\end{CompactList}\item
24{\bf M17NFunc} {\bf mplist\_\-get\_\-func} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key)
25\begin{CompactList}\small\item\em Get the value (function pointer) of a property in a property list. \item\end{CompactList}\item
26{\bf MPlist} $\ast$ {\bf mplist\_\-add} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key, void $\ast$val)
27\begin{CompactList}\small\item\em Add a property at the end of a property list. \item\end{CompactList}\item
28{\bf MPlist} $\ast$ {\bf mplist\_\-push} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key, void $\ast$val)
29\begin{CompactList}\small\item\em Add a property at the beginning of a property list. \item\end{CompactList}\item
30void $\ast$ {\bf mplist\_\-pop} ({\bf MPlist} $\ast$plist)
31\begin{CompactList}\small\item\em Remove a property at the beginning of a property list. \item\end{CompactList}\item
32{\bf MPlist} $\ast$ {\bf mplist\_\-find\_\-by\_\-key} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key)
33\begin{CompactList}\small\item\em Find a property of a specific key in a property list. \item\end{CompactList}\item
34{\bf MPlist} $\ast$ {\bf mplist\_\-find\_\-by\_\-value} ({\bf MPlist} $\ast$plist, void $\ast$val)
35\begin{CompactList}\small\item\em Find a property of a specific value in a property list. \item\end{CompactList}\item
36{\bf MPlist} $\ast$ {\bf mplist\_\-next} ({\bf MPlist} $\ast$plist)
37\begin{CompactList}\small\item\em Return the next sublist of a property list. \item\end{CompactList}\item
38{\bf MPlist} $\ast$ {\bf mplist\_\-set} ({\bf MPlist} $\ast$plist, {\bf MSymbol} key, void $\ast$val)
39\begin{CompactList}\small\item\em Set the first property in a property list. \item\end{CompactList}\item
40int {\bf mplist\_\-length} ({\bf MPlist} $\ast$plist)
41\begin{CompactList}\small\item\em Return the length of a property list. \item\end{CompactList}\item
42{\bf MSymbol} {\bf mplist\_\-key} ({\bf MPlist} $\ast$plist)
43\begin{CompactList}\small\item\em Return the key of the first property in a property list. \item\end{CompactList}\item
44void $\ast$ {\bf mplist\_\-value} ({\bf MPlist} $\ast$plist)
45\begin{CompactList}\small\item\em Return the value of the first property in a property list. \item\end{CompactList}\end{CompactItemize}
46\subsection*{Variables}
47\begin{CompactItemize}
48\item
49{\bf MSymbol} {\bf Minteger}
50\begin{CompactList}\small\item\em Symbol whose name is \char`\"{}integer\char`\"{}. \item\end{CompactList}\item
51{\bf MSymbol} {\bf Mplist}
52\begin{CompactList}\small\item\em Symbol whose name is \char`\"{}plist\char`\"{}. \item\end{CompactList}\item
53{\bf MSymbol} {\bf Mtext}
54\begin{CompactList}\small\item\em Symbol whose name is \char`\"{}mtext\char`\"{}. \item\end{CompactList}\end{CompactItemize}
55
56
57\subsection{Detailed Description}
58Property List objects and API for them.
59
60A {\em property\/} {\em list\/} (or {\em plist\/} for short) is a list of zero or more properties. A property consists of a {\em key\/} and a {\em value\/}, where key is a symbol and value is anything that can be cast to {\tt (void $\ast$)}.
61
62If the key of a property is a {\em managing\/} {\em key\/}, its {\em value\/} is a {\em managed\/} {\em object\/}. A property list itself is a managed objects.
63
64If each key of a plist is one of \doxyref{Msymbol}{p.}{group__m17nSymbol_g6592d4eb3c46fe7fb8993c252b8fedeb}, \doxyref{Mtext}{p.}{group__m17nPlist_g1a22859374071a0ca66f12452afee8bd}, \doxyref{Minteger}{p.}{group__m17nPlist_g0ce08eb57aa339db4d4745e75e80fdd8}, and \doxyref{Mplist}{p.}{group__m17nPlist_g933000e154873f9bfcaa56d976bd259b}, the plist is called as {\em well-formed\/} and represented by the following notation in the documentation.
65
66
67
68\footnotesize\begin{verbatim}
69      PLIST ::= '(' ELEMENT * ')'
70
71      ELEMENT ::= INTEGER | SYMBOL | M-TEXT | PLIST
72
73      M-TEXT ::= '"' text data ... '"'
74\end{verbatim}
75\normalsize
76
77
78For instance, if a plist has four elements; integer -20, symbol of name \char`\"{}sym\char`\"{}, M-text of contents \char`\"{}abc\char`\"{}, and plist of integer 10 and symbol of name \char`\"{}another-symbol\char`\"{}, it is represented as this:
79
80(-20 sym \char`\"{}abc\char`\"{} (10 another-symbol))
81
82\subsection{Typedef Documentation}
83\index{m17nPlist@{m17nPlist}!MPlist@{MPlist}}
84\index{MPlist@{MPlist}!m17nPlist@{m17nPlist}}
85\subsubsection[MPlist]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf MPlist} {\bf MPlist}}\label{group__m17nPlist_gc8b2ac3c9a8f0a6afb7f189b694035e2}
86
87
88Type of property list objects.
89
90The type \doxyref{MPlist}{p.}{group__m17nPlist_gc8b2ac3c9a8f0a6afb7f189b694035e2} is for a {\em property\/} {\em list\/} object. Its internal structure is concealed from application programs.
91
92\subsection{Function Documentation}
93\index{m17nPlist@{m17nPlist}!mplist\_\-deserialize@{mplist\_\-deserialize}}
94\index{mplist\_\-deserialize@{mplist\_\-deserialize}!m17nPlist@{m17nPlist}}
95\subsubsection[mplist\_\-deserialize]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist} $\ast$ mplist\_\-deserialize ({\bf MText} $\ast$ {\em mt})}\label{group__m17nPlist_g687bcaacf8110e0f60a12c9ebc288b4c}
96
97
98Generate a property list by deserializing an M-text.
99
100The \doxyref{mplist\_\-deserialize()}{p.}{group__m17nPlist_g687bcaacf8110e0f60a12c9ebc288b4c} function parses M-text {\bf mt} and returns a property list.
101
102The syntax of {\bf mt} is as follows.
103
104MT ::= '(' ELEMENT $\ast$ ')'
105
106ELEMENT ::= SYMBOL $|$ INTEGER $|$ M-TEXT $|$ PLIST
107
108SYMBOL ::= ascii-character-sequence
109
110INTEGER ::= '-' ? [ '0' $|$ .. $|$ '9' ]+ $|$ '0x' [ '0' $|$ .. $|$ '9' $|$ 'A' $|$ .. $|$ 'F' $|$ 'a' $|$ .. $|$ 'f' ]+
111
112M-TEXT ::= '\char`\"{}' character-sequence '\char`\"{}'
113
114Each alternatives of {\tt ELEMENT} is assigned one of these keys: {\tt Msymbol}, {\tt Minteger}, {\tt Mtext}, {\tt Mplist}
115
116In an ascii-character-sequence, a backslash ($\backslash$) is used as the escape character, which means that, for instance, {\tt abc$\backslash$ def} produces a symbol whose name is of length seven with the fourth character being a space. \index{m17nPlist@{m17nPlist}!mplist@{mplist}}
117\index{mplist@{mplist}!m17nPlist@{m17nPlist}}
118\subsubsection[mplist]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist (void)}\label{group__m17nPlist_g86cff73047b6462271d086f7365782ff}
119
120
121Create a property list object.
122
123The \doxyref{mplist()}{p.}{group__m17nPlist_g86cff73047b6462271d086f7365782ff} function returns a newly created property list object of length zero.
124
125\begin{Desc}
126\item[Return value:]This function returns a newly created property list.\end{Desc}
127\begin{Desc}
128\item[Errors:]This function never fails. \end{Desc}
129\index{m17nPlist@{m17nPlist}!mplist\_\-copy@{mplist\_\-copy}}
130\index{mplist\_\-copy@{mplist\_\-copy}!m17nPlist@{m17nPlist}}
131\subsubsection[mplist\_\-copy]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-copy ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_g03cb2253e439ec15d0bbbac6f86f0e37}
132
133
134Copy a property list.
135
136The \doxyref{mplist\_\-copy()}{p.}{group__m17nPlist_g03cb2253e439ec15d0bbbac6f86f0e37} function copies property list {\bf plist}. In the copy, the values are the same as those of {\bf plist}.
137
138\begin{Desc}
139\item[Return value:]This function returns a newly created plist which is a copy of {\bf plist}.\end{Desc}
140\begin{Desc}
141\item[Errors:]This function never fails. \end{Desc}
142\index{m17nPlist@{m17nPlist}!mplist\_\-put@{mplist\_\-put}}
143\index{mplist\_\-put@{mplist\_\-put}!m17nPlist@{m17nPlist}}
144\subsubsection[mplist\_\-put]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-put ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key}, \/  void $\ast$ {\em val})}\label{group__m17nPlist_gfbfabe7a3e97e3dc6968263f61a3bee3}
145
146
147Set the value of a property in a property list.
148
149The \doxyref{mplist\_\-put()}{p.}{group__m17nPlist_gfbfabe7a3e97e3dc6968263f61a3bee3} function searches property list {\bf plist} from the beginning for a property whose key is {\bf key}. If such a property is found, its value is changed to {\bf value}. Otherwise, a new property whose key is {\bf key} and value is {\bf value} is appended at the end of {\bf plist}. See the documentation of \doxyref{mplist\_\-add()}{p.}{group__m17nPlist_gf5d13d2df5af9260356aa415e3965def} for the restriction on {\bf key} and {\bf val}.
150
151If {\bf key} is a managing key, {\bf val} must be a managed object. In this case, the reference count of the old value, if not {\tt NULL}, is decremented by one, and that of {\bf val} is incremented by one.
152
153\begin{Desc}
154\item[Return value:]If the operation was successful, \doxyref{mplist\_\-put()}{p.}{group__m17nPlist_gfbfabe7a3e97e3dc6968263f61a3bee3} returns a sublist of {\bf plist} whose first element is the just modified or added one. Otherwise, it returns {\tt NULL}. \end{Desc}
155\index{m17nPlist@{m17nPlist}!mplist\_\-get@{mplist\_\-get}}
156\index{mplist\_\-get@{mplist\_\-get}!m17nPlist@{m17nPlist}}
157\subsubsection[mplist\_\-get]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ mplist\_\-get ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key})}\label{group__m17nPlist_g2a2f833fccd7b699eb31e5de62cea41b}
158
159
160Get the value of a property in a property list.
161
162The \doxyref{mplist\_\-get()}{p.}{group__m17nPlist_g2a2f833fccd7b699eb31e5de62cea41b} function searches property list {\bf plist} from the beginning for a property whose key is {\bf key}. If such a property is found, its value is returned as the type of {\tt (void $\ast$)}. If not found, {\tt NULL} is returned.
163
164When {\tt NULL} is returned, there are two possibilities: one is the case where no property is found (see above); the other is the case where a property is found and its value is {\tt NULL}. In case that these two cases must be distinguished, use the \doxyref{mplist\_\-find\_\-by\_\-key()}{p.}{group__m17nPlist_g73caf1b7a0082184ff15e1b3e2da8969} function.
165
166\begin{Desc}
167\item[See Also:]\doxyref{mplist\_\-find\_\-by\_\-key()}{p.}{group__m17nPlist_g73caf1b7a0082184ff15e1b3e2da8969} \end{Desc}
168\index{m17nPlist@{m17nPlist}!mplist\_\-put\_\-func@{mplist\_\-put\_\-func}}
169\index{mplist\_\-put\_\-func@{mplist\_\-put\_\-func}!m17nPlist@{m17nPlist}}
170\subsubsection[mplist\_\-put\_\-func]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-put\_\-func ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key}, \/  {\bf M17NFunc} {\em func})}\label{group__m17nPlist_gb1654476aef37dbea02c56476353ab8e}
171
172
173Set the value (function pointer) of a property in a property list.
174
175The \doxyref{mplist\_\-put\_\-func()}{p.}{group__m17nPlist_gb1654476aef37dbea02c56476353ab8e} function is similar to \doxyref{mplist\_\-put()}{p.}{group__m17nPlist_gfbfabe7a3e97e3dc6968263f61a3bee3} but for setting function pointer {\bf func} in property list {\bf plist} for key {\bf key}. {\bf key} must not be a managing key.
176
177\begin{Desc}
178\item[See Also:]\doxyref{mplist\_\-put()}{p.}{group__m17nPlist_gfbfabe7a3e97e3dc6968263f61a3bee3}, \doxyref{M17N\_\-FUNC()}{p.}{group__m17nCore_g56e45d7b0345761359001fe038d121ae} \end{Desc}
179\index{m17nPlist@{m17nPlist}!mplist\_\-get\_\-func@{mplist\_\-get\_\-func}}
180\index{mplist\_\-get\_\-func@{mplist\_\-get\_\-func}!m17nPlist@{m17nPlist}}
181\subsubsection[mplist\_\-get\_\-func]{\setlength{\rightskip}{0pt plus 5cm}{\bf M17NFunc} mplist\_\-get\_\-func ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key})}\label{group__m17nPlist_g215ddb45ee970edbee7ff2e2e6bc1e8d}
182
183
184Get the value (function pointer) of a property in a property list.
185
186The \doxyref{mplist\_\-get\_\-func()}{p.}{group__m17nPlist_g215ddb45ee970edbee7ff2e2e6bc1e8d} function is similar to \doxyref{mplist\_\-get()}{p.}{group__m17nPlist_g2a2f833fccd7b699eb31e5de62cea41b} but for getting a function pointer from property list {\bf plist} by key {\bf key}.
187
188\begin{Desc}
189\item[See Also:]\doxyref{mplist\_\-get()}{p.}{group__m17nPlist_g2a2f833fccd7b699eb31e5de62cea41b} \end{Desc}
190\index{m17nPlist@{m17nPlist}!mplist\_\-add@{mplist\_\-add}}
191\index{mplist\_\-add@{mplist\_\-add}!m17nPlist@{m17nPlist}}
192\subsubsection[mplist\_\-add]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-add ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key}, \/  void $\ast$ {\em val})}\label{group__m17nPlist_gf5d13d2df5af9260356aa415e3965def}
193
194
195Add a property at the end of a property list.
196
197The \doxyref{mplist\_\-add()}{p.}{group__m17nPlist_gf5d13d2df5af9260356aa415e3965def} function appends at the end of property list {\bf plist} a property whose key is {\bf key} and value is {\bf val}. {\bf key} can be any symbol other than {\tt Mnil}.
198
199If {\bf key} is a managing key, {\bf val} must be a managed object. In this case, the reference count of {\bf val} is incremented by one.
200
201\begin{Desc}
202\item[Return value:]If the operation was successful, \doxyref{mplist\_\-add()}{p.}{group__m17nPlist_gf5d13d2df5af9260356aa415e3965def} returns a sublist of {\bf plist} whose first element is the just added one. Otherwise, it returns {\tt NULL}. \end{Desc}
203\index{m17nPlist@{m17nPlist}!mplist\_\-push@{mplist\_\-push}}
204\index{mplist\_\-push@{mplist\_\-push}!m17nPlist@{m17nPlist}}
205\subsubsection[mplist\_\-push]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-push ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key}, \/  void $\ast$ {\em val})}\label{group__m17nPlist_g20e766b438f42a13bdee803908e6096d}
206
207
208Add a property at the beginning of a property list.
209
210The \doxyref{mplist\_\-push()}{p.}{group__m17nPlist_g20e766b438f42a13bdee803908e6096d} function inserts at the beginning of property list {\bf plist} a property whose key is {\bf key} and value is {\bf val}.
211
212If {\bf key} is a managing key, {\bf val} must be a managed object. In this case, the reference count of {\bf val} is incremented by one.
213
214\begin{Desc}
215\item[Return value:]If the operation was successful, this function returns {\bf plist}. Otherwise, it returns {\tt NULL}. \end{Desc}
216\index{m17nPlist@{m17nPlist}!mplist\_\-pop@{mplist\_\-pop}}
217\index{mplist\_\-pop@{mplist\_\-pop}!m17nPlist@{m17nPlist}}
218\subsubsection[mplist\_\-pop]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ mplist\_\-pop ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_ge05459bfe72a34eefe5a04b4aa75d20a}
219
220
221Remove a property at the beginning of a property list.
222
223The \doxyref{mplist\_\-pop()}{p.}{group__m17nPlist_ge05459bfe72a34eefe5a04b4aa75d20a} function removes a property at the beginning of property list {\bf plist}. As a result, the second key and value of the {\bf plist} become the first ones.
224
225\begin{Desc}
226\item[Return value:]If the operation was successful, this function return the value of the just popped property. Otherwise, it returns {\tt NULL}. \end{Desc}
227\index{m17nPlist@{m17nPlist}!mplist\_\-find\_\-by\_\-key@{mplist\_\-find\_\-by\_\-key}}
228\index{mplist\_\-find\_\-by\_\-key@{mplist\_\-find\_\-by\_\-key}!m17nPlist@{m17nPlist}}
229\subsubsection[mplist\_\-find\_\-by\_\-key]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-find\_\-by\_\-key ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key})}\label{group__m17nPlist_g73caf1b7a0082184ff15e1b3e2da8969}
230
231
232Find a property of a specific key in a property list.
233
234The \doxyref{mplist\_\-find\_\-by\_\-key()}{p.}{group__m17nPlist_g73caf1b7a0082184ff15e1b3e2da8969} function searches property list {\bf plist} from the beginning for a property whose key is {\bf key}. If such a property is found, a sublist of {\bf plist} whose first element is the found one is returned. Otherwise, {\tt NULL} is returned.
235
236If {\bf key} is {\tt Mnil}, it returns a sublist of {\bf plist} whose first element is the last one of {\bf plist}. \index{m17nPlist@{m17nPlist}!mplist\_\-find\_\-by\_\-value@{mplist\_\-find\_\-by\_\-value}}
237\index{mplist\_\-find\_\-by\_\-value@{mplist\_\-find\_\-by\_\-value}!m17nPlist@{m17nPlist}}
238\subsubsection[mplist\_\-find\_\-by\_\-value]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-find\_\-by\_\-value ({\bf MPlist} $\ast$ {\em plist}, \/  void $\ast$ {\em val})}\label{group__m17nPlist_geb782bf76f84a8620331c8de70d43ba7}
239
240
241Find a property of a specific value in a property list.
242
243The \doxyref{mplist\_\-find\_\-by\_\-value()}{p.}{group__m17nPlist_geb782bf76f84a8620331c8de70d43ba7} function searches property list {\bf plist} from the beginning for a property whose value is {\bf val}. If such a property is found, a sublist of {\bf plist} whose first element is the found one is returned. Otherwise, {\tt NULL} is returned. \index{m17nPlist@{m17nPlist}!mplist\_\-next@{mplist\_\-next}}
244\index{mplist\_\-next@{mplist\_\-next}!m17nPlist@{m17nPlist}}
245\subsubsection[mplist\_\-next]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-next ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_g5c7598c133f6a177a2ad5781fc712f6e}
246
247
248Return the next sublist of a property list.
249
250The \doxyref{mplist\_\-next()}{p.}{group__m17nPlist_g5c7598c133f6a177a2ad5781fc712f6e} function returns a pointer to the sublist of property list {\bf plist}, which begins at the second element in {\bf plist}. If the length of {\bf plist} is zero, it returns {\tt NULL}. \index{m17nPlist@{m17nPlist}!mplist\_\-set@{mplist\_\-set}}
251\index{mplist\_\-set@{mplist\_\-set}!m17nPlist@{m17nPlist}}
252\subsubsection[mplist\_\-set]{\setlength{\rightskip}{0pt plus 5cm}{\bf MPlist}$\ast$ mplist\_\-set ({\bf MPlist} $\ast$ {\em plist}, \/  {\bf MSymbol} {\em key}, \/  void $\ast$ {\em val})}\label{group__m17nPlist_gb343caba712200f5324c12f668f7e6da}
253
254
255Set the first property in a property list.
256
257The \doxyref{mplist\_\-set()}{p.}{group__m17nPlist_gb343caba712200f5324c12f668f7e6da} function sets the key and the value of the first property in property list {\bf plist} to {\bf key} and {\bf value}, respectively. See the documentation of \doxyref{mplist\_\-add()}{p.}{group__m17nPlist_gf5d13d2df5af9260356aa415e3965def} for the restriction on {\bf key} and {\bf val}.
258
259\begin{Desc}
260\item[Return value:]If the operation was successful, \doxyref{mplist\_\-set()}{p.}{group__m17nPlist_gb343caba712200f5324c12f668f7e6da} returns {\bf plist}. Otherwise, it returns {\tt NULL}. \end{Desc}
261\index{m17nPlist@{m17nPlist}!mplist\_\-length@{mplist\_\-length}}
262\index{mplist\_\-length@{mplist\_\-length}!m17nPlist@{m17nPlist}}
263\subsubsection[mplist\_\-length]{\setlength{\rightskip}{0pt plus 5cm}int mplist\_\-length ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_g334646ff9553354f4b041947f000764d}
264
265
266Return the length of a property list.
267
268The \doxyref{mplist\_\-length()}{p.}{group__m17nPlist_g334646ff9553354f4b041947f000764d} function returns the number of properties in property list {\bf plist}. \index{m17nPlist@{m17nPlist}!mplist\_\-key@{mplist\_\-key}}
269\index{mplist\_\-key@{mplist\_\-key}!m17nPlist@{m17nPlist}}
270\subsubsection[mplist\_\-key]{\setlength{\rightskip}{0pt plus 5cm}{\bf MSymbol} mplist\_\-key ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_g79d757b26382412e7ea69e914bc06a07}
271
272
273Return the key of the first property in a property list.
274
275The \doxyref{mplist\_\-key()}{p.}{group__m17nPlist_g79d757b26382412e7ea69e914bc06a07} function returns the key of the first property in property list {\bf plist}. If the length of {\bf plist} is zero, it returns {\tt Mnil}. \index{m17nPlist@{m17nPlist}!mplist\_\-value@{mplist\_\-value}}
276\index{mplist\_\-value@{mplist\_\-value}!m17nPlist@{m17nPlist}}
277\subsubsection[mplist\_\-value]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ mplist\_\-value ({\bf MPlist} $\ast$ {\em plist})}\label{group__m17nPlist_g855f3010b216bcf5f0914553fc034295}
278
279
280Return the value of the first property in a property list.
281
282The \doxyref{mplist\_\-value()}{p.}{group__m17nPlist_g855f3010b216bcf5f0914553fc034295} function returns the value of the first property in property list {\bf plist}. If the length of {\bf plist} is zero, it returns {\tt NULL}.
283
284\subsection{Variable Documentation}
285\index{m17nPlist@{m17nPlist}!Minteger@{Minteger}}
286\index{Minteger@{Minteger}!m17nPlist@{m17nPlist}}
287\subsubsection[Minteger]{\setlength{\rightskip}{0pt plus 5cm}{\bf MSymbol} {\bf Minteger}}\label{group__m17nPlist_g0ce08eb57aa339db4d4745e75e80fdd8}
288
289
290Symbol whose name is \char`\"{}integer\char`\"{}.
291
292The symbol {\tt Minteger} has the name {\tt \char`\"{}integer\char`\"{}}. The value of a property whose key is {\tt Minteger} must be an integer. \index{m17nPlist@{m17nPlist}!Mplist@{Mplist}}
293\index{Mplist@{Mplist}!m17nPlist@{m17nPlist}}
294\subsubsection[Mplist]{\setlength{\rightskip}{0pt plus 5cm}{\bf MSymbol} {\bf Mplist}}\label{group__m17nPlist_g933000e154873f9bfcaa56d976bd259b}
295
296
297Symbol whose name is \char`\"{}plist\char`\"{}.
298
299The symbol {\tt Mplist} has the name {\tt \char`\"{}plist\char`\"{}}. It is a managing key. A value of a property whose key is {\tt Mplist} must be a plist. \index{m17nPlist@{m17nPlist}!Mtext@{Mtext}}
300\index{Mtext@{Mtext}!m17nPlist@{m17nPlist}}
301\subsubsection[Mtext]{\setlength{\rightskip}{0pt plus 5cm}{\bf MSymbol} {\bf Mtext}}\label{group__m17nPlist_g1a22859374071a0ca66f12452afee8bd}
302
303
304Symbol whose name is \char`\"{}mtext\char`\"{}.
305
306The symbol {\tt Mtext} has the name {\tt \char`\"{}mtext\char`\"{}}. It is a managing key. A value of a property whose key is {\tt Mtext} must be an M-text.