山本です。

>#defineならまだ#ifdefでチェックできますが、typedefだとどうし
>ようもないので、よりたちが悪いと思います。

なるほど、確かにそうですね。

>aprとrubyですりあわせるか、SWIGで対応するか、しかないと思うの
>ですが、[ruby-core:4750]でSWIG側へのパッチが出てるので、あれ
>で解決なのではないでしょうか。

[ruby-core:4755] で

>No, because gid_t an uid_t are defined (conditionally on WIN32) in
>config.h instead of in win32/win32.h.

ということらしいので、こうするといいんでしょうか。でも configure でも
定義されてるんですよね・・・

# なかむら(う)さんが watch なさっていることがわかったので、
# 後はおまかせします。

Index: win32/Makefile.sub
===================================================================
RCS file: /src/ruby/win32/Makefile.sub,v
retrieving revision 1.91
diff -u -w -b -p -r1.91 Makefile.sub
--- win32/Makefile.sub	20 Apr 2005 21:45:42 -0000	1.91
+++ win32/Makefile.sub	23 Apr 2005 13:09:35 -0000
@@ -222,8 +222,6 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/
 #define HAVE_FCNTL_H 1
 #define HAVE_SYS_UTIME_H 1
 #define HAVE_FLOAT_H 1
-#define uid_t int
-#define gid_t int
 #define HAVE_STRUCT_STAT_ST_RDEV 1
 #define HAVE_ST_RDEV 1
 #define GETGROUPS_T int
Index: win32/win32.c
===================================================================
RCS file: /src/ruby/win32/win32.c,v
retrieving revision 1.147
diff -u -w -b -p -r1.147 win32.c
--- win32/win32.c	5 Mar 2005 09:30:24 -0000	1.147
+++ win32/win32.c	23 Apr 2005 13:23:31 -0000
@@ -1772,38 +1772,38 @@ rb_w32_strerror(int e)
 #define ROOT_UID	0
 #define ROOT_GID	0
 
-UIDTYPE
+uid_t
 getuid(void)
 {
 	return ROOT_UID;
 }
 
-UIDTYPE
+uid_t
 geteuid(void)
 {
 	return ROOT_UID;
 }
 
-GIDTYPE
+gid_t
 getgid(void)
 {
 	return ROOT_GID;
 }
 
-GIDTYPE
+gid_t
 getegid(void)
 {
     return ROOT_GID;
 }
 
 int
-setuid(int uid)
+setuid(uid_t uid)
 { 
     return (uid == ROOT_UID ? 0 : -1);
 }
 
 int
-setgid(int gid)
+setgid(gid_t gid)
 {
     return (gid == ROOT_GID ? 0 : -1);
 }
Index: win32/win32.h
===================================================================
RCS file: /src/ruby/win32/win32.h,v
retrieving revision 1.62
diff -u -w -b -p -r1.62 win32.h
--- win32/win32.h	10 Feb 2005 04:55:34 -0000	1.62
+++ win32/win32.h	23 Apr 2005 13:24:58 -0000
@@ -69,9 +69,9 @@ extern "C++" {
 }
 #endif
 
-#define UIDTYPE int
-#define GIDTYPE int
 #define pid_t   int
+#define uid_t   int
+#define gid_t   int
 #define WNOHANG -1
 
 #undef getc
@@ -271,12 +271,12 @@ extern FILE *rb_w32_fsopen(const char *,
 // stubs
 //
 extern int       ioctl (int, int, ...);
-extern UIDTYPE   getuid (void);
-extern UIDTYPE   geteuid (void);
-extern GIDTYPE   getgid (void);
-extern GIDTYPE   getegid (void);
-extern int       setuid (int);
-extern int       setgid (int);
+extern uid_t     getuid (void);
+extern uid_t     geteuid (void);
+extern gid_t     getgid (void);
+extern gid_t     getegid (void);
+extern int       setuid (uid_t);
+extern int       setgid (gid_t);
 
 extern char *rb_w32_strerror(int);
 
Index: wince/Makefile.sub
===================================================================
RCS file: /src/ruby/wince/Makefile.sub,v
retrieving revision 1.36
diff -u -w -b -p -r1.36 Makefile.sub
--- wince/Makefile.sub	20 Apr 2005 21:45:43 -0000	1.36
+++ wince/Makefile.sub	23 Apr 2005 13:09:24 -0000
@@ -227,8 +227,6 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/wince/
 #define HAVE_FCNTL_H 1
 #define HAVE_SYS_UTIME_H 1
 #define HAVE_FLOAT_H 1
-#define uid_t int
-#define gid_t int
 #define HAVE_STRUCT_STAT_ST_RDEV 1
 #define HAVE_ST_RDEV 1
 #define GETGROUPS_T int