Exemplo n.º 1
0
static void
output_date( FILE *fp, fields *f )
{
	char *month = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP,
		"PARTMONTH", "MONTH", NULL );
	char *year  = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP,
		"PARTYEAR", "YEAR", NULL );
	if ( month ) fprintf( fp, "PD %s\n", month );
	if ( year )  fprintf( fp, "PY %s\n", year );
}
Exemplo n.º 2
0
static void
output_date( fields *info, FILE *outptr, int level )
{
	char *year  = fields_findv_firstof( info, level, FIELDS_CHRP,
			"PARTDATE:YEAR", "DATE:YEAR", NULL );
	char *month = fields_findv_firstof( info, level, FIELDS_CHRP,
			"PARTDATE:MONTH", "DATE:MONTH", NULL );
	char *day   = fields_findv_firstof( info, level, FIELDS_CHRP,
			"PARTDATE:DAY", "DATE:DAY", NULL );
	if ( year )  output_itemv( outptr, "b:Year", year, 0 );
	if ( month ) output_itemv( outptr, "b:Month", month, 0 );
	if ( day )   output_itemv( outptr, "b:Day", day, 0 );
}
Exemplo n.º 3
0
static void
output_bibkey( fields *info, FILE *outptr )
{
	char *bibkey = fields_findv_firstof( info, LEVEL_ANY, FIELDS_CHRP,
			"REFNUM", "BIBKEY", NULL );
	if ( bibkey ) output_itemv( outptr, "b:Tag", bibkey, 0 );
}
Exemplo n.º 4
0
static int
get_month( fields *f, int level )
{
	newstr *month = fields_findv_firstof( f, level, FIELDS_STRP,
			"MONTH", "PARTMONTH", NULL );
	if ( month && month->len ) return mont2mont( month->data );
	else return 0;
}
Exemplo n.º 5
0
static void
output_year( FILE *fp, fields *info, int level )
{
	char *year = fields_findv_firstof( info, level, FIELDS_CHRP,
			"DATE:YEAR", "PARTDATE:YEAR", NULL );
	if ( year )
		fprintf( fp, "%%D %s\n", year );
}
Exemplo n.º 6
0
static void
output_date( FILE *fp, fields *f, char *adstag, int level )
{
	newstr *year = fields_findv_firstof( f, level, FIELDS_STRP,
		"YEAR", "PARTYEAR", NULL );
	int month;
	if ( year && year->len ) {
		month = get_month( f, level );
		fprintf( fp, "%s %02d/%s\n", adstag, month, year->data );
	}
}
Exemplo n.º 7
0
static void
output_date( FILE *fp, fields *f )
{
	char *year  = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP,
			"DATE:YEAR", "PARTDATE:YEAR", NULL );
	char *month = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP,
			"DATE:MONTH", "PARTDATE:MONTH", NULL );
	char *day   = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP,
			"DATE:DAY", "PARTDATE:DAY", NULL );
	if ( year )
		fprintf( fp, "PY  - %s\n", year );
	if ( year || month || day ) {
		fprintf( fp, "DA  - " );
		if ( year ) fprintf( fp, "%s", year );
		fprintf( fp, "/" );
		if ( month ) fprintf( fp, "%s", month );
		fprintf( fp, "/" );
		if ( day ) fprintf( fp, "%s", day );
		fprintf( fp, "\n" );
	}
}
Exemplo n.º 8
0
static void
output_monthday( FILE *fp, fields *info, int level )
{
	char *months[12] = { "January", "February", "March", "April",
		"May", "June", "July", "August", "September", "October",
		"November", "December" };
	int m;
	char *month = fields_findv_firstof( info, level, FIELDS_CHRP,
			"DATE:MONTH", "PARTDATE:MONTH", NULL );
	char *day   = fields_findv_firstof( info, level, FIELDS_CHRP,
			"DATE:DAY", "PARTDATE:DAY", NULL );
	if ( month || day ) {
		fprintf( fp, "%%8 " );
		if ( month ) {
			m = atoi( month );
			if ( m>0 && m<13 ) fprintf( fp, "%s", months[m-1] );
			else fprintf( fp, "%s", month );
		}
		if ( month && day ) fprintf( fp, " " );
		if ( day ) fprintf( fp, "%s", day );
		fprintf( fp, "\n" );
	}
}
Exemplo n.º 9
0
static void
output_title( FILE *fp, fields *f, char *full, char *sub, char *adstag, int level )
{
	newstr *fulltitle, *subtitle, *vol, *iss, *sn, *en, *ar;

	fulltitle = fields_findv( f, level, FIELDS_STRP, full );
	subtitle  = fields_findv( f, level, FIELDS_STRP, sub );

	if ( fulltitle && fulltitle->len ) {

		fprintf( fp, "%s %s", adstag, fulltitle->data );
		if ( subtitle && subtitle->len ) {
			if ( fulltitle->data[ fulltitle->len - 1 ] != '?' )
				fprintf( fp, ": " );
			else fprintf( fp, " " );
			fprintf( fp, "%s", subtitle->data );
		}

		vol = fields_findv( f, LEVEL_ANY, FIELDS_STRP, "VOLUME" );
		if ( vol && vol->len ) fprintf( fp, ", vol. %s", vol->data );

		iss = fields_findv_firstof( f, LEVEL_ANY, FIELDS_STRP, "ISSUE",
			"NUMBER", NULL );
		if ( iss && iss->len ) fprintf( fp, ", no. %s", iss->data );

		sn = fields_findv( f, LEVEL_ANY, FIELDS_STRP, "PAGESTART" );
		en = fields_findv( f, LEVEL_ANY, FIELDS_STRP, "PAGEEND" );
		ar = fields_findv( f, LEVEL_ANY, FIELDS_STRP, "ARTICLENUMBER" );
		if ( sn && sn->len ) {
			if ( en && en->len )
				fprintf( fp, ", pp." );
			else
				fprintf( fp, ", p." );
			fprintf( fp, " %s", sn->data );
		} else if ( ar && ar->len ) {
			fprintf( fp, ", p. %s", ar->data );
		}
		if ( en && en->len ) {
			fprintf( fp, "-%s", en->data );
		}

		fprintf( fp, "\n" );
	}
}