---
name: "m17nPlist"
section: "3m17n"
platform: "linux"
package: "m17n-docs"
version: "1.8.4-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/m17nPlist"
---

# m17nPlist(3m17n)

Property List

## NAME

m17nPlist - Property List

## SYNOPSIS

### Functions

**MPlist** \* **mplist\_deserialize** (**MText** \*mt)\
 Generate a property list by deserializing an M-text.  **MPlist** \* **mplist** (void)\
 Create a property list object.  **MPlist** \* **mplist\_copy** (**MPlist** \*plist)\
 Copy a property list.  **MPlist** \* **mplist\_put** (**MPlist** \*plist, MSymbol key, void \*val)\
 Set the value of a property in a property list.  void \* **mplist\_get** (**MPlist** \*plist, MSymbol key)\
 Get the value of a property in a property list.  **MPlist** \* **mplist\_put\_func** (**MPlist** \*plist, MSymbol key, **M17NFunc** func)\
 Set the value (function pointer) of a property in a property list.  **M17NFunc** **mplist\_get\_func** (**MPlist** \*plist, MSymbol key)\
 Get the value (function pointer) of a property in a property list.  **MPlist** \* **mplist\_add** (**MPlist** \*plist, MSymbol key, void \*val)\
 Add a property at the end of a property list.  **MPlist** \* **mplist\_push** (**MPlist** \*plist, MSymbol key, void \*val)\
 Add a property at the beginning of a property list.  void \* **mplist\_pop** (**MPlist** \*plist)\
 Remove a property at the beginning of a property list.  **MPlist** \* **mplist\_find\_by\_key** (**MPlist** \*plist, MSymbol key)\
 Find a property of a specific key in a property list.  **MPlist** \* **mplist\_find\_by\_value** (**MPlist** \*plist, void \*val)\
 Find a property of a specific value in a property list.  **MPlist** \* **mplist\_next** (**MPlist** \*plist)\
 Return the next sublist of a property list.  **MPlist** \* **mplist\_set** (**MPlist** \*plist, MSymbol key, void \*val)\
 Set the first property in a property list.  int **mplist\_length** (**MPlist** \*plist)\
 Return the length of a property list.  MSymbol **mplist\_key** (**MPlist** \*plist)\
 Return the key of the first property in a property list.  void \* **mplist\_value** (**MPlist** \*plist)\
 Return the value of the first property in a property list.

### Variables

MSymbol **Minteger**\
 Symbol whose name is 'integer'.  MSymbol **Mplist**\
 Symbol whose name is 'plist'.  MSymbol **Mtext**\
 Symbol whose name is 'mtext'.

## Detailed Description

```
@addtogroup m17nPlist
@brief Property List objects and API for them.
A @e property @e list (or @e plist for short) is a list of zero or
more properties.  A property consists of a @e key and a @e value,
where key is a symbol and value is anything that can be cast to
<tt>(void *)</tt>.
If the key of a property is a @e managing @e key, its @e value is
a @e managed @e object.  A property list itself is a managed
objects.
If each key of a plist is one of #Msymbol, #Mtext, #Minteger, and
#Mplist, the plist is called as @e well-formed and represented by
the following notation in the documentation.
```

```
      PLIST ::= '(' ELEMENT * ')'
      ELEMENT ::= INTEGER | SYMBOL | M-TEXT | PLIST
      M-TEXT ::= '"' text data ... '"'
```

```
For instance, if a plist has four elements; integer -20, symbol of
name "sym", M-text of contents "abc", and plist of integer 10 and
symbol of name "another-symbol", it is represented as this:
  (-20 sym "abc" (10 another-symbol))
```

## Variable Documentation

### MSymbol Minteger

Symbol whose name is 'integer'. The symbol `Minteger` has the name `'integer'`. The value of a property whose key is `Minteger` must be an integer. \

### MSymbol Mplist

Symbol whose name is 'plist'. The symbol `Mplist` has the name `'plist'`. It is a managing key. A value of a property whose key is `Mplist` must be a plist. \

### MSymbol Mtext

Symbol whose name is 'mtext'. The symbol `Mtext` has the name `'mtext'`. It is a managing key. A value of a property whose key is `Mtext` must be an M-text. \

## Author

Generated automatically by Doxygen for The m17n Library from the source code.

## COPYRIGHT

Copyright (C) 2001 Information-technology Promotion Agency (IPA)\
 Copyright (C) 2001-2011 National Institute of Advanced Industrial Science and Technology (AIST)\
 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\>.
