From 20a68166d0c05a18932bc784da5fe060fd3f32ae Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Tue, 2 Jul 2013 21:15:42 +0200 Subject: Real solution for the non-ascii-history problem We were using a history entry separator including \0 that wasn't writeable as an utf-8 file. Changing the separator to \n}{\n allows using UTF-8 characters in the REPL which are correctly read back. --- NEWS | 2 ++ elisp/geiser-repl.el | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 03cedd1..a97af0a 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,8 @@ Bug fixes: - Autodoc for Guile 2.0.9+'s subr fixed, thanks to Ludovic Courtès. + - Fixed problem when saving REPL history that contained non-ASCII + chars: all UTF-8 characters should be fair game now. - Fixed problems with geiser-doc's history being handled by session.el (by not letting the latter handle it). diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 324f93a..f0c495e 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -404,7 +404,7 @@ module command as a string") ;;; REPL history -(defconst geiser-repl--history-separator "\n\0\n") +(defconst geiser-repl--history-separator "\n}{\n") (defsubst geiser-repl--history-file () (format "%s.%s" geiser-repl-history-filename geiser-impl--implementation)) @@ -412,13 +412,13 @@ module command as a string") (defun geiser-repl--read-input-ring () (let ((comint-input-ring-file-name (geiser-repl--history-file)) (comint-input-ring-separator geiser-repl--history-separator) - (buffer-file-coding-system 'raw-text)) + (buffer-file-coding-system 'utf-8)) (comint-read-input-ring t))) (defun geiser-repl--write-input-ring () (let ((comint-input-ring-file-name (geiser-repl--history-file)) (comint-input-ring-separator geiser-repl--history-separator) - (buffer-file-coding-system 'raw-text)) + (buffer-file-coding-system 'utf-8)) (comint-write-input-ring))) (defun geiser-repl--history-setup () -- cgit v1.2.3