IDZEBRA 2.2.11
mod_grs_marc.c File Reference
#include <stdio.h>
#include <ctype.h>
#include <assert.h>
#include <yaz/yaz-util.h>
#include <yaz/snprintf.h>
#include <yaz/marcdisp.h>
#include <idzebra/recgrs.h>
#include "marcomp.h"
#include "inline.h"

Go to the source code of this file.

Data Structures

struct  marc_info

Macros

#define MARC_DEBUG   0
#define MARCOMP_DEBUG   0

Functions

static data1_node * grs_read_iso2709 (struct grs_read_info *p, int marc_xml)
static char * get_data (data1_node *n, int *len)
static data1_node * lookup_subfield (data1_node *node, const char *name)
static inline_subfield * lookup_inline_subfield (inline_subfield *pisf, const char *name)
static inline_subfield * cat_inline_subfield (mc_subfield *psf, WRBUF buf, inline_subfield *pisf)
static void cat_inline_field (mc_field *pf, WRBUF buf, data1_node *subfield)
static data1_node * cat_subfield (mc_subfield *psf, WRBUF buf, data1_node *subfield)
static data1_node * cat_field (struct grs_read_info *p, mc_field *pf, WRBUF buf, data1_node *field)
static int is_empty (char *s)
static void parse_data1_tree (struct grs_read_info *p, const char *mc_stmnt, data1_node *root)
data1_node * grs_read_marcxml (struct grs_read_info *p)
data1_node * grs_read_marc (struct grs_read_info *p)
static void * init_marc (Res res, RecType rt)
static ZEBRA_RES config_marc (void *clientData, Res res, const char *args)
static void destroy_marc (void *clientData)
static int extract_marc (void *clientData, struct recExtractCtrl *ctrl)
static int retrieve_marc (void *clientData, struct recRetrieveCtrl *ctrl)
static int extract_marcxml (void *clientData, struct recExtractCtrl *ctrl)
static int retrieve_marcxml (void *clientData, struct recRetrieveCtrl *ctrl)

Variables

static struct recType marc_type
static struct recType marcxml_type
RecType idzebra_filter []

Macro Definition Documentation

◆ MARC_DEBUG

#define MARC_DEBUG   0

Definition at line 34 of file mod_grs_marc.c.

◆ MARCOMP_DEBUG

#define MARCOMP_DEBUG   0

Definition at line 35 of file mod_grs_marc.c.

Function Documentation

◆ cat_field()

◆ cat_inline_field()

◆ cat_inline_subfield()

◆ cat_subfield()

◆ config_marc()

ZEBRA_RES config_marc ( void * clientData,
Res res,
const char * args )
static

Definition at line 841 of file mod_grs_marc.c.

References marc_info::type, and ZEBRA_OK.

◆ destroy_marc()

void destroy_marc ( void * clientData)
static

Definition at line 849 of file mod_grs_marc.c.

◆ extract_marc()

int extract_marc ( void * clientData,
struct recExtractCtrl * ctrl )
static

Definition at line 856 of file mod_grs_marc.c.

References grs_read_marc(), and zebra_grs_extract().

◆ extract_marcxml()

int extract_marcxml ( void * clientData,
struct recExtractCtrl * ctrl )
static

Definition at line 876 of file mod_grs_marc.c.

References grs_read_marcxml(), and zebra_grs_extract().

◆ get_data()

char * get_data ( data1_node * n,
int * len )
static

◆ grs_read_iso2709()

◆ grs_read_marc()

◆ grs_read_marcxml()

◆ init_marc()

void * init_marc ( Res res,
RecType rt )
static

Definition at line 834 of file mod_grs_marc.c.

References marc_info::type.

◆ is_empty()

int is_empty ( char * s)
static

Definition at line 704 of file mod_grs_marc.c.

Referenced by parse_data1_tree().

◆ lookup_inline_subfield()

inline_subfield * lookup_inline_subfield ( inline_subfield * pisf,
const char * name )
static

Definition at line 386 of file mod_grs_marc.c.

References inline_subfield::name, and inline_subfield::next.

Referenced by cat_inline_subfield().

◆ lookup_subfield()

data1_node * lookup_subfield ( data1_node * node,
const char * name )
static

Definition at line 374 of file mod_grs_marc.c.

References data1_node::next, data1_node::tag, and data1_node::u.

Referenced by cat_subfield().

◆ parse_data1_tree()

◆ retrieve_marc()

int retrieve_marc ( void * clientData,
struct recRetrieveCtrl * ctrl )
static

Definition at line 861 of file mod_grs_marc.c.

References grs_read_marc(), and zebra_grs_retrieve().

◆ retrieve_marcxml()

int retrieve_marcxml ( void * clientData,
struct recRetrieveCtrl * ctrl )
static

Definition at line 881 of file mod_grs_marc.c.

References grs_read_marcxml(), and zebra_grs_retrieve().

Variable Documentation

◆ idzebra_filter

RecType idzebra_filter[]
Initial value:
= {
0,
}
static struct recType marcxml_type
static struct recType marc_type

Definition at line 900 of file mod_grs_marc.c.

◆ marc_type

struct recType marc_type
static
Initial value:
= {
0,
"grs.marc",
}
static ZEBRA_RES config_marc(void *clientData, Res res, const char *args)
static int retrieve_marc(void *clientData, struct recRetrieveCtrl *ctrl)
static int extract_marc(void *clientData, struct recExtractCtrl *ctrl)
static void destroy_marc(void *clientData)
static void * init_marc(Res res, RecType rt)

Definition at line 866 of file mod_grs_marc.c.

◆ marcxml_type

struct recType marcxml_type
static
Initial value:
= {
0,
"grs.marcxml",
}
static int extract_marcxml(void *clientData, struct recExtractCtrl *ctrl)
static int retrieve_marcxml(void *clientData, struct recRetrieveCtrl *ctrl)

Definition at line 886 of file mod_grs_marc.c.