projects
/
m17n
/
m17n-lib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[m17n/m17n-lib.git]
/
src
/
plist.h
diff --git
a/src/plist.h
b/src/plist.h
index
24ebef2
..
931762f
100644
(file)
--- a/
src/plist.h
+++ b/
src/plist.h
@@
-17,7
+17,7
@@
You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
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. */
#ifndef _M17N_PLIST_H_
02111-1307, USA. */
#ifndef _M17N_PLIST_H_
@@
-35,7
+35,10
@@
struct MPlist
MSymbol key;
/**en Value of the first element of the plist. */
MSymbol key;
/**en Value of the first element of the plist. */
- void *val;
+ union {
+ void *pointer;
+ M17NFunc func;
+ } val;
/**en Plist for the next element. */
MPlist *next;
/**en Plist for the next element. */
MPlist *next;
@@
-44,7
+47,8
@@
struct MPlist
/** Macros to access each member of PLIST. */
#define MPLIST_KEY(plist) ((plist)->key)
/** Macros to access each member of PLIST. */
#define MPLIST_KEY(plist) ((plist)->key)
-#define MPLIST_VAL(plist) ((plist)->val)
+#define MPLIST_VAL(plist) ((plist)->val.pointer)
+#define MPLIST_FUNC(plist) ((plist)->val.func)
#define MPLIST_NEXT(plist) ((plist)->next)
#define MPLIST_TAIL_P(plist) ((plist)->key == Mnil)
#define MPLIST_NEXT(plist) ((plist)->next)
#define MPLIST_TAIL_P(plist) ((plist)->key == Mnil)
@@
-59,6
+63,11
@@
struct MPlist
#define MPLIST_SET_NESTED_P(plist) \
((plist)->control.flag |= 1)
#define MPLIST_SET_NESTED_P(plist) \
((plist)->control.flag |= 1)
+#define MPLIST_VAL_FUNC_P(plist) \
+ ((plist)->control.flag & 2)
+#define MPLIST_SET_VAL_FUNC_P(plist) \
+ ((plist)->control.flag |= 2)
+
#define MPLIST_SYMBOL(plist) ((MSymbol) MPLIST_VAL (plist))
#define MPLIST_STRING(plist) ((char *) MPLIST_VAL (plist))
#define MPLIST_MTEXT(plist) ((MText *) MPLIST_VAL (plist))
#define MPLIST_SYMBOL(plist) ((MSymbol) MPLIST_VAL (plist))
#define MPLIST_STRING(plist) ((char *) MPLIST_VAL (plist))
#define MPLIST_MTEXT(plist) ((MText *) MPLIST_VAL (plist))
@@
-100,10
+109,12
@@
extern MPlist *mplist__from_alist (MPlist *plist);
extern MPlist *mplist__from_string (unsigned char *str, int n);
extern MPlist *mplist__from_string (unsigned char *str, int n);
-extern int mplist__serialize (MText *mt, MPlist *plist);
+extern int mplist__serialize (MText *mt, MPlist *plist, int pretty);
extern MPlist *mplist__conc (MPlist *plist, MPlist *tail);
extern void mplist__pop_unref (MPlist *plist);
extern MPlist *mplist__conc (MPlist *plist, MPlist *tail);
extern void mplist__pop_unref (MPlist *plist);
+extern MPlist *mplist__assq (MPlist *plist, MSymbol key);
+
#endif /* _M17N_PLIST_H_ */
#endif /* _M17N_PLIST_H_ */