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にするの?