X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=rset%2Frstemp.c;h=8e3ff845f7e5c7d4ca484de814e1cd9a4a82ef30;hb=c0c85097014e5b007075ab71d9b5bee412e28dd5;hp=5eb0db900261fd9ccfcf5a98256e23325f8972fa;hpb=0d90384223b4055ab3c6275ee3aa038c5a7884c7;p=idzebra-moved-to-github.git diff --git a/rset/rstemp.c b/rset/rstemp.c index 5eb0db9..8e3ff84 100644 --- a/rset/rstemp.c +++ b/rset/rstemp.c @@ -4,7 +4,20 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: rstemp.c,v $ - * Revision 1.16 1995-11-28 14:47:02 adam + * Revision 1.19 1997-09-04 13:58:57 adam + * Added O_BINARY for open calls. + * + * Revision 1.18 1996/10/29 13:54:52 adam + * Changed name of setting tempSetDir to setTmpDir. + * + * Revision 1.17 1995/12/11 09:15:28 adam + * New set types: sand/sor/snot - ranked versions of and/or/not in + * ranked/semi-ranked result sets. + * Note: the snot not finished yet. + * New rset member: flag. + * Bug fix: r_delete in rsrel.c did free bad memory block. + * + * Revision 1.16 1995/11/28 14:47:02 adam * New setting: tempSetPath. Location of temporary result sets. * * Revision 1.15 1995/10/12 12:41:58 adam @@ -64,10 +77,11 @@ #include #include -#include +#include #include -static void *r_create(const struct rset_control *sel, void *parms); +static void *r_create(const struct rset_control *sel, void *parms, + int *flags); static RSFD r_open (RSET ct, int flag); static void r_close (RSFD rfd); static void r_delete (RSET ct); @@ -82,7 +96,7 @@ static char *temppath_root = NULL; static const rset_control control = { - "Temporary set", + "temp", r_create, r_open, r_close, @@ -114,11 +128,11 @@ struct rset_temp_rfd { struct rset_temp_rfd *next; }; -static void *r_create(const struct rset_control *sel, void *parms) +static void *r_create(const struct rset_control *sel, void *parms, int *flags) { rset_temp_parms *temp_parms = parms; struct rset_temp_info *info; - + info = xmalloc (sizeof(struct rset_temp_info)); info->fd = -1; info->fname = NULL; @@ -133,7 +147,7 @@ static void *r_create(const struct rset_control *sel, void *parms) if (!temppath_init) { temppath_init = 1; - temppath_root = res_get (common_resource, "tempSetPath"); + temppath_root = res_get (common_resource, "setTmpDir"); } return info; } @@ -147,9 +161,9 @@ static RSFD r_open (RSET ct, int flag) if (info->fname) { if (flag & RSETF_WRITE) - info->fd = open (info->fname, O_RDWR|O_CREAT, 0666); + info->fd = open (info->fname, O_BINARY|O_RDWR|O_CREAT, 0666); else - info->fd = open (info->fname, O_RDONLY); + info->fd = open (info->fname, O_BINARY|O_RDONLY); if (info->fd == -1) { logf (LOG_FATAL|LOG_ERRNO, "open %s", info->fname); @@ -177,7 +191,7 @@ static void r_flush (RSFD rfd, int mk) strcpy (info->fname, s); logf (LOG_DEBUG, "creating tempfile %s", info->fname); - info->fd = open (info->fname, O_RDWR|O_CREAT, 0666); + info->fd = open (info->fname, O_BINARY|O_RDWR|O_CREAT, 0666); if (info->fd == -1) { logf (LOG_FATAL|LOG_ERRNO, "open %s", info->fname);