[Groonga-commit] groonga/groonga [master] [mingw] undef stat.

Back to archive index

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"
 




Groonga-commit メーリングリストの案内
Back to archive index