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 ); }
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 ); }
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 ); }
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; }
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 ); }
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 ); } }
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" ); } }
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" ); } }
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" ); } }