shelarcy
shela****@capel*****
2004年 7月 9日 (金) 08:23:43 JST
On Sun, 4 Jul 2004 16:30:46 +0900 (JST), Kawai Shiro <pract****@yahoo*****> wrote: >> あと、syslib.c というか syslib.stub ってどうしましょうか? >> これも ./configure を使わないなということで直接弄っていたのですが、 >> WIN32_NATIVE で ifndef 出来る方法があれば知っておきたいと思います。 >> stub の定義を消してやるのしかできませんか? > > まず、文字列で埋め込んであるCコードはそのまま.cファイルに出力されるので、 > その中で #ifdefを使うことは通常のCと全く同じようにできます。 > (そのような例が既にsyslib.stub中にもあると思います)。 > ただ、stubの定義そのものを無かったことにすることできませんので、 > その場合は (if "!defined(WIN32_NATIVE)" (define-cproc ...)) のようにしま > す。 うっかり忘れてましたが、これも必要です。 --- C:\develop\Gauche-0.8\src\syslib.stub.1~ Tue Jul 06 14:50:04 2004 +++ C:\develop\Gauche-0.8\src\syslib.stub Fri Jul 09 08:19:47 2004 @@ -438,13 +438,14 @@ (define-enum X_OK) (define-enum F_OK) +(if "!defined(WIN32_NATIVE)" (define-cproc sys-access (pathname::<string> amode::<int>) "int r; if (geteuid() != getuid() || getegid() != getgid()) { Scm_Error(\"cannot use sys-access in suid/sgid program.\"); } SCM_SYSCALL(r, access(Scm_GetStringConst(pathname), amode)); - SCM_RETURN((r == 0)? SCM_TRUE : SCM_FALSE);") + SCM_RETURN((r == 0)? SCM_TRUE : SCM_FALSE);")) (define-cproc sys-chdir (pathname::<string>) " int r; -- shelarcy <shela****@capel*****> http://page.freett.com/shelarcy/