Subject: Re: `bookmark-write-file' should bind `print-circle' to t
From: Karl Fogel <[email-masked]>
To: [email-masked]
Date: Sun, 30 Sep 2012 22:48:55 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Done:

  revno: 110307
  revision-id: [email-masked]
  parent: [email-masked]
  committer: Karl Fogel <[email-masked]>
  branch nick: trunk
  timestamp: Sun 2012-09-30 22:44:59 -0500
  message:
    * lisp/bookmark.el (bookmark-write-file): Bind `print-circle' to `t'
      here to allow circular custom bookmark types.  (Bug#12503)

Diff:

  --- lisp/bookmark.el	2012-10-01 03:34:02 +0000
  +++ lisp/bookmark.el	2012-10-01 03:41:42 +0000
  @@ -1359,7 +1359,12 @@
       (goto-char (point-min))
       (delete-region (point-min) (point-max))
       (let ((print-length nil)
  -          (print-level nil))
  +          (print-level nil)
  +          ;; See bug #12503 for why we bind `print-circle'.  Users
  +          ;; can define their own bookmark types, which can result in
  +          ;; arbitrary Lisp objects being stored in bookmark records,
  +          ;; and some users create objects containing circularities.
  +          (print-circle t))
         (bookmark-insert-file-format-version-stamp)
         (insert "(")
         ;; Rather than a single call to `pp' we make one per bookmark.