|
Packit |
89ede9 |
/* generic.c
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Copyright (c) Chris Putnam 2016-2018
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Source code released under GPL version 2
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* xxxx_convertf() stubs that can be shared.
|
|
Packit |
89ede9 |
*/
|
|
Packit |
89ede9 |
#include "bu_auth.h"
|
|
Packit |
89ede9 |
#include "marc_auth.h"
|
|
Packit |
89ede9 |
#include "name.h"
|
|
Packit |
89ede9 |
#include "notes.h"
|
|
Packit |
89ede9 |
#include "pages.h"
|
|
Packit |
89ede9 |
#include "serialno.h"
|
|
Packit |
89ede9 |
#include "title.h"
|
|
Packit |
89ede9 |
#include "url.h"
|
|
Packit |
89ede9 |
#include "generic.h"
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
/* stub for processtypes that aren't used, such as DEFAULT and ALWAYS handled by bibcore.c */
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_null( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
return BIBL_OK;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_url( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
return urls_split_and_add( str_cstr( invalue ), bibout, level );
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_notes( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( notes_add( bibout, invalue, level ) ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( pages_add( bibout, outtag, invalue, level ) ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ) ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( addsn( bibout, str_cstr( invalue ), level ) ) return BIBL_OK;
|
|
Packit |
89ede9 |
return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
/* SIMPLE = just copy */
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_simple( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( fields_add( bibout, outtag, str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
/* just like generic_null(), but useful if we need one that isn't identical to generic_null() ala biblatexin.c */
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_skip( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
fields_setused( bibin, n );
|
|
Packit |
89ede9 |
return BIBL_OK;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_title( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( title_process( bibout, outtag, str_cstr( invalue ), level, pm->nosplittitle ) ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
generic_genre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
int status;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
if ( is_marc_genre( str_cstr( invalue ) ) )
|
|
Packit |
89ede9 |
status = fields_add( bibout, "GENRE:MARC", str_cstr( invalue ), level );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
else if ( is_bu_genre( str_cstr( invalue ) ) )
|
|
Packit |
89ede9 |
status = fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
else
|
|
Packit |
89ede9 |
status = fields_add( bibout, "GENRE:UNKNOWN", str_cstr( invalue ), level );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
if ( status == FIELDS_OK ) return BIBL_OK;
|
|
Packit |
89ede9 |
else return BIBL_ERR_MEMERR;
|
|
Packit |
89ede9 |
}
|