X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=bfile%2Fbfile.c;h=b05fc1d027803fbe7d34bc55a2dcc98fbce9d333;hb=9eaf65aa25be411fbd6298292f5ad7a7df7083ed;hp=ab5fa6cb26d960b4038e055b34287f478e0c51b7;hpb=c4f5c81c1fef61826e2ca7815d5f427a0a82b8e7;p=idzebra-moved-to-github.git diff --git a/bfile/bfile.c b/bfile/bfile.c index ab5fa6c..b05fc1d 100644 --- a/bfile/bfile.c +++ b/bfile/bfile.c @@ -1,5 +1,5 @@ -/* $Id: bfile.c,v 1.43 2005-05-17 08:50:48 adam Exp $ - Copyright (C) 1995-2005 +/* $Id: bfile.c,v 1.50 2006-10-10 10:19:28 adam Exp $ + Copyright (C) 1995-2006 Index Data ApS This file is part of the Zebra server. @@ -15,9 +15,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #include @@ -26,7 +26,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #ifdef WIN32 #include -#else +#endif + +#if HAVE_UNISTD_H #include #endif @@ -153,7 +155,7 @@ BFile bf_xopen(BFiles bfs, const char *name, int block_size, int wrflag, if (!bf) return 0; /* HEADER_SIZE is considered enough for our header */ - if (bf->alloc_buf_size < HEADER_SIZE) + if (bf->block_size < HEADER_SIZE) bf->alloc_buf_size = HEADER_SIZE; else bf->alloc_buf_size = bf->block_size; @@ -209,6 +211,8 @@ BFile bf_xopen(BFiles bfs, const char *name, int block_size, int wrflag, bf_close(bf); return 0; } + if (hbuf[l] == ' ') + l++; if (more_info) *more_info = hbuf + l; return bf; @@ -325,8 +329,8 @@ void bf_reset (BFiles bfs) { if (!bfs) return; - mf_reset (bfs->commit_area); - mf_reset (bfs->register_area); + mf_reset(bfs->commit_area, 1); + mf_reset(bfs->register_area, 1); } void bf_commitExec (BFiles bfs) @@ -359,13 +363,7 @@ void bf_commitExec (BFiles bfs) void bf_commitClean (BFiles bfs, const char *spec) { - FILE *inf; - int block_size; - char path[256]; - MFile mf; - CFile cf; int mustDisable = 0; - int firstTime; if (!bfs->commit_area) { @@ -373,17 +371,8 @@ void bf_commitClean (BFiles bfs, const char *spec) mustDisable = 1; } - if (!(inf = open_cache (bfs, "rb"))) - return ; - while (fscanf (inf, "%s %d", path, &block_size) == 2) - { - mf = mf_open (bfs->register_area, path, block_size, 0); - cf = cf_open (mf, bfs->commit_area, path, block_size, 1, &firstTime); - cf_unlink (cf); - cf_close (cf); - mf_close (mf); - } - fclose (inf); + mf_reset(bfs->commit_area, 1); + unlink_cache (bfs); if (mustDisable) bf_cache (bfs, 0); @@ -433,3 +422,28 @@ int bf_free(BFile bf, int no, const zint *blocks) } return 0; } + +int bfs_register_directory_stat(BFiles bfs, int no, const char **directory, + double *used_bytes, double *max_bytes) +{ + return mf_area_directory_stat(bfs->register_area, no, directory, + used_bytes, max_bytes); +} + + +int bfs_shadow_directory_stat(BFiles bfs, int no, const char **directory, + double *used_bytes, double *max_bytes) +{ + if (!bfs->commit_area) + return 0; + return mf_area_directory_stat(bfs->commit_area, no, directory, + used_bytes, max_bytes); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +