   (let* ((curr-buf (current-buffer))
          (current-id (zk-current-id))
          (child-id (zk-id-new-child current-id)))
-    (zk-update-id-first-max child-id)
     (zk-push-history (point-marker))
     (zk-new-file-named child-id)))
 

  "Initialize hash tables for caching files."
  (setq zk-hash-contents (make-hash-table :test 'equal))
  (setq zk-hash-mtimes (make-hash-table :test 'equal))
  (setq zk-hash-summaries (make-hash-table :test 'equal)))

(defun zk-cache-update-all ()

                (setq val t)))))))
    val))

(defun zk-strip-title (title)
  "Remove all strings matching `zk-strip-title-regexp' from TITLE."
  (zk-chomp (replace-regexp-in-string zk-strip-title-regexp "" title)))

(defun zk-parse-title (file contents)
  "Parse the given FILE and CONTENTS and determine the title.
The title is taken to be the first non-empty line of the FILE."
  (let ((begin (string-match "^.+$" contents)))
    (if begin
        (funcall zk-parse-title-function
                 (substring contents begin (match-end 0))))))

(defun zk-parse-summary (contents)
  "Parse the file CONTENTS and extract a summary."
  (zk-chomp
