r11207: 03 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 3 Oct 2006 11:03:20 +0000 (11:03 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 3 Oct 2006 11:03:20 +0000 (11:03 +0000)
        * sql/syntax.lisp: Commit patch from Marcus Pearce to improve
        readtable modifications

ChangeLog
debian/changelog
sql/syntax.lisp

index 4fdb45f..dbb0d60 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+03 Oct 2006  Kevin Rosenberg <kevin@rosenberg.net>
+       * sql/syntax.lisp: Commit patch from Marcus Pearce to improve
+       readtable modifications
+
 02 Oct 2006  Kevin Rosenberg <kevin@rosenberg.net>
        * sql/syntax.lisp: Check that original reader syntax functions
        stored before trying to restore them.
index 5790452..6b59a0a 100644 (file)
@@ -1,3 +1,9 @@
+cl-sql (3.7.4-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Tue,  3 Oct 2006 05:01:09 -0600
+
 cl-sql (3.7.3-1) unstable; urgency=low
 
   * New upstream
index c0e8487..f00545e 100644 (file)
@@ -16,9 +16,7 @@
 
 (in-package #:clsql-sys)
 
-(defvar *original-reader-enter* nil)
-
-(defvar *original-reader-exit* nil)
+(defvar *original-readtable* nil)
 
 (defvar *sql-macro-open-char* #\[)
 
@@ -45,10 +43,9 @@ the current syntax state."
     (%disable-sql-reader-syntax)))
 
 (defun %disable-sql-reader-syntax ()
-  (when *original-reader-enter*
-    (set-macro-character *sql-macro-open-char* *original-reader-enter*))
-  (when *original-reader-exit*
-    (set-macro-character *sql-macro-close-char* *original-reader-exit*))
+  (when *original-readtable* 
+    (setf *readtable* *original-readtable*
+          *original-readtable* nil))
   (values))
 
 
@@ -70,12 +67,10 @@ the current syntax state."
     (%enable-sql-reader-syntax)))
 
 (defun %enable-sql-reader-syntax ()
-  (unless (eq (get-macro-character *sql-macro-open-char*) #'sql-reader-open)
-    (setf *original-reader-enter* (get-macro-character *sql-macro-open-char*))
-    (set-macro-character *sql-macro-open-char* #'sql-reader-open))
-  (unless (eq (get-macro-character *sql-macro-close-char*) 
-              (get-macro-character #\)))
-    (setf *original-reader-exit* (get-macro-character *sql-macro-close-char*))
+  (unless *original-readtable*
+    (setf *original-readtable* *readtable*
+          *readtable* (copy-readtable))
+    (set-macro-character *sql-macro-open-char* #'sql-reader-open)
     (set-macro-character *sql-macro-close-char* (get-macro-character #\))))
   (values))