+ i = message->doc.termlist_begin ();
+ i.skip_to (prefix);
+
+ if (i != message->doc.termlist_end ())
+ direntry = talloc_strdup (local, (*i).c_str ());
+
+ if (i == message->doc.termlist_end () ||
+ strncmp (direntry, prefix, prefix_len))
+ {
+ INTERNAL_ERROR ("message with no filename");
+ }
+
+ direntry += prefix_len;
+
+ directory_id = strtol (direntry, &colon, 10);
+
+ if (colon == NULL || *colon != ':')
+ INTERNAL_ERROR ("malformed direntry");
+
+ basename = colon + 1;
+
+ *colon = '\0';
+