[Gauche-devel-jp] lib/slib.scmの(home-vicinity)

Back to archive index

Shoji Kuzukami kuzuk****@manba*****
2003年 12月 12日 (金) 10:57:22 JST


こんにちは,葛上と申します.

gosh&slib にも対応したPortable-TestUnit&ExtensibleLibraryを書いたのですが,

slibの(home-vicinity)を利用した際,
gaucheでは,
	(define in-vicinity string-append)
	(define (home-vicinity) (getevn "HOME"))
となっており,
私の環境では,
HOME="/home/kuzukami"
なので,
(in-vicinity (home-vicinity) "homecat")
とやると
=> "/home/kuzukamihomecat" となってしまいます.

標準のslibでは,*-vicinityの返す値は,
おしりに"/"つまり,*dir-sep*が追加されているようです.

もしよければ,

lib/slibに
(define *dir-sep* "/")
(define (sane-vicinity f)
	(define sl (string-length f))
	(define dsl (string-length *dir-sep*))
	(if (equal? (substring f (- sl dsl) sl) dsl)
		f
		(string-append f *dir-sep*)))
(define (home-vicinity) (sane-vicinity (getenv "HOME")))
のような修正を行なってくれませんか?

あと
(define slib:load slib:load-source) よりか
(define (slib:load f)
	(if (file-exists? f)
		(%load f);でしたっけ?
		(slib:load-source f)))
のほうが,SCMの動作に近いような気がします.

----
葛上 昌司

SKLib-Suchet
http://sourceforge.jp/projects/sklib-suchet/

#Impl-Indep portable scheme-TestUnit & Extensible Library
#マクロのテストコードも書けます.
#自分のプロジェクトでslib:requireが簡単に使えるようになります.
#各処理系の起動法を統一したshell-scriptで提供しています.
#sourceforge.jp ってどうやって public-domainにするの?



Gauche-devel-jp メーリングリストの案内
Back to archive index