X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Frecord.c;h=723f1707772f7b5698d6e6c867838b97f8e2c217;hb=2819110732a5e3cdc6de71333977ff39d7cf8bf3;hp=016cf24dc1be1c325d7bbcc358fd8541c2840ac3;hpb=70cdb5e208e33b88f2a95e45c36605753de4edd5;p=pazpar2-moved-to-github.git diff --git a/src/record.c b/src/record.c index 016cf24..723f170 100644 --- a/src/record.c +++ b/src/record.c @@ -1,7 +1,5 @@ -/* $Id: record.c,v 1.5 2007-04-24 22:17:05 marc Exp $ - Copyright (c) 2006-2007, Index Data. - -This file is part of Pazpar2. +/* This file is part of Pazpar2. + Copyright (C) 2006-2009 Index Data Pazpar2 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 @@ -14,13 +12,10 @@ 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 Pazpar2; see the file LICENSE. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. - */ - -/* $Id: record.c,v 1.5 2007-04-24 22:17:05 marc Exp $ */ +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ #include @@ -28,11 +23,11 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #if HAVE_CONFIG_H -#include +#include #endif //#define CONFIG_NOEXTERNS -#include "config.h" +#include "pazpar2_config.h" #include "record.h" @@ -43,6 +38,9 @@ union data_types * data_types_assign(NMEM nmem, { // assert(nmem); + if (!data1) + return 0; + if (!*data1){ if (!nmem) return 0; @@ -55,7 +53,8 @@ union data_types * data_types_assign(NMEM nmem, } -struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys) +struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys, + struct client *client, int position) { struct record * record = 0; int i = 0; @@ -65,8 +64,7 @@ struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys) record = nmem_malloc(nmem, sizeof(struct record)); record->next = 0; - // which client should I use for record->client = cl; ?? - record->client = 0; + record->client = client; record->metadata = nmem_malloc(nmem, @@ -79,10 +77,20 @@ struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys) sizeof(union data_types*) * num_sortkeys); for (i = 0; i < num_sortkeys; i++) record->sortkeys[i] = 0; + + record->position = position; return record; } +struct record_metadata * record_metadata_create(NMEM nmem) +{ + struct record_metadata * rec_md + = nmem_malloc(nmem, sizeof(struct record_metadata)); + rec_md->next = 0; + return rec_md; +} + struct record_metadata * record_metadata_insert(NMEM nmem, struct record_metadata ** rmd,