Subject: bug#10348: 24.0.92; Save and load window states

From: Michael Bach <[email-masked]>
Date: Wed, 21 Dec 2011 21:41:05 +0100

`window-state-put' as used within the following functions does not work.
Please see *Backtrace* below for error.  (See also post to
[email-masked] with subject "Save and load window states")

Steps to reproduce: 
1) Start via `emacs -Q'.
2) evaluate the two functions:
(defun my-save-frame ()
  (interactive)
  (let ((buf (find-file-noselect "/tmp/emacs-layout")))
    (set-buffer buf)
    (erase-buffer)
    (print (window-state-get) buf)
    (save-buffer)
    (kill-buffer)))

(defun my-load-frame ()
  (interactive)
  (let ((buf (find-file-noselect "/tmp/emacs-layout")))
    (set-buffer buf)
    (beginning-of-buffer)
    (window-state-put (read buf))
    (kill-buffer)))

3) Do a `M-x my-save-frame' and after that `M-x my-load-frame'

Debugger entered--Lisp error: (invalid-read-syntax "#")
  read(#<buffer emacs-layout>)
  (window-state-put (read buf))
  (let ((buf (find-file-noselect "/tmp/emacs-layout"))) (set-buffer buf) (beginning-of-buffer) (window-state-put (read buf)) (save-buffer) (kill-buffer))
  my-load-frame()
  call-interactively(my-load-frame t nil)
  execute-extended-command(nil)
  call-interactively(execute-extended-command nil nil)

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8
  default enable-multibyte-characters: t

Recent messages:
Wrote /tmp/emacs-layout
Quit
Mark set
window-state-put: Invalid read syntax: "#"