[Gauche-devel-jp] Re: gosh の開発で行き詰まった

Back to archive index

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/



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