-/*
- * Copyright (C) 1994-2002, Index Data
- * All rights reserved.
- *
- * $Id: recindex.c,v 1.33 2002-07-15 11:50:01 adam Exp $
- */
+/* $Id: recindex.c,v 1.34.2.2 2005-01-16 23:13:29 adam Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+ Index Data Aps
+
+This file is part of the Zebra server.
+
+Zebra is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+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.
+*/
+
+
/*
* Format of first block
* next (4 bytes)
- * ref_count (4 bytes)
- * block (504 bytes)
+ * ref_count (2 bytes)
+ * block (506 bytes)
*
* Format of subsequent blocks
* next (4 bytes)
* (length, data) - pairs
* length = 0 if same as previous
*/
+#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
{
struct record_index_entry entry;
int freeblock;
- char block_and_ref[sizeof(short) + sizeof(int)];
+ char block_and_ref[sizeof(int) + sizeof(short)];
int dst_type;
int first = 1;
while (freeblock)
{
if (bf_read (p->data_BFile[dst_type], freeblock, 0,
- sizeof(block_and_ref), block_and_ref) != 1)
+ first ? sizeof(block_and_ref) : sizeof(int),
+ block_and_ref) != 1)
{
logf (LOG_FATAL|LOG_ERRNO, "read in rec_del_single");
exit (1);