 
 (defun vimgolf-solution-correct-p ()
   (let ((case-fold-search nil))
-    (eq 0 (compare-buffer-substrings
+    (zerop (compare-buffer-substrings
            (get-buffer vimgolf-work-buffer-name) (point-min-in-buffer vimgolf-work-buffer-name) (point-max-in-buffer vimgolf-work-buffer-name)
            (get-buffer vimgolf-end-buffer-name) (point-min-in-buffer vimgolf-end-buffer-name) (point-max-in-buffer vimgolf-end-buffer-name)))))
 

(defun vimgolf-challenge-url (challenge-id)
  (concat vimgolf-host (vimgolf-challenge-path challenge-id) vimgolf-challenge-extension))

(defun vimgolf-scrub-buffer (buffer)
  (with-current-buffer buffer
    (beginning-of-buffer)
    (re-search-forward data-end-regexp nil t)
    (delete-region (match-beginning 0) (point-max))
    (decrease-left-margin (point-min) (point-max) 4)
    (beginning-of-buffer)
    (setq buffer-undo-list nil)
    (vimgolf-mode t)))

(defun vimgolf-kill-existing-session ()
  (when (get-buffer vimgolf-start-buffer-name) (kill-buffer vimgolf-start-buffer-name))
  (when (get-buffer vimgolf-work-buffer-name) (kill-buffer vimgolf-work-buffer-name))
  (when (get-buffer vimgolf-end-buffer-name) (kill-buffer vimgolf-end-buffer-name))
  (when (get-buffer vimgolf-keystrokes-buffer-name) (kill-buffer vimgolf-keystrokes-buffer-name))
  (when (get-buffer vimgolf-keystrokes-log-buffer-name) (kill-buffer vimgolf-keystrokes-log-buffer-name)))

;;;###autoload
(defun vimgolf (challenge-id)


;; (setq vimgolf-logging-enabled t)
;; (setq vimgolf-logging-enabled)
(defvar vimgolf-logging-enabled nil)

(defun vimgolf-log-keystroke ()
  (when (and vimgolf-logging-enabled (not (< 0 (recursion-depth))))
