Blame bibutils/bibutils.h

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