+struct dirs_entry *dirs_last (struct dirs_info *p)
+{
+ return p->last_entry;
+}
+
+void dirs_mkdir (struct dirs_info *p, const char *src, int ctime)
+{
+ char path[256];
+
+ sprintf (path, "%s%s", p->prefix, src);
+ logf (LOG_DEBUG, "dirs_mkdir %s", path);
+ dict_insert (p->dict, path, sizeof(ctime), &ctime);
+}
+
+void dirs_rmdir (struct dirs_info *p, const char *src)
+{
+ char path[256];
+ char info[2];
+
+ sprintf (path, "%s%s", p->prefix, src);
+ logf (LOG_DEBUG, "dirs_rmdir %s", path);
+ info[0] = 'r';
+ dict_insert (p->dict, path, 1, info);
+}
+
+void dirs_add (struct dirs_info *p, const char *src, int sysno, int ctime)
+{
+ char path[256];
+ char info[16];
+
+ sprintf (path, "%s%s", p->prefix, src);
+ logf (LOG_DEBUG, "dirs_add %s", path);
+ memcpy (info, &sysno, sizeof(sysno));
+ memcpy (info+sizeof(sysno), &ctime, sizeof(ctime));
+ dict_insert (p->dict, path, sizeof(sysno)+sizeof(ctime), info);
+}
+
+void dirs_del (struct dirs_info *p, const char *src)
+{
+ char path[256];
+ char info[2];
+
+ sprintf (path, "%s%s", p->prefix, src);
+ logf (LOG_DEBUG, "dirs_del %s", path);
+ info[0] = 'r';
+ dict_insert (p->dict, path, 1, info);