Extend the SET-VARIABLE! and LOCAL-SET-VARIABLE! special forms to take
authorChris Hanson <org/chris-hanson/cph>
Wed, 19 Apr 1995 02:00:27 +0000 (02:00 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 19 Apr 1995 02:00:27 +0000 (02:00 +0000)
an additional optional argument that specifies the buffer in which the
variable is to be set.

v7/src/edwin/macros.scm

index 920599feb702da7a21b6b8d50f585f2b452b91c2..ecd7f22627f701c1c30c5e98c46cca638f088795 100644 (file)
@@ -1,8 +1,8 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: macros.scm,v 1.61 1993/10/14 22:43:23 cph Exp $
+;;;    $Id: macros.scm,v 1.62 1995/04/19 02:00:27 cph Exp $
 ;;;
-;;;    Copyright (c) 1986, 1989-1993 Massachusetts Institute of Technology
+;;;    Copyright (c) 1986, 1989-95 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
          `(VARIABLE-LOCAL-VALUE ,buffer ,name)))))
 
 (syntax-table-define edwin-syntax-table 'SET-VARIABLE!
-  (lambda (name #!optional value)
-    `(SET-VARIABLE-VALUE!
-      ,(variable-name->scheme-name (canonicalize-name name))
-      ,(if (default-object? value) '#F value))))
+  (lambda (name #!optional value buffer)
+    (let ((name (variable-name->scheme-name (canonicalize-name name)))
+         (value (if (default-object? value) '#F value)))
+      (if (default-object? buffer)
+         `(SET-VARIABLE-VALUE! ,name ,value)
+         `(SET-VARIABLE-LOCAL-VALUE! ,buffer ,name ,value)))))
 
 (syntax-table-define edwin-syntax-table 'LOCAL-SET-VARIABLE!
-  (lambda (name #!optional value)
+  (lambda (name #!optional value buffer)
     `(DEFINE-VARIABLE-LOCAL-VALUE!
-      (CURRENT-BUFFER)
+      ,(if (default-object? buffer) '(CURRENT-BUFFER) buffer)
       ,(variable-name->scheme-name (canonicalize-name name))
       ,(if (default-object? value) '#F value))))