null+****@clear*****
null+****@clear*****
2011年 11月 27日 (日) 22:26:56 JST
Kouhei Sutou 2011-11-27 13:26:56 +0000 (Sun, 27 Nov 2011)
New Revision: acbd87c7660daaa241ee180db28b0b1b7464e215
Log:
[mingw] undef stat.
Modified files:
lib/proc.c
lib/scm.c
Modified: lib/proc.c (+51 -47)
===================================================================
--- lib/proc.c 2011-11-27 11:57:11 +0000 (c52a49c)
+++ lib/proc.c 2011-11-27 13:26:56 +0000 (3574d90)
@@ -38,6 +38,57 @@ const char *grn_document_root = NULL;
#define VAR GRN_PROC_GET_VAR_BY_OFFSET
+/* bulk must be initialized grn_bulk or grn_msg */
+static int
+grn_bulk_put_from_file(grn_ctx *ctx, grn_obj *bulk, const char *path)
+{
+ /* FIXME: implement more smartly with grn_bulk */
+ int fd, ret = 0;
+ struct stat stat;
+ if ((fd = open(path, O_RDONLY|O_NOFOLLOW)) == -1) {
+ switch (errno) {
+ case EACCES :
+ ERR(GRN_OPERATION_NOT_PERMITTED, "request is not allowed: <%s>", path);
+ break;
+ case ENOENT :
+ ERR(GRN_NO_SUCH_FILE_OR_DIRECTORY, "no such file: <%s>", path);
+ break;
+#ifndef WIN32
+ case ELOOP :
+ ERR(GRN_NO_SUCH_FILE_OR_DIRECTORY,
+ "symbolic link is not allowed: <%s>", path);
+ break;
+#endif /* WIN32 */
+ default :
+ ERR(GRN_UNKNOWN_ERROR, "open() failed(errno: %d): <%s>", errno, path);
+ break;
+ }
+ return 0;
+ }
+ if (fstat(fd, &stat) != -1) {
+ char *buf, *bp;
+ off_t rest = stat.st_size;
+ if ((buf = GRN_MALLOC(rest))) {
+ ssize_t ss;
+ for (bp = buf; rest; rest -= ss, bp += ss) {
+ if ((ss = read(fd, bp, rest)) == -1) { goto exit; }
+ }
+ GRN_TEXT_PUT(ctx, bulk, buf, stat.st_size);
+ ret = 1;
+ }
+ GRN_FREE(buf);
+ } else {
+ ERR(GRN_INVALID_ARGUMENT, "cannot stat file: <%s>", path);
+ }
+exit :
+ close(fd);
+ return ret;
+}
+
+#ifdef stat
+# undef stat
+#endif /* stat */
+
/**** query expander ****/
static grn_rc
@@ -1161,53 +1212,6 @@ proc_table_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
return NULL;
}
-/* bulk must be initialized grn_bulk or grn_msg */
-static int
-grn_bulk_put_from_file(grn_ctx *ctx, grn_obj *bulk, const char *path)
-{
- /* FIXME: implement more smartly with grn_bulk */
- int fd, ret = 0;
- struct stat stat;
- if ((fd = open(path, O_RDONLY|O_NOFOLLOW)) == -1) {
- switch (errno) {
- case EACCES :
- ERR(GRN_OPERATION_NOT_PERMITTED, "request is not allowed: <%s>", path);
- break;
- case ENOENT :
- ERR(GRN_NO_SUCH_FILE_OR_DIRECTORY, "no such file: <%s>", path);
- break;
-#ifndef WIN32
- case ELOOP :
- ERR(GRN_NO_SUCH_FILE_OR_DIRECTORY,
- "symbolic link is not allowed: <%s>", path);
- break;
-#endif /* WIN32 */
- default :
- ERR(GRN_UNKNOWN_ERROR, "open() failed(errno: %d): <%s>", errno, path);
- break;
- }
- return 0;
- }
- if (fstat(fd, &stat) != -1) {
- char *buf, *bp;
- off_t rest = stat.st_size;
- if ((buf = GRN_MALLOC(rest))) {
- ssize_t ss;
- for (bp = buf; rest; rest -= ss, bp += ss) {
- if ((ss = read(fd, bp, rest)) == -1) { goto exit; }
- }
- GRN_TEXT_PUT(ctx, bulk, buf, stat.st_size);
- ret = 1;
- }
- GRN_FREE(buf);
- } else {
- ERR(GRN_INVALID_ARGUMENT, "cannot stat file: <%s>", path);
- }
-exit :
- close(fd);
- return ret;
-}
-
static grn_obj *
proc_missing(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
{
Modified: lib/scm.c (+1 -1)
===================================================================
--- lib/scm.c 2011-11-27 11:57:11 +0000 (717c653)
+++ lib/scm.c 2011-11-27 13:26:56 +0000 (893671a)
@@ -53,7 +53,7 @@
#ifdef stat
# undef stat
-#endif
+#endif /* stat */
#define InitFile "init.scm"