|
Packit |
89ede9 |
/*
|
|
Packit |
89ede9 |
* bibutils.h
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Copyright (c) Chris Putnam 2005-2018
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Source code released under GPL version 2
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
*/
|
|
Packit |
89ede9 |
#ifndef BIBUTILS_H
|
|
Packit |
89ede9 |
#define BIBUTILS_H
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#ifdef __cplusplus
|
|
Packit |
89ede9 |
extern "C" {
|
|
Packit |
89ede9 |
#endif /* __cplusplus */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#include <stdio.h>
|
|
Packit |
89ede9 |
#include "bibl.h"
|
|
Packit |
89ede9 |
#include "slist.h"
|
|
Packit |
89ede9 |
#include "charsets.h"
|
|
Packit |
89ede9 |
#include "str_conv.h"
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_OK (0)
|
|
Packit |
89ede9 |
#define BIBL_ERR_BADINPUT (-1)
|
|
Packit |
89ede9 |
#define BIBL_ERR_MEMERR (-2)
|
|
Packit |
89ede9 |
#define BIBL_ERR_CANTOPEN (-3)
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_FIRSTIN (100)
|
|
Packit |
89ede9 |
#define BIBL_MODSIN (BIBL_FIRSTIN)
|
|
Packit |
89ede9 |
#define BIBL_BIBTEXIN (BIBL_FIRSTIN+1)
|
|
Packit |
89ede9 |
#define BIBL_RISIN (BIBL_FIRSTIN+2)
|
|
Packit |
89ede9 |
#define BIBL_ENDNOTEIN (BIBL_FIRSTIN+3)
|
|
Packit |
89ede9 |
#define BIBL_COPACIN (BIBL_FIRSTIN+4)
|
|
Packit |
89ede9 |
#define BIBL_ISIIN (BIBL_FIRSTIN+5)
|
|
Packit |
89ede9 |
#define BIBL_MEDLINEIN (BIBL_FIRSTIN+6)
|
|
Packit |
89ede9 |
#define BIBL_ENDNOTEXMLIN (BIBL_FIRSTIN+7)
|
|
Packit |
89ede9 |
#define BIBL_BIBLATEXIN (BIBL_FIRSTIN+8)
|
|
Packit |
89ede9 |
#define BIBL_EBIIN (BIBL_FIRSTIN+9)
|
|
Packit |
89ede9 |
#define BIBL_WORDIN (BIBL_FIRSTIN+10)
|
|
Packit |
89ede9 |
#define BIBL_NBIBIN (BIBL_FIRSTIN+11)
|
|
Packit |
89ede9 |
#define BIBL_LASTIN (BIBL_FIRSTIN+11)
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_FIRSTOUT (200)
|
|
Packit |
89ede9 |
#define BIBL_MODSOUT (BIBL_FIRSTOUT)
|
|
Packit |
89ede9 |
#define BIBL_BIBTEXOUT (BIBL_FIRSTOUT+1)
|
|
Packit |
89ede9 |
#define BIBL_RISOUT (BIBL_FIRSTOUT+2)
|
|
Packit |
89ede9 |
#define BIBL_ENDNOTEOUT (BIBL_FIRSTOUT+3)
|
|
Packit |
89ede9 |
#define BIBL_ISIOUT (BIBL_FIRSTOUT+4)
|
|
Packit |
89ede9 |
#define BIBL_WORD2007OUT (BIBL_FIRSTOUT+5)
|
|
Packit |
89ede9 |
#define BIBL_ADSABSOUT (BIBL_FIRSTOUT+6)
|
|
Packit |
89ede9 |
#define BIBL_NBIBOUT (BIBL_FIRSTOUT+7)
|
|
Packit |
89ede9 |
#define BIBL_LASTOUT (BIBL_FIRSTOUT+7)
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_VERBOSE (1)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_FINALCOMMA (2)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_SINGLEDASH (4)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_WHITESPACE (8)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_BRACKETS (16)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_UPPERCASE (32)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_STRICTKEY (64)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_SHORTTITLE (128)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_BIBOUT_DROPKEY (256)
|
|
Packit |
89ede9 |
#define BIBL_FORMAT_MODSOUT_DROPKEY (512)
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_RAW_WITHCHARCONVERT (4)
|
|
Packit |
89ede9 |
#define BIBL_RAW_WITHMAKEREFID (8)
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_UNKNOWN CHARSET_UNKNOWN
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_UNICODE CHARSET_UNICODE
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_GB18030 CHARSET_GB18030
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_DEFAULT CHARSET_DEFAULT
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_UTF8_DEFAULT CHARSET_UTF8_DEFAULT
|
|
Packit |
89ede9 |
#define BIBL_CHARSET_BOM_DEFAULT CHARSET_BOM_DEFAULT
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_SRC_DEFAULT (0) /* value from program default */
|
|
Packit |
89ede9 |
#define BIBL_SRC_FILE (1) /* value from file, priority over default */
|
|
Packit |
89ede9 |
#define BIBL_SRC_USER (2) /* value from user, priority over file, default */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#define BIBL_XMLOUT_FALSE STR_CONV_XMLOUT_FALSE
|
|
Packit |
89ede9 |
#define BIBL_XMLOUT_TRUE STR_CONV_XMLOUT_TRUE
|
|
Packit |
89ede9 |
#define BIBL_XMLOUT_ENTITIES STR_CONV_XMLOUT_ENTITIES
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
typedef unsigned char uchar;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
typedef struct param {
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int readformat;
|
|
Packit |
89ede9 |
int writeformat;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int charsetin;
|
|
Packit |
89ede9 |
uchar charsetin_src; /*BIBL_SRC_DEFAULT, BIBL_SRC_FILE, BIBL_SRC_USER*/
|
|
Packit |
89ede9 |
uchar latexin;
|
|
Packit |
89ede9 |
uchar utf8in;
|
|
Packit |
89ede9 |
uchar xmlin;
|
|
Packit |
89ede9 |
uchar nosplittitle;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int charsetout;
|
|
Packit |
89ede9 |
uchar charsetout_src; /* BIBL_SRC_PROG, BIBL_SRC_USER */
|
|
Packit |
89ede9 |
uchar latexout; /* If true, write Latex codes */
|
|
Packit |
89ede9 |
uchar utf8out; /* If true, write characters encoded by utf8 */
|
|
Packit |
89ede9 |
uchar utf8bom; /* If true, write utf8 byte-order-mark */
|
|
Packit |
89ede9 |
uchar xmlout; /* If true, write characters in XML entities */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int format_opts; /* options for specific formats */
|
|
Packit |
89ede9 |
int addcount; /* add reference count to reference id */
|
|
Packit |
89ede9 |
uchar output_raw;
|
|
Packit |
89ede9 |
uchar verbose;
|
|
Packit |
89ede9 |
uchar singlerefperfile;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
slist asis; /* Names that shouldn't be mangled */
|
|
Packit |
89ede9 |
slist corps; /* Names that shouldn't be mangled-MODS corporation type */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
char *progname;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int (*readf)(FILE*,char*,int,int*,str*,str*,int*);
|
|
Packit |
89ede9 |
int (*processf)(fields*,char*,char*,long,struct param*);
|
|
Packit |
89ede9 |
int (*cleanf)(bibl*,struct param*);
|
|
Packit |
89ede9 |
int (*typef) (fields*,char*,int,struct param*);
|
|
Packit |
89ede9 |
int (*convertf)(fields*,fields*,int,struct param*);
|
|
Packit |
89ede9 |
void (*headerf)(FILE*,struct param*);
|
|
Packit |
89ede9 |
void (*footerf)(FILE*);
|
|
Packit |
89ede9 |
int (*writef)(fields*,FILE*,struct param*,unsigned long);
|
|
Packit |
89ede9 |
variants *all;
|
|
Packit |
89ede9 |
int nall;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
} param;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
extern void bibl_initparams( param *p, int readmode, int writemode,
|
|
Packit |
89ede9 |
char *progname );
|
|
Packit |
89ede9 |
extern void bibl_freeparams( param *p );
|
|
Packit |
89ede9 |
extern int bibl_readasis( param *p, char *filename );
|
|
Packit |
89ede9 |
extern int bibl_addtoasis( param *p, char *entry );
|
|
Packit |
89ede9 |
extern int bibl_readcorps( param *p, char *filename );
|
|
Packit |
89ede9 |
extern int bibl_addtocorps( param *p, char *entry );
|
|
Packit |
89ede9 |
extern int bibl_read( bibl *b, FILE *fp, char *filename, param *p );
|
|
Packit |
89ede9 |
extern int bibl_write( bibl *b, FILE *fp, param *p );
|
|
Packit |
89ede9 |
extern void bibl_reporterr( int err );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#ifdef __cplusplus
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
#endif /* __cplusplus */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
#endif
|
|
Packit |
89ede9 |
|