Exemple #1
0
/* many fields have been abused to embed URLs, DOIs, etc. */
int
is_embedded_link( char *s )
{
	if ( is_uri_remote_scheme( s ) != -1 ) return 1;
	if ( is_reference_database( s ) != -1 ) return 1;
	if ( is_doi( s ) !=-1 ) return 1;
	return 0;
}
Exemple #2
0
/* Wiley EndNote download has DOI's in "%1" tag */
static void
addnotes( fields *info, char *tag, char *data, int level )
{
	int doi = is_doi( data );
	if ( doi!=-1 )
		fields_add( info, "DOI", &(data[doi]), level );
	else
		fields_add( info, tag, data, level );
}
Exemple #3
0
/* Wiley's EndNote download has DOI's in "%1" tag */
static int
endin_addnotes( fields *info, char *tag, char *data, int level )
{
	int doi = is_doi( data );
	if ( doi!=-1 )
		return fields_add( info, "DOI", &(data[doi]), level );
	else
		return fields_add( info, tag, data, level );
}
Exemple #4
0
/* oxfordjournals hide the DOI in the NOTES N1 field */
static void
notes_add( fields *info, char *tag, newstr *s, int level )
{
	int doi = is_doi( s->data );
	if ( doi!=-1 )
		fields_add( info, "DOI", &(s->data[doi]), level );
	else
		fields_add( info, tag, s->data, level );
}
Exemple #5
0
/* scopus puts DOI in the DO or DI tag, but it needs cleaning */
static int
risin_doi( fields *bibin, newstr *intag, newstr *invalue, int level, param *pm, char *outtag, fields *bibout )
{
	int fstatus, doi;
	doi = is_doi( invalue->data );
	if ( doi!=-1 ) {
		fstatus = fields_add( bibout, "DOI", &(invalue->data[doi]), level );
		if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR;
	}
	return BIBL_OK;
}