Feature #11796 ยป reduce_get_stat.patch
| file.c | ||
|---|---|---|
| static VALUE | ||
| rb_stat_r(VALUE obj) | ||
| { | ||
|     struct stat *st = get_stat(obj); | ||
|     struct stat *st; | ||
| #ifdef USE_GETEUID | ||
|     if (geteuid() == 0) return Qtrue; | ||
| #endif | ||
|     st = get_stat(obj); | ||
| #ifdef S_IRUSR | ||
|     if (rb_stat_owned(obj)) | ||
| 	return st->st_mode & S_IRUSR ? Qtrue : Qfalse; | ||
| ... | ... | |
| static VALUE | ||
| rb_stat_R(VALUE obj) | ||
| { | ||
|     struct stat *st = get_stat(obj); | ||
|     struct stat *st; | ||
| #ifdef USE_GETEUID | ||
|     if (getuid() == 0) return Qtrue; | ||
| #endif | ||
|     st = get_stat(obj); | ||
| #ifdef S_IRUSR | ||
|     if (rb_stat_rowned(obj)) | ||
| 	return st->st_mode & S_IRUSR ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IRGRP | ||
|     if (rb_group_member(get_stat(obj)->st_gid)) | ||
|     if (rb_group_member(st->st_gid)) | ||
| 	return st->st_mode & S_IRGRP ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IROTH | ||
| ... | ... | |
| static VALUE | ||
| rb_stat_w(VALUE obj) | ||
| { | ||
|     struct stat *st = get_stat(obj); | ||
|     struct stat *st; | ||
| #ifdef USE_GETEUID | ||
|     if (geteuid() == 0) return Qtrue; | ||
| #endif | ||
|     st = get_stat(obj) | ||
| #ifdef S_IWUSR | ||
|     if (rb_stat_owned(obj)) | ||
| 	return st->st_mode & S_IWUSR ? Qtrue : Qfalse; | ||
| ... | ... | |
| static VALUE | ||
| rb_stat_W(VALUE obj) | ||
| { | ||
|     struct stat *st = get_stat(obj); | ||
|     struct stat *st; | ||
| #ifdef USE_GETEUID | ||
|     if (getuid() == 0) return Qtrue; | ||
| #endif | ||
|     st = get_stat(obj); | ||
| #ifdef S_IWUSR | ||
|     if (rb_stat_rowned(obj)) | ||
| 	return st->st_mode & S_IWUSR ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IWGRP | ||
|     if (rb_group_member(get_stat(obj)->st_gid)) | ||
|     if (rb_group_member(st->st_gid)) | ||
| 	return st->st_mode & S_IWGRP ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IWOTH | ||
| ... | ... | |
| 	return st->st_mode & S_IXUSR ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IXGRP | ||
|     if (rb_group_member(get_stat(obj)->st_gid)) | ||
|     if (rb_group_member(st->st_gid)) | ||
| 	return st->st_mode & S_IXGRP ? Qtrue : Qfalse; | ||
| #endif | ||
| #ifdef S_IXOTH | ||