summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2008-04-14 21:25:17 +0100
committerNeil Jerram <neil@ossau.uklinux.net>2008-04-16 00:13:40 +0100
commitee9e3a93f7c67f94d8cc7a748861cb7880fdaab2 (patch)
tree2feea29eb265365a6ea1710c5b575c5e9fd8c22d
parentb1860cb3429e8b4f71d414e79c89400f18dff569 (diff)
downloadguile-ee9e3a93f7c67f94d8cc7a748861cb7880fdaab2.tar.gz
A few elisp fixes and enhancements
-rw-r--r--lang/elisp/ChangeLog9
-rw-r--r--lang/elisp/internals/load.scm5
-rw-r--r--lang/elisp/primitives/strings.scm6
-rw-r--r--lang/elisp/primitives/symprop.scm2
4 files changed, 18 insertions, 4 deletions
diff --git a/lang/elisp/ChangeLog b/lang/elisp/ChangeLog
index 1114618d0..a2c3bc84b 100644
--- a/lang/elisp/ChangeLog
+++ b/lang/elisp/ChangeLog
@@ -1,3 +1,12 @@
+2008-04-14 Neil Jerram <neil@ossau.uklinux.net>
+
+ * primitives/symprop.scm (get): Use lambda->nil.
+
+ * primitives/strings.scm (aset): New primitive.
+
+ * internals/load.scm (load): Use in-vicinity (instead of
+ string-append) to add a slash if needed.
+
2004-02-08 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* primitives/Makefile.am (TAGS_FILES), internals/Makefile.am
diff --git a/lang/elisp/internals/load.scm b/lang/elisp/internals/load.scm
index e55c8b50f..2b6cac36f 100644
--- a/lang/elisp/internals/load.scm
+++ b/lang/elisp/internals/load.scm
@@ -15,9 +15,8 @@
'("")
load-path)))
(cond ((null? dirs) #f)
- ((file-exists? (string-append (car dirs)
- filename))
- (string-append (car dirs) filename))
+ ((file-exists? (in-vicinity (car dirs) filename))
+ (in-vicinity (car dirs) filename))
(else (loop (cdr dirs)))))))
(if pathname
(begin
diff --git a/lang/elisp/primitives/strings.scm b/lang/elisp/primitives/strings.scm
index 85a1c10a9..85e462f8b 100644
--- a/lang/elisp/primitives/strings.scm
+++ b/lang/elisp/primitives/strings.scm
@@ -29,6 +29,12 @@
((string? array) (char->integer (string-ref array idx)))
(else (wta 'arrayp array 1)))))
+(fset 'aset
+ (lambda (array idx newelt)
+ (cond ((vector? array) (vector-set! array idx newelt))
+ ((string? array) (string-set! array idx (integer->char newelt)))
+ (else (wta 'arrayp array 1)))))
+
(fset 'stringp (lambda->nil string?))
(fset 'vector vector)
diff --git a/lang/elisp/primitives/symprop.scm b/lang/elisp/primitives/symprop.scm
index a520a4b81..8f10fd8cd 100644
--- a/lang/elisp/primitives/symprop.scm
+++ b/lang/elisp/primitives/symprop.scm
@@ -9,7 +9,7 @@
(fset 'put set-symbol-property!)
-(fset 'get symbol-property)
+(fset 'get (lambda->nil symbol-property))
(fset 'set set)