summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog2
-rw-r--r--lisp/bookmark.el7
2 files changed, 8 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7ac0ec72990..0e515c2a7b4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -2,6 +2,8 @@
* bookmark.el (bookmark-version-control): Give tags in the
:type choices (Bug#12309), and improve doc string.
+ (bookmark-write-file): Bind `print-circle' to `t' to allow
+ circular custom bookmark types. (Bug#12503)
2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 3259d6283f9..ebb3aac3319 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1359,7 +1359,12 @@ for a file, defaulting to the file defined by variable
(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.