     (with-current-buffer buffer
       (goto-char (point-min))
       (if
-          (setq log-start (re-search-forward (concat "^" git-log-msg-separator "\n") nil t))
+          (setq log-start (re-search-forward (concat "^" (regexp-quote git-log-msg-separator) "\n") nil t))
           (save-restriction
             (narrow-to-region (point-min) log-start)
             (goto-char (point-min))

(require 'ewoc)


;;;; Faces
;;;; ------------------------------------------------------------

(defface git-status-face
  '((((class color) (background light)) (:foreground "purple")))
  "Git mode face used to highlight added and modified files.")

(defface git-unmerged-face
  '((((class color) (background light)) (:foreground "red" :bold t)))
  "Git mode face used to highlight unmerged files.")

(defface git-unknown-face
  '((((class color) (background light)) (:foreground "goldenrod" :bold t)))
  "Git mode face used to highlight unknown files.")

(defface git-uptodate-face
  '((((class color) (background light)) (:foreground "grey60")))
  "Git mode face used to highlight up-to-date files.")

(defface git-ignored-face
  '((((class color) (background light)) (:foreground "grey60")))
  "Git mode face used to highlight ignored files.")

(defface git-mark-face
  '((((class color) (background light)) (:foreground "red" :bold t)))
  "Git mode face used for the file marks.")

(defface git-header-face
  '((((class color) (background light)) (:foreground "blue")))
  "Git mode face used for commit headers.")

(defface git-separator-face
  '((((class color) (background light)) (:foreground "brown")))
  "Git mode face used for commit separator.")

(defface git-permission-face
  '((((class color) (background light)) (:foreground "green" :bold t)))
  "Git mode face used for permission changes.")

(defvar git-committer-name nil
  "*User name to use for commits.
If not set, fall back to `add-log-full-name' and then `user-full-name'.")

(defvar git-committer-email nil
  "*Email address to use for commits.
If not set, fall back to `add-log-mailing-address' and then `user-mail-address'.")

(defvar git-commits-coding-system 'utf-8
  "Default coding system for git commits.")

(defvar git-append-signed-off-by nil
  "Whether to append a Signed-off-by line to the commit message.")

(defconst git-log-msg-separator "--- log message follows this line ---")

(defconst git-per-dir-ignore-file ".gitignore"
  "Name of the per-directory ignore file.")


;;;; Utilities
;;;; ------------------------------------------------------------

(defun git-get-env-strings (env)
  "Build a list of NAME=VALUE strings from a list of environment strings."

;;  - switching branches
;;  - revlist browser
;;  - git-show-branch browser
;;  - menus
;;

