-ISAMH_PP isamd_pp_open (ISAMH is, ISAMH_P pos);
-void isamd_pp_close (ISAMH_PP pp);
-int isamd_read_item (ISAMH_PP pp, char **dst);
-int isamd_pp_read (ISAMH_PP pp, void *buf);
-int isamd_pp_num (ISAMH_PP pp);
+/* Shortcut: If the isam is relatively short, we store the */
+/* whole thing in the dictionary, and allocate no blocks at all! */
+#define ISAMD_MAX_DICT_LEN 16
+
+/*ISAMD_PP isamd_pp_open (ISAMD is, const char *dictbuf);*/
+ISAMD_PP isamd_pp_open (ISAMD is, const char *dictbuf, int dictlen);
+ISAMD_PP isamd_pp_create (ISAMD is, int cat);
+
+void isamd_pp_close (ISAMD_PP pp);
+int isamd_read_item (ISAMD_PP pp, char **dst);
+int isamd_read_main_item (ISAMD_PP pp, char **dst);
+int isamd_pp_read (ISAMD_PP pp, void *buf);
+int isamd_pp_num (ISAMD_PP pp);