packages feed

hs-bibutils 4.16 → 4.17

raw patch · 12 files changed

+1300/−503 lines, 12 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

bibutils/bibcore.c view
@@ -309,10 +309,10 @@  * unless a tag/value pair with the same tag has already  * been adding during reference processing.  */-static void+static int process_defaultadd( fields *f, int reftype, param *r ) {-	int i, n, process, level;+	int i, n, process, level, ok = 1; 	newstr tag, value; 	char *p; @@ -322,14 +322,20 @@ 		process = ((r->all[reftype]).tags[i]).processingtype; 		if ( process!=DEFAULT ) continue; 		level   = ((r->all[reftype]).tags[i]).level;-		p = ((r->all[reftype]).tags[i]).newstr;+		p       = ((r->all[reftype]).tags[i]).newstr; 		extract_tag_value( &tag, &value, p ); 		n = fields_find( f, tag.data, level );-		if ( n==-1 )-			fields_add( f, tag.data, value.data, level );+fprintf(stderr,"%s: n=%d tag.data='%s' level=%d\n", __FUNCTION__, n, tag.data, level );+		if ( n==-1 ) {+			ok = fields_add( f, tag.data, value.data, level );+			if ( !ok ) goto out;+		} 	}-+out: 	newstrs_free( &tag, &value, NULL );++	if ( ok ) return BIBL_OK;+	else return BIBL_ERR_MEMERR; }  /* process_alwaysadd()@@ -338,10 +344,10 @@  * processing type without exception (the difference from  * DEFAULT processing).  */-static void+static int process_alwaysadd( fields *f, int reftype, param *r ) {-	int i, process, level;+	int i, process, level, ok = 1; 	newstr tag, value; 	char *p; @@ -353,10 +359,15 @@ 		level   = ((r->all[reftype]).tags[i]).level; 		p = ((r->all[reftype]).tags[i]).newstr; 		extract_tag_value( &tag, &value, p );-		fields_add( f, tag.data, value.data, level );+		ok = fields_add( f, tag.data, value.data, level );+		if ( !ok ) goto out; 	} +out: 	newstrs_free( &tag, &value, NULL );++	if ( ok ) return BIBL_OK;+	else return BIBL_ERR_MEMERR; }  static int@@ -648,12 +659,14 @@ 		if ( !rout ) return BIBL_ERR_MEMERR; 		if ( p->typef )  			reftype = p->typef( rin, fname, i+1, p, p->all, p->nall );-		if ( p->all ) {-			process_alwaysadd( rout, reftype, p );-			process_defaultadd( rout, reftype, p );-		} 		ok = p->convertf( rin, rout, reftype, p, p->all, p->nall ); 		if ( ok!=BIBL_OK ) return ok;+		if ( p->all ) {+			ok = process_alwaysadd( rout, reftype, p );+			if ( ok!=BIBL_OK ) return ok;+			ok = process_defaultadd( rout, reftype, p );+			if ( ok!=BIBL_OK ) return ok;+		} 		bibl_addref( bout, rout ); 	} 	uniqueify_citekeys( bout );
bibutils/biblatexin.c view
@@ -373,6 +373,8 @@ 	if ( tag->len ) { 		if ( !strcasecmp( tag->data, "author" ) ) return 1; 		if ( !strcasecmp( tag->data, "editor" ) ) return 1;+		if ( !strcasecmp( tag->data, "editorb" ) ) return 1;+		if ( !strcasecmp( tag->data, "editorc" ) ) return 1; 		if ( !strcasecmp( tag->data, "director" ) ) return 1; 		if ( !strcasecmp( tag->data, "producer" ) ) return 1; 		if ( !strcasecmp( tag->data, "execproducer" ) ) return 1;@@ -381,6 +383,9 @@ 		if ( !strcasecmp( tag->data, "annotator" ) ) return 1; 		if ( !strcasecmp( tag->data, "commentator" ) ) return 1; 		if ( !strcasecmp( tag->data, "translator" ) ) return 1;+		if ( !strcasecmp( tag->data, "foreword" ) ) return 1;+		if ( !strcasecmp( tag->data, "afterword" ) ) return 1;+		if ( !strcasecmp( tag->data, "introduction" ) ) return 1; 	} 	return 0; }@@ -513,20 +518,6 @@ 	biblatexin_crossref( bin, p ); } -/*- * process_names( info, newtag, field, level);- *- * split names in author list separated by and's (use '|' character)- * and add names- */-static int-process_names( fields *info, char *tag, newstr *data, int level, list *asis,-	list *corps )-{-	newstr_findreplace( data, " and ", "|" );-	return name_add( info, tag, data->data, level, asis, corps );-}- /* is_utf8_emdash()  *  * Internally pages="A---B" will convert --- to a UTF8@@ -660,49 +651,21 @@ 		return fields_add( info, tag, value, level ); } --/*- * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc",- * each of which can be modified from a type of "EDITOR" via "editortype",- * "editoratype", "editorbtype", "editorctype".- *- * Defined types:- *     "editor"- *     "collaborator"- *     "compiler"- *     "redactor"- *- *     "reviser" ?- *     "founder" ?- *     "continuator" ?- *- *  bibtex-chicago- *- *     "director"- *     "producer"- *     "conductor"- *     "none" (for performer)- */+/* biblatex drops school field if institution is present */ static int-process_editor( fields *bibin, fields *info, newstr *tag, newstr *value, int level, list *asis, list *corps )+process_subtype( fields *bibin, fields *info, char *tag, char *value, int level ) {-	char *editor_fields[] = { "editor", "editora", "editorb", "editorc" };-	char *editor_types[]  = { "editortype", "editoratype", "editorbtype", "editorctype" };-	int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] );-	char *type, *outtag = "EDITOR";-	for ( i=1; i<neditors; ++i )-		if ( !strcasecmp( tag->data, editor_fields[i] ) ) n = i;-	ntype = fields_find( bibin, editor_types[n], LEVEL_ANY );-	if ( ntype!=-1 ) {-		type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE );-		if ( !strcasecmp( type, "collaborator" ) )  outtag = "COLLABORATOR";-		else if ( !strcasecmp( type, "compiler" ) ) outtag = "COMPILER";-		else if ( !strcasecmp( type, "redactor" ) ) outtag = "REDACTOR";-		else if ( !strcasecmp( type, "director" ) ) outtag = "DIRECTOR";-		else if ( !strcasecmp( type, "producer" ) ) outtag = "PRODUCER";-		else if ( !strcasecmp( type, "none" ) )     outtag = "PERFORMER";+	int ok = 1;+	if ( !strcasecmp( value, "magazine" ) ) {+		ok = fields_add( info, "NGENRE", "magazine article", LEVEL_MAIN );+		if ( !ok ) return 0;+		ok = fields_add( info, "NGENRE", "magazine", LEVEL_HOST );+	} else if ( !strcasecmp( value, "newspaper" ) ) {+		ok = fields_add( info, "NGENRE", "newspaper article", LEVEL_MAIN );+		if ( !ok ) return 0;+		ok = fields_add( info, "GENRE", "newspaper", LEVEL_HOST ); 	}-	return process_names( info, outtag, value, level, asis, corps );+	return ok; }  static int@@ -967,6 +930,50 @@ 	return ret; } +/*+ * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc",+ * each of which can be modified from a type of "EDITOR" via "editortype",+ * "editoratype", "editorbtype", "editorctype".+ *+ * Defined types:+ *     "editor"+ *     "collaborator"+ *     "compiler"+ *     "redactor"+ *+ *     "reviser" ?+ *     "founder" ?+ *     "continuator" ?+ *+ *  bibtex-chicago+ *+ *     "director"+ *     "producer"+ *     "conductor"+ *     "none" (for performer)+ */+static int+process_editor( fields *bibin, fields *info, newstr *tag, newstr *value, int level, list *asis, list *corps )+{+	char *editor_fields[] = { "editor", "editora", "editorb", "editorc" };+	char *editor_types[]  = { "editortype", "editoratype", "editorbtype", "editorctype" };+	int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] );+	char *type, *outtag = "EDITOR";+	for ( i=1; i<neditors; ++i )+		if ( !strcasecmp( tag->data, editor_fields[i] ) ) n = i;+	ntype = fields_find( bibin, editor_types[n], LEVEL_ANY );+	if ( ntype!=-1 ) {+		type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE );+		if ( !strcasecmp( type, "collaborator" ) )  outtag = "COLLABORATOR";+		else if ( !strcasecmp( type, "compiler" ) ) outtag = "COMPILER";+		else if ( !strcasecmp( type, "redactor" ) ) outtag = "REDACTOR";+		else if ( !strcasecmp( type, "director" ) ) outtag = "DIRECTOR";+		else if ( !strcasecmp( type, "producer" ) ) outtag = "PRODUCER";+		else if ( !strcasecmp( type, "none" ) )     outtag = "PERFORMER";+	}+	return biblatex_names( info, outtag, value, level, asis, corps );+}+ int biblatexin_convertf( fields *bibin, fields *info, int reftype, param *p, 		variants *all, int nall )@@ -1019,17 +1026,17 @@ 			fields_setused( bibin, i ); 			break; -		case BIBTEX_URL:+		case BT_URL: 			ok = process_url( info, d->data, level ); 			fields_setused( bibin, i ); 			break; -		case BIBTEX_GENRE:+		case BT_GENRE: 			ok = fields_add( info, "NGENRE", d->data, level ); 			fields_setused( bibin, i ); 			break; -		case BIBTEX_EPRINT:+		case BT_EPRINT: 			ok = process_eprint( bibin, info, level ); 			fields_setused( bibin, i ); 			break;@@ -1041,6 +1048,11 @@  		case BLT_SCHOOL: 			ok = process_school( bibin, info, newtag, d->data, level );+			fields_setused( bibin, i );+			break;++		case BLT_SUBTYPE:+			ok = process_subtype( bibin, info, newtag, d->data, level ); 			fields_setused( bibin, i ); 			break; 
bibutils/bibtexin.c view
@@ -996,19 +996,19 @@ 			ok = process_file( info, d, level ); 			break; -		case BIBTEX_NOTE:+		case BT_NOTE: 			ok = process_note( info, d, level ); 			break; -		case BIBTEX_SENTE:+		case BT_SENTE: 			ok = process_sente( info, d, level ); 			break; -		case BIBTEX_URL:+		case BT_URL: 			ok = process_url( info, d, level ); 			break; -		case BIBTEX_ORGANIZATION:+		case BT_ORG: 			ok = process_organization( bibin, info, d, level ); 			break; 
bibutils/bibtextypes.c view
@@ -33,13 +33,13 @@ 	{ "abstract",     "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",     "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",  SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",     BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",     BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",  SIMPLE, LEVEL_MAIN },-	{ "ftp",          "",      BIBTEX_URL, LEVEL_MAIN },-	{ "url",          "",      BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",          "",      BT_URL, LEVEL_MAIN },+	{ "url",          "",      BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",       HOWPUBLISHED, LEVEL_MAIN }, 	{ "doi",          "DOI",       SIMPLE, LEVEL_MAIN },@@ -64,7 +64,7 @@ 	{ "booktitle",    "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "series",       "TITLE",     TITLE,  LEVEL_HOST }, 	{ "publisher",    "PUBLISHER", SIMPLE, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "address",      "ADDRESS",   SIMPLE, LEVEL_MAIN }, 	{ "editor",       "EDITOR",    PERSON, LEVEL_MAIN }, 	{ "year",         "YEAR",      SIMPLE, LEVEL_MAIN },@@ -79,14 +79,14 @@ 	{ "contents",     "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",  SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",  SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",     BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",     BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "type",         "GENRE",     SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",    SIMPLE, LEVEL_MAIN },-	{ "ftp",          "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",          "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",          "",       BT_URL, LEVEL_MAIN },+	{ "url",          "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "address",      "ADDRESS",   SIMPLE, LEVEL_MAIN }, 	{ "howpublished", "",       HOWPUBLISHED, LEVEL_MAIN },@@ -123,14 +123,14 @@ 	{ "contents",     "CONTENTS",     SIMPLE, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "doi",          "DOI",          SIMPLE, LEVEL_MAIN },-	{ "ftp",          "",          BIBTEX_URL, LEVEL_MAIN },-	{ "url",          "",          BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",          "",          BT_URL, LEVEL_MAIN },+	{ "url",          "",          BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",          HOWPUBLISHED, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",          SIMPLE, LEVEL_MAIN },@@ -149,7 +149,7 @@ 	{ "booktitle", "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "editor",    "EDITOR",    PERSON, LEVEL_MAIN }, 	{ "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "address",   "ADDRESS",   SIMPLE, LEVEL_MAIN }, 	{ "year",      "YEAR",      SIMPLE, LEVEL_MAIN }, 	{ "month",     "MONTH",     SIMPLE, LEVEL_MAIN },@@ -160,14 +160,14 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",  SIMPLE, LEVEL_MAIN },@@ -205,16 +205,16 @@ 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_HOST }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",    SIMPLE, LEVEL_MAIN }, 	{ "crossref",     "CROSSREF",  SIMPLE, LEVEL_MAIN }, 	{ "type",      "GENRE",      SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "keywords",     "KEYWORD",   KEYWORD, LEVEL_MAIN },@@ -236,7 +236,7 @@ 	{ "series",    "TITLE",     TITLE,  LEVEL_SERIES }, 	{ "chapter",   "CHAPTER",   SIMPLE, LEVEL_MAIN }, 	{ "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_HOST },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_HOST }, 	{ "address",   "ADDRESS",   SIMPLE, LEVEL_HOST }, 	{ "year",      "PARTYEAR",  SIMPLE, LEVEL_MAIN }, 	{ "month",     "PARTMONTH", SIMPLE, LEVEL_MAIN },@@ -252,13 +252,13 @@ 	{ "paper",     "PAPER",     SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_HOST }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "type",      "GENRE",      SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN },@@ -295,14 +295,14 @@ 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_HOST }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "type",      "GENRE",      SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_HOST }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN },@@ -325,7 +325,7 @@ 	{ "booktitle", "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "series",    "TITLE",     TITLE,  LEVEL_HOST }, 	{ "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "address",   "ADDRESS",   SIMPLE, LEVEL_MAIN }, 	{ "year",      "YEAR",      SIMPLE, LEVEL_MAIN }, 	{ "month",     "MONTH",     SIMPLE, LEVEL_MAIN },@@ -338,15 +338,15 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",    SIMPLE, LEVEL_MAIN },@@ -369,15 +369,15 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "" ,   HOWPUBLISHED, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "type",         "GENRE",         SIMPLE, LEVEL_MAIN },@@ -402,14 +402,14 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "type",         "GENRE",         SIMPLE, LEVEL_MAIN },@@ -439,15 +439,15 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",       BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",       BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",       BT_URL, LEVEL_MAIN },+	{ "url",       "",       BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",    SIMPLE, LEVEL_MAIN },@@ -464,7 +464,7 @@ static lookups standard[] = { 	{ "author",    "AUTHOR",    PERSON, LEVEL_MAIN }, 	{ "translator",   "TRANSLATOR",PERSON, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "institution", "AUTHOR:CORP", SIMPLE, LEVEL_MAIN }, 	{ "title",     "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "booktitle", "TITLE",     TITLE,  LEVEL_MAIN },@@ -479,10 +479,10 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",      BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",      BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",      BT_URL, LEVEL_MAIN },+	{ "url",       "",      BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN },@@ -491,7 +491,7 @@ 	{ "number",    "NUMBER",      TITLE,  LEVEL_MAIN }, 	{ "revision",  "REVISION",    TITLE,  LEVEL_MAIN }, 	{ "location",     "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",          "BIBKEY",          SIMPLE, LEVEL_MAIN }, 	{ "keywords",     "KEYWORD",   KEYWORD, LEVEL_MAIN },@@ -519,17 +519,17 @@ 	{ "number",       "NUMBER",      TITLE,  LEVEL_MAIN }, 	{ "contents",     "CONTENTS",    SIMPLE, LEVEL_MAIN }, 	{ "doi",          "DOI",         SIMPLE, LEVEL_MAIN },-	{ "ftp",          "",        BIBTEX_URL, LEVEL_MAIN },-	{ "url",          "",        BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",          "",        BT_URL, LEVEL_MAIN },+	{ "url",          "",        BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",         HOWPUBLISHED, LEVEL_MAIN }, 	{ "refnum",       "REFNUM",      SIMPLE, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",    SIMPLE, LEVEL_MAIN },-	{ "note",         "NOTES",       BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",         "NOTES",       BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "crossref",     "CROSSREF",  SIMPLE, LEVEL_MAIN }, 	{ "keywords",     "KEYWORD",   KEYWORD, LEVEL_MAIN }, 	{ "",            "RESOURCE|text",    ALWAYS, LEVEL_MAIN },@@ -558,14 +558,14 @@ 	{ "language",  "LANGUAGE",  SIMPLE, LEVEL_MAIN }, 	{ "location",  "LOCATION",  SIMPLE, LEVEL_MAIN }, 	{ "nationality", "NATIONALITY", SIMPLE, LEVEL_MAIN },-	{ "note",      "NOTES",     BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",      "NOTES",     BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",       "BIBKEY",       SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",      BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",      BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",      BT_URL, LEVEL_MAIN },+	{ "url",       "",      BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "type",       "GENRE",     SIMPLE, LEVEL_MAIN },@@ -583,7 +583,7 @@ static lookups electronic[] = { 	{ "author",    "AUTHOR",    PERSON, LEVEL_MAIN }, 	{ "translator",   "TRANSLATOR",PERSON, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "title",     "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "booktitle", "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN },@@ -596,16 +596,16 @@ 	{ "volume",    "VOLUME",    SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",      BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",      BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",      BT_URL, LEVEL_MAIN },+	{ "url",       "",      BT_URL, LEVEL_MAIN }, 	{ "pdf",          "FILEATTACH",SIMPLE, LEVEL_MAIN },-	{ "sentelink",    "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink",    "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",         "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",    SIMPLE, LEVEL_MAIN }, 	{ "crossref",     "CROSSREF",  SIMPLE, LEVEL_MAIN }, 	{ "location",  "LOCATION",  SIMPLE, LEVEL_MAIN },-	{ "note",      "NOTES",     BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",      "NOTES",     BT_NOTE, LEVEL_MAIN }, 	{ "annote",       "ANNOTE",    SIMPLE, LEVEL_MAIN }, 	{ "key",       "BIBKEY",       SIMPLE, LEVEL_MAIN }, 	{ "language",  "LANGUAGE",  SIMPLE, LEVEL_MAIN },@@ -620,7 +620,7 @@ 	{ "title",     "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "booktitle", "TITLE",     TITLE,  LEVEL_MAIN }, 	{ "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN },-	{ "organization", "ORGANIZER:CORP", BIBTEX_ORGANIZATION, LEVEL_MAIN },+	{ "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, 	{ "pages",     "PAGES",     PAGES,  LEVEL_MAIN }, 	{ "address",   "ADDRESS",   SIMPLE, LEVEL_MAIN }, 	{ "editor",    "EDITOR",    PERSON, LEVEL_MAIN },@@ -630,16 +630,16 @@ 	{ "abstract",  "ABSTRACT",  SIMPLE, LEVEL_MAIN }, 	{ "contents",  "CONTENTS",  SIMPLE, LEVEL_MAIN }, 	{ "doi",       "DOI",       SIMPLE, LEVEL_MAIN },-	{ "ftp",       "",      BIBTEX_URL, LEVEL_MAIN },-	{ "url",       "",      BIBTEX_URL, LEVEL_MAIN },+	{ "ftp",       "",      BT_URL, LEVEL_MAIN },+	{ "url",       "",      BT_URL, LEVEL_MAIN }, 	{ "pdf",       "FILEATTACH",   SIMPLE, LEVEL_MAIN },-	{ "sentelink", "FILEATTACH",BIBTEX_SENTE, LEVEL_MAIN },+	{ "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, 	{ "file",      "FILEATTACH",LINKEDFILE,   LEVEL_MAIN }, 	{ "howpublished", "",    HOWPUBLISHED, LEVEL_MAIN }, 	{ "refnum",    "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "crossref",  "CROSSREF",     SIMPLE, LEVEL_MAIN }, 	{ "location",  "LOCATION",     SIMPLE, LEVEL_MAIN },-	{ "note",      "NOTES",        BIBTEX_NOTE, LEVEL_MAIN },+	{ "note",      "NOTES",        BT_NOTE, LEVEL_MAIN }, 	{ "annote",    "ANNOTE",       SIMPLE, LEVEL_MAIN }, 	{ "key",       "BIBKEY",       SIMPLE, LEVEL_MAIN }, 	{ "language",  "LANGUAGE",     SIMPLE, LEVEL_MAIN },
bibutils/bltypes.c view
@@ -18,140 +18,145 @@  * Article in a journal, newspaper, other periodical  */ static lookups article[] = {-	{ "author",          "AUTHOR",       PERSON, LEVEL_MAIN },-	{ "editor",          "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editora",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorb",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorc",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editortype",      "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editoratype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorbtype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorctype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "director",        "DIRECTOR",     PERSON, LEVEL_MAIN },-	{ "producer",        "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "execproducer",    "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "writer",          "AUTHOR",       PERSON, LEVEL_MAIN },-	{ "redactor",        "REDACTOR",     PERSON, LEVEL_MAIN },-	{ "annotator",       "ANNOTATOR",    PERSON, LEVEL_MAIN },-	{ "commentator",     "COMMENTATOR",  PERSON, LEVEL_MAIN },-	{ "translator",      "TRANSLATOR",   PERSON, LEVEL_MAIN },-	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN },-	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN },-	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },-	{ "journal",         "TITLE",        TITLE,  LEVEL_HOST },-	{ "journaltitle",    "TITLE",        TITLE,  LEVEL_HOST },-	{ "journalsubtitle", "SUBTITLE",     TITLE,  LEVEL_HOST },-	{ "shortjournal",    "SHORTTITLE",   SIMPLE, LEVEL_HOST },-	{ "issuetitle",      "TITLE",        TITLE,  LEVEL_SERIES }, /*WRONG*/-	{ "issuesubtitle",   "SUBTITLE",     TITLE,  LEVEL_SERIES }, /*WRONG*/-	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN },-	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG },-	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },-	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG },-	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG },-	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG },-	{ "series",          "TITLE",        SIMPLE, LEVEL_SERIES },-	{ "volume",          "VOLUME",       SIMPLE, LEVEL_MAIN },-	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN },-	{ "eid",             "EID",          SIMPLE, LEVEL_MAIN },-	{ "issue",           "ISSUE",        SIMPLE, LEVEL_MAIN },-	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/-	{ "day",             "PARTDAY",      SIMPLE, LEVEL_MAIN },-	{ "month",           "PARTMONTH",    SIMPLE, LEVEL_MAIN },-	{ "year",            "PARTYEAR",     SIMPLE, LEVEL_MAIN },-	{ "pages",           "PAGES",        PAGES,  LEVEL_MAIN },-	{ "version",         "VERSION",      SIMPLE, LEVEL_MAIN },-	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "issn",            "ISSN",         SIMPLE, LEVEL_HOST },-	{ "abstract",        "ABSTRACT",     SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?addendum?",   SIMPLE, LEVEL_MAIN },-	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",  BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },-	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN },-	{ "urlday",          "?urlday?",     SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "urlmonth",        "?urlmonth?",   SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN },-	{ "",                "INTERNAL_TYPE|ARTICLE",           ALWAYS, LEVEL_MAIN },-	{ "",                "ISSUANCE|continuing",    ALWAYS, LEVEL_HOST },-	{ "",                "RESOURCE|text",          ALWAYS, LEVEL_MAIN },-        { "",                "NGENRE|journal article", ALWAYS, LEVEL_MAIN },-	{ "",                "GENRE|periodical",       ALWAYS, LEVEL_HOST }+	{ "author",          "AUTHOR",                 PERSON,      LEVEL_MAIN   },+	{ "editor",          "EDITOR",                 BLT_EDITOR,  LEVEL_MAIN   },+	{ "editora",         "EDITOR",                 BLT_EDITOR,  LEVEL_MAIN   },+	{ "editorb",         "EDITOR",                 BLT_EDITOR,  LEVEL_MAIN   },+	{ "editorc",         "EDITOR",                 BLT_EDITOR,  LEVEL_MAIN   },+	{ "editortype",      "",                       BLT_SKIP,    LEVEL_MAIN   },+	{ "editoratype",     "",                       BLT_SKIP,    LEVEL_MAIN   },+	{ "editorbtype",     "",                       BLT_SKIP,    LEVEL_MAIN   },+	{ "editorctype",     "",                       BLT_SKIP,    LEVEL_MAIN   },+	{ "director",        "DIRECTOR",               PERSON,      LEVEL_MAIN   },+	{ "producer",        "PRODUCER",               PERSON,      LEVEL_MAIN   },+	{ "execproducer",    "PRODUCER",               PERSON,      LEVEL_MAIN   },+	{ "writer",          "AUTHOR",                 PERSON,      LEVEL_MAIN   },+	{ "redactor",        "REDACTOR",               PERSON,      LEVEL_MAIN   },+	{ "annotator",       "ANNOTATOR",              PERSON,      LEVEL_MAIN   },+	{ "commentator",     "COMMENTATOR",            PERSON,      LEVEL_MAIN   },+	{ "translator",      "TRANSLATOR",             PERSON,      LEVEL_MAIN   },+	{ "title",           "TITLE",                  TITLE,       LEVEL_MAIN   },+	{ "subtitle",        "SUBTITLE",               TITLE,       LEVEL_MAIN   },+	{ "titleaddon",      "TITLEADDON",             TITLE,       LEVEL_MAIN   },+	{ "journal",         "TITLE",                  TITLE,       LEVEL_HOST   },+	{ "journaltitle",    "TITLE",                  TITLE,       LEVEL_HOST   },+	{ "journalsubtitle", "SUBTITLE",               TITLE,       LEVEL_HOST   },+	{ "shortjournal",    "SHORTTITLE",             SIMPLE,      LEVEL_HOST   },+	{ "issuetitle",      "TITLE",                  TITLE,       LEVEL_SERIES }, /*WRONG*/+	{ "issuesubtitle",   "SUBTITLE",               TITLE,       LEVEL_SERIES }, /*WRONG*/+	{ "language",        "LANGUAGE",               SIMPLE,      LEVEL_MAIN   },+	{ "origlanguage",    "LANGUAGE",               SIMPLE,      LEVEL_ORIG   },+	{ "origyear",        "YEAR",                   SIMPLE,      LEVEL_ORIG   },+	{ "origdate",        "DATE",                   SIMPLE,      LEVEL_ORIG   },+	{ "origtitle",       "TITLE",                  SIMPLE,      LEVEL_ORIG   },+	{ "origlocation",    "ADDRESS",                SIMPLE,      LEVEL_ORIG   },+	{ "origpublisher",   "PUBLISHER",              SIMPLE,      LEVEL_ORIG   },+	{ "series",          "TITLE",                  SIMPLE,      LEVEL_SERIES },+	{ "volume",          "VOLUME",                 SIMPLE,      LEVEL_MAIN   },+	{ "number",          "NUMBER",                 SIMPLE,      LEVEL_MAIN   },+	{ "eid",             "EID",                    SIMPLE,      LEVEL_MAIN   },+	{ "issue",           "ISSUE",                  SIMPLE,      LEVEL_MAIN   },+	{ "date",            "DATE",                   SIMPLE,      LEVEL_MAIN   },   /*WRONG*/+	{ "day",             "PARTDAY",                SIMPLE,      LEVEL_MAIN   },+	{ "month",           "PARTMONTH",              SIMPLE,      LEVEL_MAIN   },+	{ "year",            "PARTYEAR",               SIMPLE,      LEVEL_MAIN   },+	{ "pages",           "PAGES",                  PAGES,       LEVEL_MAIN   },+	{ "version",         "EDITION",                SIMPLE,      LEVEL_MAIN   },+	{ "note",            "NOTES",                  SIMPLE,      LEVEL_MAIN   },+	{ "annote",          "NOTES",                  SIMPLE,      LEVEL_MAIN   },+	{ "annotation",      "ANNOTATION",             SIMPLE,      LEVEL_MAIN   },+	{ "issn",            "ISSN",                   SIMPLE,      LEVEL_HOST   },+	{ "abstract",        "ABSTRACT",               SIMPLE,      LEVEL_MAIN   },+	{ "addendum",        "ADDENDUM",               SIMPLE,      LEVEL_MAIN   },+	{ "doi",             "DOI",                    SIMPLE,      LEVEL_MAIN   },+	{ "eprint",          "",                       BT_EPRINT,   LEVEL_MAIN   },+	{ "eprinttype",      "",                       BT_EPRINT,   LEVEL_MAIN   },+	{ "url",             "",                       BT_URL,      LEVEL_MAIN   },+	{ "urldate",         "URLDATE",                SIMPLE,      LEVEL_MAIN   },+	{ "urlday",          "?urlday?",               SIMPLE,      LEVEL_MAIN   }, /* WRONG */+	{ "urlmonth",        "?urlmonth?",             SIMPLE,      LEVEL_MAIN   }, /* WRONG */+	{ "urlyear",         "?urlyear?",              SIMPLE,      LEVEL_MAIN   }, /* WRONG */+	{ "address",         "ADDRESS",                SIMPLE,      LEVEL_MAIN   },+	{ "refnum",          "REFNUM",                 SIMPLE,      LEVEL_MAIN   },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   },+	{ "entrysubtype",    "",                       BLT_SUBTYPE, LEVEL_MAIN   },+	{ "",                "INTERNAL_TYPE|ARTICLE",  ALWAYS,      LEVEL_MAIN   },+	{ "",                "ISSUANCE|continuing",    ALWAYS,      LEVEL_HOST   },+	{ "",                "RESOURCE|text",          ALWAYS,      LEVEL_MAIN   },+	{ "",                "NGENRE|journal article", DEFAULT,     LEVEL_MAIN   },+	{ "",                "GENRE|periodical",       DEFAULT,     LEVEL_HOST   } };  /* Book */  static lookups book[] = {-	{ "author",          "AUTHOR",       PERSON, LEVEL_MAIN },-	{ "editor",          "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editora",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorb",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorc",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editortype",      "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editoratype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorbtype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorctype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "director",        "DIRECTOR",     PERSON, LEVEL_MAIN },-	{ "producer",        "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "execproducer",    "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "writer",          "AUTHOR",       PERSON, LEVEL_MAIN },-	{ "redactor",        "REDACTOR",     PERSON, LEVEL_MAIN },-	{ "annotator",       "ANNOTATOR",    PERSON, LEVEL_MAIN },-	{ "commentator",     "COMMENTATOR",  PERSON, LEVEL_MAIN },-	{ "translator",      "TRANSLATOR",   PERSON, LEVEL_MAIN },-	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN },-	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN },-	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN },-	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },-	{ "maintitle",       "TITLE",        TITLE,  LEVEL_HOST },-	{ "mainsubtitle",    "SUBTITLE",     TITLE,  LEVEL_HOST },-	{ "maintitleaddon",  "TITLEADDON",   TITLE,  LEVEL_HOST },-	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN },-	{ "year",            "YEAR",         SIMPLE, LEVEL_MAIN },-	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN },-	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/-	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG },-	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },-	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG },-	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG },-	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG },-	{ "volume",          "VOLUME",       SIMPLE, LEVEL_HOST },-	{ "part",            "PART",         SIMPLE, LEVEL_HOST },-	{ "edition",         "EDITION",      SIMPLE, LEVEL_MAIN },-	{ "volumes",         "NUMVOLUMES",   SIMPLE, LEVEL_HOST },-	{ "series",          "TITLE",        SIMPLE, LEVEL_HOST }, /* WRONG */-	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN },-	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN },-	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "isbn",            "ISBN",         SIMPLE, LEVEL_MAIN },-	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN },-	{ "pages",           "?pages?",    SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "pagetotal",       "?pagetotal?",    SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?addendum?",    SIMPLE, LEVEL_MAIN },-	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },-	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN },-	{ "urlday",          "?urlday?",    SIMPLE, LEVEL_MAIN },-	{ "urlmonth",        "?urlmonth?",    SIMPLE, LEVEL_MAIN },-	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN },-	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN },-	{ "",                "INTERNAL_TYPE|BOOK",    ALWAYS, LEVEL_MAIN },-	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },-	{ "",                "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN },-	{ "",                "GENRE|book",   ALWAYS, LEVEL_MAIN }+	{ "author",          "AUTHOR",               PERSON,     LEVEL_MAIN },+	{ "editor",          "EDITOR",               BLT_EDITOR, LEVEL_MAIN },+	{ "editora",         "EDITOR",               BLT_EDITOR, LEVEL_MAIN },+	{ "editorb",         "EDITOR",               BLT_EDITOR, LEVEL_MAIN },+	{ "editorc",         "EDITOR",               BLT_EDITOR, LEVEL_MAIN },+	{ "editortype",      "",                     BLT_SKIP,   LEVEL_MAIN },+	{ "editoratype",     "",                     BLT_SKIP,   LEVEL_MAIN },+	{ "editorbtype",     "",                     BLT_SKIP,   LEVEL_MAIN },+	{ "editorctype",     "",                     BLT_SKIP,   LEVEL_MAIN },+	{ "director",        "DIRECTOR",             PERSON,     LEVEL_MAIN },+	{ "producer",        "PRODUCER",             PERSON,     LEVEL_MAIN },+	{ "execproducer",    "PRODUCER",             PERSON,     LEVEL_MAIN },+	{ "writer",          "AUTHOR",               PERSON,     LEVEL_MAIN },+	{ "redactor",        "REDACTOR",             PERSON,     LEVEL_MAIN },+	{ "annotator",       "ANNOTATOR",            PERSON,     LEVEL_MAIN },+	{ "commentator",     "COMMENTATOR",          PERSON,     LEVEL_MAIN },+	{ "translator",      "TRANSLATOR",           PERSON,     LEVEL_MAIN },+	{ "introduction",    "INTROAUTHOR",          PERSON,     LEVEL_MAIN },+	{ "foreword",        "INTROAUTHOR",          PERSON,     LEVEL_MAIN },+	{ "afterword",       "AFTERAUTHOR",          PERSON,     LEVEL_MAIN },+	{ "title",           "TITLE",                TITLE,      LEVEL_MAIN },+	{ "subtitle",        "SUBTITLE",             TITLE,      LEVEL_MAIN },+	{ "titleaddon",      "TITLEADDON",           TITLE,      LEVEL_MAIN },+	{ "maintitle",       "TITLE",                TITLE,      LEVEL_HOST },+	{ "mainsubtitle",    "SUBTITLE",             TITLE,      LEVEL_HOST },+	{ "maintitleaddon",  "TITLEADDON",           TITLE,      LEVEL_HOST },+	{ "language",        "LANGUAGE",             SIMPLE,     LEVEL_MAIN },+	{ "year",            "YEAR",                 SIMPLE,     LEVEL_MAIN },+	{ "month",           "MONTH",                SIMPLE,     LEVEL_MAIN },+	{ "date",            "DATE",                 SIMPLE,     LEVEL_MAIN },   /*WRONG*/+	{ "origlanguage",    "LANGUAGE",             SIMPLE,     LEVEL_ORIG },+	{ "origyear",        "YEAR",                 SIMPLE,     LEVEL_ORIG },+	{ "origdate",        "DATE",                 SIMPLE,     LEVEL_ORIG },+	{ "origtitle",       "TITLE",                SIMPLE,     LEVEL_ORIG },+	{ "origlocation",    "ADDRESS",              SIMPLE,     LEVEL_ORIG },+	{ "origpublisher",   "PUBLISHER",            SIMPLE,     LEVEL_ORIG },+	{ "volume",          "VOLUME",               SIMPLE,     LEVEL_HOST },+	{ "part",            "PART",                 SIMPLE,     LEVEL_HOST },+	{ "edition",         "EDITION",              SIMPLE,     LEVEL_MAIN },+	{ "volumes",         "NUMVOLUMES",           SIMPLE,     LEVEL_HOST },+	{ "series",          "TITLE",                SIMPLE,     LEVEL_HOST }, /* WRONG */+	{ "number",          "NUMBER",               SIMPLE,     LEVEL_MAIN },+	{ "note",            "NOTES",                SIMPLE,     LEVEL_MAIN },+	{ "annote",          "NOTES",                SIMPLE,     LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",           SIMPLE,     LEVEL_MAIN },+	{ "publisher",       "PUBLISHER",            SIMPLE,     LEVEL_MAIN },+	{ "location",        "ADDRESS",              SIMPLE,     LEVEL_MAIN },+	{ "isbn",            "ISBN",                 SIMPLE,     LEVEL_MAIN },+	{ "chapter",         "CHAPTER",              SIMPLE,     LEVEL_MAIN },+	{ "pages",           "?pages?",              SIMPLE,     LEVEL_MAIN }, /* WRONG */+	{ "pagetotal",       "?pagetotal?",          SIMPLE,     LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",             SIMPLE,     LEVEL_MAIN },+	{ "doi",             "DOI",                  SIMPLE,     LEVEL_MAIN },+	{ "eprint",          "",                     BT_EPRINT,  LEVEL_MAIN },+	{ "eprinttype",      "",                     BT_EPRINT,  LEVEL_MAIN },+	{ "url",             "",                     BT_URL,     LEVEL_MAIN },+	{ "urldate",         "URLDATE",              SIMPLE,     LEVEL_MAIN },+	{ "urlday",          "?urlday?",             SIMPLE,     LEVEL_MAIN },+	{ "urlmonth",        "?urlmonth?",           SIMPLE,     LEVEL_MAIN },+	{ "urlyear",         "?urlyear?",            SIMPLE,     LEVEL_MAIN },+	{ "address",         "ADDRESS",              SIMPLE,     LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   },+	{ "refnum",          "REFNUM",               SIMPLE,     LEVEL_MAIN },+	{ "",                "INTERNAL_TYPE|BOOK",   ALWAYS,     LEVEL_MAIN },+	{ "",                "RESOURCE|text",        ALWAYS,     LEVEL_MAIN },+	{ "",                "ISSUANCE|monographic", ALWAYS,     LEVEL_MAIN },+	{ "",                "GENRE|book",           ALWAYS,     LEVEL_MAIN } };  /* Booklet */@@ -178,25 +183,26 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN },-	{ "type",            "GENRE",  BIBTEX_GENRE, LEVEL_MAIN },+	{ "type",            "GENRE",  BT_GENRE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN }, 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN },-	{ "pages",           "?pages?",    SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "pagetotal",       "?pagetotal?",    SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?addendum?",    SIMPLE, LEVEL_MAIN },+	{ "pages",           "?pages?",      SIMPLE, LEVEL_MAIN }, /* WRONG */+	{ "pagetotal",       "?pagetotal?",  SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?urlday?",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?urlmonth?",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|BOOK",    ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -225,8 +231,8 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN }, 	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN }, 	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN }, 	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },@@ -236,6 +242,7 @@ 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG }, 	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },+	{ "origdate",        "DATE",         SIMPLE, LEVEL_ORIG }, 	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG }, 	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG }, 	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG },@@ -247,23 +254,24 @@ 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN }, 	{ "isbn",            "ISBN",         SIMPLE, LEVEL_MAIN }, 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN },-	{ "pages",           "?pages?",    SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "pagetotal",       "?pagetotal?",    SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?addendum?",    SIMPLE, LEVEL_MAIN },+	{ "pages",           "?pages?",      SIMPLE, LEVEL_MAIN }, /* WRONG */+	{ "pagetotal",       "?pagetotal?",  SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?urlday?",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?urlmonth?",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|BOOK",    ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -295,8 +303,8 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_HOST },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_HOST },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_HOST }, 	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN }, 	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN }, 	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },@@ -310,6 +318,7 @@ 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG }, 	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },+	{ "origdate",        "DATE",         SIMPLE, LEVEL_ORIG }, 	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG }, 	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG }, 	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG },@@ -318,25 +327,26 @@ 	{ "part",            "PART",         SIMPLE, LEVEL_HOST }, 	{ "edition",         "EDITION",      SIMPLE, LEVEL_MAIN }, 	{ "volumes",         "NUMVOLUMES",   SIMPLE, LEVEL_HOST },-	{ "series",          "?series?",     SIMPLE, LEVEL_HOST }, /* WRONG */+	{ "series",          "TITLE",        SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN }, 	{ "isbn",            "ISBN",         SIMPLE, LEVEL_HOST }, 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?addendum?",   SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?urlday?",     SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?urlmonth?",   SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|INBOOK",    ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -361,10 +371,10 @@ 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_HOST },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_HOST },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_HOST }, 	{ "bookauthor",      "AUTHOR",       PERSON, LEVEL_HOST }, 	{ "booktitle",       "TITLE",        TITLE,  LEVEL_HOST }, 	{ "booksubtitle",    "SUBTITLE",     TITLE,  LEVEL_HOST },@@ -393,10 +403,11 @@ 	{ "mainsubtitle",    "SUBTITLE",     TITLE,  LEVEL_SERIES }, 	{ "maintitleaddon",  "TITLEADDON",   TITLE,  LEVEL_SERIES }, -	{ "series",          "TITLE",        SIMPLE, LEVEL_HOST+2 }, /* WRONG */+	{ "series",          "TITLE",        SIMPLE, LEVEL_SERIES+1 }, /* WRONG */  	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG }, 	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },+	{ "origdate",        "DATE",         SIMPLE, LEVEL_ORIG }, 	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG }, 	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG }, 	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG },@@ -406,16 +417,17 @@ 	{ "isbn",            "ISBN",         SIMPLE, LEVEL_MAIN }, 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN }, 	{ "pages",           "PAGES",        PAGES,  LEVEL_MAIN }, /* WRONG */-	{ "addendum",        "?addendum?",   SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?urlday?",     SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?urlmonth?",   SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|INCOLLECTION",    ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -448,8 +460,8 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_HOST },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_HOST },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_HOST },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_HOST }, 	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN }, 	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN }, 	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },@@ -468,6 +480,11 @@ 	{ "organization",    "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG },+	{ "origdate",        "DATE",         SIMPLE, LEVEL_ORIG },+	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },+	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG },+	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG },+	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG }, 	{ "volume",          "VOLUME",       SIMPLE, LEVEL_HOST }, 	{ "part",            "PART",         SIMPLE, LEVEL_HOST }, 	{ "edition",         "EDITION",      SIMPLE, LEVEL_MAIN },@@ -475,22 +492,23 @@ 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_HOST }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_HOST }, 	{ "isbn",            "ISBN",         SIMPLE, LEVEL_MAIN }, 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN }, 	{ "pages",           "PAGES",        PAGES,  LEVEL_MAIN }, /* WRONG */-	{ "addendum",        "?addendnum?",  SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?urlday?",     SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?urlmonth?",   SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?urlyear?",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|INPROCEEDINGS",    ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -520,20 +538,20 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN }, /*WRONG*/ 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN }, 	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN }, 	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN }, 	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN }, 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "edition",         "EDITION",      SIMPLE, LEVEL_MAIN },-	{ "version",         "???????",      SIMPLE, LEVEL_MAIN }, /*WRONG*/-	{ "type",            "GENRE",  BIBTEX_GENRE, LEVEL_MAIN },+	{ "version",         "EDITION",      SIMPLE, LEVEL_MAIN },+	{ "type",            "GENRE",  BT_GENRE, LEVEL_MAIN }, 	{ "series",          "TITLE",        SIMPLE, LEVEL_HOST }, 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "organization",    "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN },@@ -541,16 +559,17 @@ 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN }, 	{ "pages",           "?????????",    SIMPLE, LEVEL_MAIN }, /* WRONG */ 	{ "pagetotal",       "?????????",    SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?????????",    SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|REPORT",       ALWAYS, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",     ALWAYS, LEVEL_MAIN },@@ -580,24 +599,25 @@ 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "howpublished",    "",       HOWPUBLISHED, LEVEL_MAIN },-	{ "version",         "???????",      SIMPLE, LEVEL_MAIN },-	{ "type",            "GENRE",  BIBTEX_GENRE, LEVEL_MAIN },+	{ "version",         "EDITION",      SIMPLE, LEVEL_MAIN },+	{ "type",            "GENRE",  BT_GENRE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "organization",    "ORGANIZER:CORP",SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?????????",    SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?????????",    SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|MISC",       ALWAYS, LEVEL_MAIN }, };@@ -624,24 +644,25 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "year",            "YEAR",         SIMPLE, LEVEL_MAIN }, 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN },-	{ "version",         "???????",      SIMPLE, LEVEL_MAIN },-	{ "type",            "GENRE",  BIBTEX_GENRE, LEVEL_MAIN },+	{ "version",         "EDITION",      SIMPLE, LEVEL_MAIN },+	{ "type",            "GENRE",  BT_GENRE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "organization",    "ORGANIZER:CORP",    SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?????????",    SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN },         { "",                "RESOURCE|software, multimedia",    ALWAYS, LEVEL_MAIN }, 	{ "",                "NGENRE|web page",       ALWAYS, LEVEL_MAIN },@@ -657,21 +678,22 @@ 	{ "day",             "DAY",          SIMPLE, LEVEL_MAIN }, 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "year",            "YEAR",         SIMPLE, LEVEL_MAIN },-	{ "version",         "???????",      SIMPLE, LEVEL_MAIN },-	{ "type",            "GENRE",  BIBTEX_GENRE, LEVEL_MAIN },+	{ "version",         "EDITION",      SIMPLE, LEVEL_MAIN },+	{ "type",            "GENRE",  BT_GENRE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "organization",    "ORGANIZER:CORP",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN }, 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?????????",    SIMPLE, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "RESOURCE|text",   ALWAYS, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|PATENT",    ALWAYS, LEVEL_MAIN },@@ -680,53 +702,59 @@  /*  * An entire issue of a periodical+ *+ * "The title of the periodical is given in the title field. If the issue has + * its own title in addition to the main title of the periodical, it goes in + * the issuetitle field. The editor is omissible..."  */ static lookups periodical[] = {-	{ "editor",          "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editora",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorb",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editorc",         "EDITOR",       BLT_EDITOR, LEVEL_MAIN },-	{ "editortype",      "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editoratype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorbtype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "editorctype",     "",             BLT_SKIP,   LEVEL_MAIN },-	{ "director",        "DIRECTOR",     PERSON, LEVEL_MAIN },-	{ "producer",        "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "execproducer",    "PRODUCER",     PERSON, LEVEL_MAIN },-	{ "writer",          "AUTHOR",       PERSON, LEVEL_MAIN },-	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN },-	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN },-	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },-	{ "issuetitle",      "TITLE",        TITLE,  LEVEL_HOST },-	{ "issuesubtitle",   "SUBTITLE",     TITLE,  LEVEL_HOST },-	{ "issuetitleaddon", "TITLEADDON",   TITLE,  LEVEL_HOST },-	{ "series",          "TITLE",        SIMPLE, LEVEL_SERIES },-	{ "volume",          "VOLUME",       SIMPLE, LEVEL_MAIN },-	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN },-	{ "issue",           "ISSUE",        SIMPLE, LEVEL_MAIN },-	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/-	{ "day",             "PARTDAY",      SIMPLE, LEVEL_MAIN },-	{ "month",           "PARTMONTH",    SIMPLE, LEVEL_MAIN },-	{ "year",            "PARTYEAR",     SIMPLE, LEVEL_MAIN },-	{ "pages",           "PAGES",        PAGES,  LEVEL_MAIN },-	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "issn",            "ISSN",         SIMPLE, LEVEL_HOST },-	{ "addendum",        "?????",        SIMPLE, LEVEL_MAIN },-	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },-	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN },-	{ "urlday",          "?????",        SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "urlmonth",        "?????",        SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "urlyear",         "?????",        SIMPLE, LEVEL_MAIN }, /* WRONG */-	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },-	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN },-	{ "",                "ISSUANCE|continuing",    ALWAYS, LEVEL_MAIN },-	{ "",                "RESOURCE|text",          ALWAYS, LEVEL_MAIN },-	{ "",                "GENRE|periodical",       ALWAYS, LEVEL_MAIN }+	{ "editor",          "EDITOR",              BLT_EDITOR, LEVEL_MAIN   },+	{ "editora",         "EDITOR",              BLT_EDITOR, LEVEL_MAIN   },+	{ "editorb",         "EDITOR",              BLT_EDITOR, LEVEL_MAIN   },+	{ "editorc",         "EDITOR",              BLT_EDITOR, LEVEL_MAIN   },+	{ "editortype",      "",                    BLT_SKIP,   LEVEL_MAIN   },+	{ "editoratype",     "",                    BLT_SKIP,   LEVEL_MAIN   },+	{ "editorbtype",     "",                    BLT_SKIP,   LEVEL_MAIN   },+	{ "editorctype",     "",                    BLT_SKIP,   LEVEL_MAIN   },+	{ "director",        "DIRECTOR",            PERSON,     LEVEL_MAIN   },+	{ "producer",        "PRODUCER",            PERSON,     LEVEL_MAIN   },+	{ "execproducer",    "PRODUCER",            PERSON,     LEVEL_MAIN   },+	{ "writer",          "AUTHOR",              PERSON,     LEVEL_MAIN   },+	{ "title",           "TITLE",               TITLE,      LEVEL_HOST   },+	{ "subtitle",        "SUBTITLE",            TITLE,      LEVEL_HOST   },+	{ "titleaddon",      "TITLEADDON",          TITLE,      LEVEL_HOST   },+	{ "issuetitle",      "TITLE",               TITLE,      LEVEL_MAIN   },+	{ "issuesubtitle",   "SUBTITLE",            TITLE,      LEVEL_MAIN   },+	{ "issuetitleaddon", "TITLEADDON",          TITLE,      LEVEL_MAIN   },+	{ "series",          "TITLE",               SIMPLE,     LEVEL_SERIES },+	{ "volume",          "VOLUME",              SIMPLE,     LEVEL_MAIN   },+	{ "number",          "NUMBER",              SIMPLE,     LEVEL_MAIN   },+	{ "issue",           "ISSUE",               SIMPLE,     LEVEL_MAIN   },+	{ "date",            "DATE",                SIMPLE,     LEVEL_MAIN   },   /*WRONG*/+	{ "day",             "PARTDAY",             SIMPLE,     LEVEL_MAIN   },+	{ "month",           "PARTMONTH",           SIMPLE,     LEVEL_MAIN   },+	{ "year",            "PARTYEAR",            SIMPLE,     LEVEL_MAIN   },+	{ "pages",           "PAGES",               PAGES,      LEVEL_MAIN   },+	{ "note",            "NOTES",               SIMPLE,     LEVEL_MAIN   },+	{ "annote",          "NOTES",               SIMPLE,     LEVEL_MAIN   },+	{ "annotation",      "ANNOTATION",          SIMPLE,     LEVEL_MAIN   },+	{ "issn",            "ISSN",                SIMPLE,     LEVEL_HOST   },+	{ "addendum",        "ADDENDUM",            SIMPLE,     LEVEL_MAIN   },+	{ "doi",             "DOI",                 SIMPLE,     LEVEL_MAIN   },+	{ "eprint",          "",                    BT_EPRINT,  LEVEL_MAIN   },+	{ "eprinttype",      "",                    BT_EPRINT,  LEVEL_MAIN   },+	{ "url",             "",                    BT_URL,     LEVEL_MAIN   },+	{ "urldate",         "URLDATE",             SIMPLE,     LEVEL_MAIN   },+	{ "urlday",          "?????",               SIMPLE,     LEVEL_MAIN   }, /* WRONG */+	{ "urlmonth",        "?????",               SIMPLE,     LEVEL_MAIN   }, /* WRONG */+	{ "urlyear",         "?????",               SIMPLE,     LEVEL_MAIN   }, /* WRONG */+	{ "address",         "ADDRESS",             SIMPLE,     LEVEL_MAIN   },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   },+	{ "refnum",          "REFNUM",              SIMPLE,     LEVEL_MAIN   },+	{ "",                "ISSUANCE|continuing", ALWAYS,     LEVEL_HOST   },+	{ "",                "RESOURCE|text",       ALWAYS,     LEVEL_MAIN   },+	{ "",                "GENRE|issue",         ALWAYS,     LEVEL_MAIN   },+	{ "",                "GENRE|periodical",    ALWAYS,     LEVEL_HOST   } };  static lookups proceedings[] = {@@ -751,8 +779,8 @@ 	{ "month",           "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "date",            "DATE",         SIMPLE, LEVEL_MAIN },   /*WRONG*/ 	{ "introduction",    "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "foreward",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },-	{ "afterward",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN },+	{ "foreword",        "INTROAUTHOR",  PERSON, LEVEL_MAIN },+	{ "afterword",       "AFTERAUTHOR",  PERSON, LEVEL_MAIN }, 	{ "title",           "TITLE",        TITLE,  LEVEL_MAIN }, 	{ "subtitle",        "SUBTITLE",     TITLE,  LEVEL_MAIN }, 	{ "titleaddon",      "TITLEADDON",   TITLE,  LEVEL_MAIN },@@ -761,6 +789,11 @@ 	{ "maintitleaddon",  "TITLEADDON",   TITLE,  LEVEL_HOST }, 	{ "language",        "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "origlanguage",    "LANGUAGE",     SIMPLE, LEVEL_ORIG },+	{ "origdate",        "DATE",         SIMPLE, LEVEL_ORIG },+	{ "origyear",        "YEAR",         SIMPLE, LEVEL_ORIG },+	{ "origtitle",       "TITLE",        SIMPLE, LEVEL_ORIG },+	{ "origlocation",    "ADDRESS",      SIMPLE, LEVEL_ORIG },+	{ "origpublisher",   "PUBLISHER",    SIMPLE, LEVEL_ORIG }, 	{ "volume",          "VOLUME",       SIMPLE, LEVEL_HOST }, 	{ "part",            "PART",         SIMPLE, LEVEL_HOST }, 	{ "edition",         "EDITION",      SIMPLE, LEVEL_MAIN },@@ -769,7 +802,7 @@ 	{ "number",          "NUMBER",       SIMPLE, LEVEL_MAIN }, 	{ "note",            "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",          "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",      "NOTES",        SIMPLE, LEVEL_MAIN },+	{ "annotation",      "ANNOTATION",   SIMPLE, LEVEL_MAIN }, 	{ "organization",    "ORGANIZER:CORP",SIMPLE, LEVEL_MAIN }, 	{ "publisher",       "PUBLISHER",    SIMPLE, LEVEL_MAIN }, 	{ "location",        "ADDRESS",      SIMPLE, LEVEL_MAIN },@@ -777,16 +810,17 @@ 	{ "chapter",         "CHAPTER",      SIMPLE, LEVEL_MAIN }, 	{ "pages",           "?????????",    SIMPLE, LEVEL_MAIN }, /* WRONG */ 	{ "pagetotal",       "?????????",    SIMPLE, LEVEL_MAIN },-	{ "addendum",        "?????????",    SIMPLE, LEVEL_MAIN },+	{ "addendum",        "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "doi",             "DOI",          SIMPLE, LEVEL_MAIN },-	{ "eprint",          "",       BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",      "",   BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",             "",         BIBTEX_URL, LEVEL_MAIN },+	{ "eprint",          "",       BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",      "",   BT_EPRINT, LEVEL_MAIN },+	{ "url",             "",         BT_URL, LEVEL_MAIN }, 	{ "urldate",         "URLDATE",      SIMPLE, LEVEL_MAIN }, 	{ "urlday",          "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",        "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",         "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "address",         "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",          "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",                "INTERNAL_TYPE|BOOK",    ALWAYS, LEVEL_MAIN },         { "",                "RESOURCE|text",       ALWAYS, LEVEL_MAIN },@@ -801,7 +835,7 @@ 	{ "title",       "TITLE",                TITLE,         LEVEL_MAIN }, 	{ "subtitle",    "SUBTITLE",             TITLE,         LEVEL_MAIN }, 	{ "titleaddon",  "TITLEADDON",           TITLE,         LEVEL_MAIN },-	{ "type",        "GENRE",                BIBTEX_GENRE,  LEVEL_MAIN },+	{ "type",        "GENRE",                BT_GENRE,  LEVEL_MAIN }, 	{ "institution", "SPONSOR:ASIS",         SIMPLE,        LEVEL_MAIN }, 	{ "year",        "YEAR",                 SIMPLE,        LEVEL_MAIN }, 	{ "month",       "MONTH",                SIMPLE,        LEVEL_MAIN },@@ -810,23 +844,24 @@ 	{ "number",      "REPORTNUMBER",         SIMPLE,        LEVEL_MAIN }, 	{ "note",        "NOTES",                SIMPLE,        LEVEL_MAIN }, 	{ "annote",      "NOTES",                SIMPLE,        LEVEL_MAIN },-	{ "annotation",  "NOTES",                SIMPLE,        LEVEL_MAIN },-	{ "version",     "?????????",            SIMPLE,        LEVEL_MAIN },+	{ "annotation",  "ANNOTATION",           SIMPLE,        LEVEL_MAIN },+	{ "version",     "EDITION",              SIMPLE,        LEVEL_MAIN }, 	{ "location",    "ADDRESS",              SIMPLE,        LEVEL_MAIN }, 	{ "isrn",        "ISRN",                 SIMPLE,        LEVEL_MAIN }, 	{ "chapter",     "CHAPTER",              SIMPLE,        LEVEL_MAIN }, 	{ "pages",       "?????????",            SIMPLE,        LEVEL_MAIN }, /* WRONG */ 	{ "pagetotal",   "?????????",            SIMPLE,        LEVEL_MAIN },-	{ "addendum",    "?????????",            SIMPLE,        LEVEL_MAIN },+	{ "addendum",    "ADDENDUM",             SIMPLE,        LEVEL_MAIN }, 	{ "doi",         "DOI",                  SIMPLE,        LEVEL_MAIN },-	{ "eprint",      "",                     BIBTEX_EPRINT, LEVEL_MAIN },-	{ "eprinttype",  "",                     BIBTEX_EPRINT, LEVEL_MAIN },-	{ "url",         "",                     BIBTEX_URL,    LEVEL_MAIN },+	{ "eprint",      "",                     BT_EPRINT, LEVEL_MAIN },+	{ "eprinttype",  "",                     BT_EPRINT, LEVEL_MAIN },+	{ "url",         "",                     BT_URL,    LEVEL_MAIN }, 	{ "urldate",     "URLDATE",              SIMPLE,        LEVEL_MAIN }, 	{ "urlday",      "?????????",            SIMPLE,        LEVEL_MAIN }, 	{ "urlmonth",    "?????????",            SIMPLE,        LEVEL_MAIN }, 	{ "urlyear",     "?????????",            SIMPLE,        LEVEL_MAIN }, 	{ "address",     "ADDRESS",              SIMPLE,        LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",      "REFNUM",               SIMPLE,        LEVEL_MAIN }, 	{ "",            "INTERNAL_TYPE|REPORT", ALWAYS,        LEVEL_MAIN }, 	{ "",            "RESOURCE|text",        ALWAYS,        LEVEL_MAIN },@@ -844,16 +879,17 @@ 	{ "month",        "MONTH",        SIMPLE, LEVEL_MAIN }, 	{ "day",          "DAY",          SIMPLE, LEVEL_MAIN }, 	{ "date",         "DATE",         SIMPLE, LEVEL_MAIN },-	{ "url",          "",         BIBTEX_URL, LEVEL_MAIN },+	{ "url",          "",         BT_URL, LEVEL_MAIN }, 	{ "urlday",       "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlmonth",     "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "urlyear",      "?????????",    SIMPLE, LEVEL_MAIN }, 	{ "language",     "LANGUAGE",     SIMPLE, LEVEL_MAIN }, 	{ "note",         "NOTES",        SIMPLE, LEVEL_MAIN }, 	{ "annote",       "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "annotation",   "NOTES",        SIMPLE, LEVEL_MAIN },-	{ "addendum",     "?????????",    SIMPLE, LEVEL_MAIN },+	{ "annotation",   "ANNOTATION",   SIMPLE, LEVEL_MAIN },+	{ "addendum",     "ADDENDUM",     SIMPLE, LEVEL_MAIN }, 	{ "address",      "ADDRESS",      SIMPLE, LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",       "REFNUM",       SIMPLE, LEVEL_MAIN }, 	{ "",             "INTERNAL_TYPE|BOOK",    ALWAYS, LEVEL_MAIN }, 	{ "",             "RESOURCE|text",ALWAYS, LEVEL_MAIN },@@ -874,7 +910,7 @@ 	{ "school",       "DEGREEGRANTOR:ASIS",   BLT_SCHOOL,      LEVEL_MAIN }, 	{ "doi",          "DOI",                  SIMPLE,          LEVEL_MAIN }, 	{ "howpublished", "",                     HOWPUBLISHED,    LEVEL_MAIN },-	{ "url",          "",                     BIBTEX_URL,      LEVEL_MAIN },+	{ "url",          "",                     BT_URL,      LEVEL_MAIN }, 	{ "urldate",      "URLDATE",              SIMPLE,          LEVEL_MAIN }, 	{ "urlday",       "?urlday?",             SIMPLE,          LEVEL_MAIN }, 	{ "urlmonth",     "?urlmonth?",           SIMPLE,          LEVEL_MAIN },@@ -883,8 +919,9 @@ 	{ "location",     "ADDRESS",              SIMPLE,          LEVEL_MAIN }, 	{ "note",         "NOTES",                SIMPLE,          LEVEL_MAIN }, 	{ "annote",       "NOTES",                SIMPLE,          LEVEL_MAIN },-	{ "annotation",   "NOTES",                SIMPLE,          LEVEL_MAIN },+	{ "annotation",   "ANNOTATION",           SIMPLE,          LEVEL_MAIN }, 	{ "address",      "ADDRESS",              SIMPLE,          LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",       "REFNUM",               SIMPLE,          LEVEL_MAIN }, 	{ "",             "INTERNAL_TYPE|THESIS", ALWAYS,          LEVEL_MAIN }, 	{ "",             "RESOURCE|text",        ALWAYS,          LEVEL_MAIN },@@ -905,7 +942,7 @@ 	{ "school",       "DEGREEGRANTOR:ASIS",   BLT_SCHOOL,      LEVEL_MAIN }, 	{ "doi",          "DOI",                  SIMPLE,          LEVEL_MAIN }, 	{ "howpublished", "",                     HOWPUBLISHED,    LEVEL_MAIN },-	{ "url",          "",                     BIBTEX_URL,      LEVEL_MAIN },+	{ "url",          "",                     BT_URL,      LEVEL_MAIN }, 	{ "urldate",      "URLDATE",              SIMPLE,          LEVEL_MAIN }, 	{ "urlday",       "?urlday?",             SIMPLE,          LEVEL_MAIN }, 	{ "urlmonth",     "?urlmonth?",           SIMPLE,          LEVEL_MAIN },@@ -914,8 +951,9 @@ 	{ "location",     "ADDRESS",              SIMPLE,          LEVEL_MAIN }, 	{ "note",         "NOTES",                SIMPLE,          LEVEL_MAIN }, 	{ "annote",       "NOTES",                SIMPLE,          LEVEL_MAIN },-	{ "annotation",   "NOTES",                SIMPLE,          LEVEL_MAIN },+	{ "annotation",   "ANNOTATION",           SIMPLE,          LEVEL_MAIN }, 	{ "address",      "ADDRESS",              SIMPLE,          LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",       "REFNUM",               SIMPLE,          LEVEL_MAIN }, 	{ "",             "INTERNAL_TYPE|THESIS", ALWAYS,          LEVEL_MAIN }, 	{ "",             "RESOURCE|text",        ALWAYS,          LEVEL_MAIN },@@ -937,7 +975,7 @@ 	{ "school",       "DEGREEGRANTOR:ASIS",    BLT_SCHOOL,      LEVEL_MAIN }, 	{ "doi",          "DOI",                   SIMPLE,          LEVEL_MAIN }, 	{ "howpublished", "",                      HOWPUBLISHED,    LEVEL_MAIN },-	{ "url",          "",                      BIBTEX_URL,      LEVEL_MAIN },+	{ "url",          "",                      BT_URL,      LEVEL_MAIN }, 	{ "urldate",      "URLDATE",               SIMPLE,          LEVEL_MAIN }, 	{ "urlday",       "?urlday?",              SIMPLE,          LEVEL_MAIN }, 	{ "urlmonth",     "?urlmonth?",            SIMPLE,          LEVEL_MAIN },@@ -946,8 +984,9 @@ 	{ "location",     "ADDRESS",               SIMPLE,          LEVEL_MAIN }, 	{ "note",         "NOTES",                 SIMPLE,          LEVEL_MAIN }, 	{ "annote",       "NOTES",                 SIMPLE,          LEVEL_MAIN },-	{ "annotation",   "NOTES",                 SIMPLE,          LEVEL_MAIN },+	{ "annotation",   "ANNOTATION",            SIMPLE,          LEVEL_MAIN }, 	{ "address",      "ADDRESS",               SIMPLE,          LEVEL_MAIN },+	{ "hyphenation",     "LANGCATALOG",            SIMPLE,      LEVEL_MAIN   }, 	{ "refnum",       "REFNUM",                SIMPLE,          LEVEL_MAIN }, 	{ "",             "INTERNAL_TYPE|THESIS",  ALWAYS,          LEVEL_MAIN }, 	{ "",             "RESOURCE|text",         ALWAYS,          LEVEL_MAIN },
+ bibutils/iso639_2.c view
@@ -0,0 +1,645 @@+/*+ * iso639-2 language codes+ */+#include <string.h>+#include "iso639_2.h"++typedef struct {+	char *code1;+	char *code2;+	unsigned char main;+	char *language;+} iso639_2_t;++static iso639_2_t iso639_2[] = {+	{ "abk", "",    1, "Abkhazian" },+	{ "ace", "",    1, "Achenese" },+	{ "ace", "",    1, "Achinese" },+	{ "ach", "",    1, "Acoli" },+	{ "ada", "",    1, "Adangme" },+	{ "ady", "",    1, "Adygei" },+	{ "ady", "",    1, "Adyghe" },+	{ "aar", "",    1, "Afar" },+	{ "afh", "",    1, "Afrihili" },+	{ "afr", "",    1, "Afrikaans" },+	{ "afa", "",    1, "Afroasiatic languages" },+	{ "ain", "",    1, "Ainu" },+	{ "aka", "",    1, "Akan" },+	{ "akk", "",    1, "Akkadian" },+	{ "alb", "sqi", 1, "Albanian" },+	{ "gsw", "",    1, "Alemannic" },+	{ "ale", "",    1, "Aleut" },+	{ "alg", "",    1, "Algonquian languages" },+	{ "gsw", "",    1, "Alsatian" },+	{ "alt", "",    1, "Altai, Southern" },+	{ "tut", "",    1, "Altaic languages" },+	{ "amh", "",    1, "Amharic" },+	{ "egy", "",    1, "Ancient Egyptian" },+	{ "grc", "",    1, "Ancient Greek" },+	{ "anp", "",    1, "Angika" },+	{ "apa", "",    1, "Apache languages" },+	{ "arc", "",    1, "Aramaic, Imperial" },+	{ "arc", "",    1, "Aramaic, Official" },+	{ "arp", "",    1, "Arapaho" },+	{ "arw", "",    1, "Arawak" },+	{ "arg", "",    1, "Argonese" },+	{ "arm", "hye", 1, "Armenian" },+	{ "rup", "",    1, "Aromanian" },+	{ "art", "",    1, "Artificial languages" },+	{ "rup", "",    1, "Arumanian" },+	{ "asm", "",    1, "Assamese" },+	{ "ast", "",    1, "Asturian" },+	{ "ast", "",    1, "Asturleonese" },+	{ "ath", "",    1, "Athabaskan languages" },+	{ "aus", "",    1, "Australian languages" },+	{ "map", "",    1, "Austronesian languages" },+	{ "ava", "",    1, "Avaric" },+	{ "ave", "",    1, "Avestan" },+	{ "awa", "",    1, "Awadhi" },+	{ "aze", "",    1, "Azerbaijani" },+	{ "ast", "",    1, "Bable" },+	{ "ban", "",    1, "Balinese" },+	{ "bat", "",    1, "Baltic languages" },+	{ "bal", "",    1, "Baluchi" },+	{ "bam", "",    1, "Bambara" },+	{ "bai", "",    1, "Bamileke languages" },+	{ "bad", "",    1, "Banda languages" },+	{ "bnt", "",    1, "Bantu languages" },+	{ "bas", "",    1, "Basa" },+	{ "bak", "",    1, "Bashkir" },+	{ "baq", "eus", 1, "Basque" },+	{ "bej", "",    1, "Bedawiyet" },+	{ "bej", "",    1, "Beja" },+	{ "bel", "",    1, "Belarusian" },+	{ "bem", "",    1, "Bemba" },+	{ "ben", "",    1, "Bengali" },+	{ "ber", "",    1, "Berber languages" },+	{ "bho", "",    1, "Bhojpuri" },+	{ "bih", "",    1, "Bihari languages" },+	{ "bik", "",    1, "Bikol" },+	{ "byn", "",    1, "Bilin" },+	{ "bin", "",    1, "Bini" },+	{ "bis", "",    1, "Bislama" },+	{ "bla", "",    1, "Blackfoot" },+	{ "byn", "",    1, "Blin" },+	{ "zbl", "",    1, "Blissymbols" },+	{ "bos", "",    1, "Bosnian" },+	{ "bra", "",    1, "Braj" },+	{ "btk", "",    1, "Bratak languages" },+	{ "bre", "",    1, "Breton" },+	{ "bug", "",    1, "Buginese" },+	{ "bul", "",    1, "Bulgarian" },+	{ "bua", "",    1, "Buriat" },+	{ "bur", "mya", 1, "Burmese" },+	{ "cad", "",    1, "Caddo" },+	{ "spa", "",    0, "Castilian" },+	{ "cat", "",    1, "Catalan" },+	{ "cau", "",    1, "Caucasian languages" },+	{ "ceb", "",    1, "Cebuano" },+	{ "cel", "",    1, "Celtic languages" },+	{ "cai", "",    1, "Central American Indian languages" },+	{ "khm", "",    1, "Central Khmer" },+	{ "chg", "",    1, "Chagatai" },+	{ "cmc", "",    1, "Chamic languages" },+	{ "cha", "",    1, "Chamorro" },+	{ "che", "",    1, "Chechen" },+	{ "chr", "",    1, "Cherokee" },+	{ "nya", "",    1, "Chewa" },+	{ "chy", "",    1, "Cheyenne" },+	{ "chb", "",    1, "Chibcha" },+	{ "nya", "",    1, "Chichewa" },+	{ "chi", "zho", 1, "Chinese" },+	{ "chn", "",    1, "Chinook Jargon" },+	{ "chp", "",    1, "Chipewyan" },+	{ "cho", "",    1, "Choctaw" },+	{ "zha", "",    1, "Chuang" },+	{ "chu", "",    1, "Church Slavic" },+	{ "chu", "",    1, "Church Slavonic" },+	{ "chk", "",    1, "Chuukese" },+	{ "chv", "",    1, "Chuvash" },+	{ "kbd", "",    1, "Circassian" },+	{ "nwc", "",    1, "Classical Nepal Bhasa" },+	{ "nwc", "",    1, "Classical Newari" },+	{ "syc", "",    1, "Classical Syriac" },+	{ "rar", "",    1, "Cook Islands Maori" },+	{ "cop", "",    1, "Coptic" },+	{ "cor", "",    1, "Cornish" },+	{ "cos", "",    1, "Corsican" },+	{ "cre", "",    1, "Cree" },+	{ "mus", "",    1, "Creek" },+	{ "crp", "",    1, "creoles and pidgins" },+	{ "cpe", "",    1, "creoles and pidgins, English-based" },+	{ "cpf", "",    1, "creoles and pidgins, French-based" },+	{ "cpp", "",    1, "creoles and pidgins, Portuguese-based" },+	{ "crh", "",    1, "Crimean Tartar" },+	{ "crh", "",    1, "Crimean Turkish" },+	{ "hrv", "",    1, "Croatian" },+	{ "cus", "",    1, "Cushitic languages" },+	{ "cze", "ces", 1, "Czech" },+	{ "dak", "",    1, "Dakota" },+	{ "dan", "",    1, "Danish" },+	{ "dar", "",    1, "Dargwa" },+	{ "del", "",    1, "Delaware" },+	{ "chp", "",    1, "Dene Suline" },+	{ "div", "",    1, "Dhivehi" },+	{ "din", "",    1, "Dinka" },+	{ "div", "",    1, "Divehi" },+	{ "doi", "",    1, "Dogri" },+	{ "dgr", "",    1, "Dogrib" },+	{ "dra", "",    1, "Dravidian languages" },+	{ "dua", "",    1, "Duala" },+	{ "dut", "",    1, "Dutch" },+	{ "dum", "",    1, "Dutch, Middle" },+	{ "dyu", "",    1, "Dyula" },+	{ "dzo", "",    1, "Dzongkha" },+	{ "frs", "",    1, "Eastern Frisian" },+	{ "bin", "",    1, "Edo" },+	{ "efi", "",    1, "Efik" },+	{ "egy", "",    1, "Egyptian (Ancient)" },+	{ "eka", "",    1, "Ekajuk" },+	{ "elx", "",    1, "Elamite" },+	{ "eng", "",    1, "English" },+	{ "enm", "",    0, "English, Middle" },+	{ "ang", "",    0, "English, Old" },+	{ "myv", "",    1, "Erzya" },+	{ "epo", "",    1, "Esperanto" },+	{ "est", "",    1, "Estonian" },+	{ "ewe", "",    1, "Ewe" },+	{ "ewo", "",    1, "Ewondo" },+	{ "fan", "",    1, "Fang" },+	{ "fat", "",    1, "Fanti" },+	{ "fao", "",    1, "Faroese" },+	{ "fij", "",    1, "Fijian" },+	{ "fil", "",    1, "Filipino" },+	{ "fin", "",    1, "Finnish" },+	{ "fiu", "",    1, "Finno-Ugric languages" },+	{ "dut", "",    1, "Flemish" },+	{ "fon", "",    1, "Fon" },+	{ "fre", "fra", 1, "French" },+	{ "frm", "",    0, "French, Middle" },+	{ "fro", "",    0, "French, Old" },+	{ "frs", "",    1, "Frisian, Eastern" },+	{ "frr", "",    1, "Frisian, Northern" },+	{ "fry", "",    1, "Frisian, Western" },+	{ "fur", "",    1, "Friulian" },+	{ "ful", "",    1, "Fulah" },+	{ "gaa", "",    1, "Ga" },+	{ "gla", "",    1, "Gaelic" },+	{ "car", "",    1, "Galibi Carib" },+	{ "lug", "",    1, "Ganda" },+	{ "gay", "",    1, "Gayo" },+	{ "gba", "",    1, "Gbaya" },+	{ "gez", "",    1, "Ge'ez" },+	{ "geo", "kat", 1, "Georgian" },+	{ "ger", "deu", 1, "German" },+	{ "nds", "",    1, "German, Low" },+	{ "gmh", "",    1, "German, Middle High" },+	{ "goh", "",    1, "German, Old High" },+	{ "gem", "",    1, "Germanic languages" },+	{ "kik", "",    1, "Gikuyu" },+	{ "gil", "",    1, "Gilbertese" },+	{ "gon", "",    1, "Gondi" },+	{ "gor", "",    1, "Gorontalo" },+	{ "got", "",    1, "Gothic" },+	{ "grb", "",    1, "Grebo" },+	{ "grc", "",    1, "Greek, Ancient" },+	{ "gre", "ell", 1, "Greek, Modern" },+	{ "kal", "",    1, "Greenlandic" },+	{ "grn", "",    1, "Guarani" },+	{ "guj", "",    1, "Gujarati" },+	{ "gwi", "",    1, "Gwich'in" },+	{ "hai", "",    1, "Haida" },+	{ "hat", "",    1, "Haitian" },+	{ "hat", "",    1, "Haitian Creole" },+	{ "hau", "",    1, "Hausa" },+	{ "haw", "",    1, "Hawaiian" },+	{ "heb", "",    1, "Hebrew" },+	{ "hil", "",    1, "Hiligaynon" },+	{ "him", "",    1, "Himachali languages" },+	{ "hin", "",    1, "Hindi" },+	{ "hmo", "",    1, "Hiri Motu" },+	{ "hit", "",    1, "Hittite" },+	{ "hmn", "",    1, "Hmong" },+	{ "hun", "",    1, "Hungarian" },+	{ "hup", "",    1, "Hupa" },+	{ "iba", "",    1, "Iban" },+	{ "ice", "isl", 1, "Icelandic" },+	{ "ido", "",    1, "Ido" },+	{ "ibo", "",    1, "Igbo" },+	{ "ijo", "",    1, "Ijo languages" },+	{ "ilo", "",    1, "Iloko" },+	{ "arc", "",    1, "Imperial Aramaic" },+	{ "smn", "",    1, "Inari Sami" },+	{ "inc", "",    1, "Indic languages" },+	{ "ine", "",    1, "Indo-European languages" },+	{ "ind", "",    1, "Indonesian" },+	{ "inh", "",    1, "Ingush" },+	{ "ina", "",    1, "Interlingua" },+	{ "ile", "",    1, "Interlingue, Occidental" },+	{ "iku", "",    1, "Inuktitut" },+	{ "ipk", "",    1, "Inupiaq" },+	{ "ira", "",    1, "Iranian languages" },+	{ "mga", "",    1, "Irish, Middle" },+	{ "sga", "",    1, "Irish, Old" },+	{ "iro", "",    1, "Iroquoian languages" },+	{ "ita", "",    1, "Italian" },+	{ "jpn", "",    1, "Japanese" },+	{ "jav", "",    1, "Javanese" },+	{ "kac", "",    1, "Jingpho" },+	{ "jrb", "",    1, "Judaeo-Arabic" },+	{ "jpr", "",    1, "Judaeo-Persian" },+	{ "kab", "",    1, "Kabyle" },+	{ "kac", "",    1, "Kachin" },+	{ "kal", "",    1, "Kalaallisut" },+	{ "xal", "",    1, "Kalmyk" },+	{ "kam", "",    1, "Kamba" },+	{ "kan", "",    1, "Kannada" },+	{ "kau", "",    1, "Kanuri" },+	{ "pam", "",    1, "Kapampangan" },+	{ "kaa", "",    1, "Kara-Kalpak" },+	{ "krc", "",    1, "Karachay-Balkar" },+	{ "krl", "",    1, "Karelian" },+	{ "kar", "",    1, "Karen languages" },+	{ "kas", "",    1, "Kashmiri" },+	{ "csb", "",    1, "Kashubian" },+	{ "kaw", "",    1, "Kawi" },+	{ "kaz", "",    1, "Kazakh" },+	{ "kha", "",    1, "Khasi" },+	{ "khi", "",    1, "Khoisan languages" },+	{ "kho", "",    1, "Khotanese" },+	{ "kik", "",    1, "Kikuyu" },+	{ "kmb", "",    1, "Kimbundu" },+	{ "kin", "",    1, "Kinyarwanda" },+	{ "kir", "",    1, "Kirghiz" },+	{ "gil", "",    1, "Kiribati" },+	{ "tlh", "",    1, "Klingon" },+	{ "kom", "",    1, "Komi" },+	{ "kon", "",    1, "Kongo" },+	{ "kok", "",    1, "Konkani" },+	{ "kor", "",    1, "Korean" },+	{ "kos", "",    1, "Kosraean" },+	{ "kpe", "",    1, "Kpelle" },+	{ "kro", "",    1, "Kru languages" },+	{ "kua", "",    1, "Kuanyama" },+	{ "kum", "",    1, "Kumyk" },+	{ "kur", "",    1, "Kurdish" },+	{ "kru", "",    1, "Kurukh" },+	{ "kut", "",    1, "Kutenai" },+	{ "kua", "",    1, "Kwanyama" },+	{ "kir", "",    1, "Kyrgyz" },+	{ "lad", "",    1, "Ladino" },+	{ "lah", "",    1, "Lahnda" },+	{ "lam", "",    1, "Lamba" },+	{ "day", "",    1, "Land Dayak languages" },+	{ "lao", "",    1, "Lao" },+	{ "lat", "",    1, "Latin" },+	{ "lav", "",    1, "Latvian" },+	{ "ast", "",    1, "Leonese" },+	{ "ltz", "",    1, "Letzeburgesch" },+	{ "lez", "",    1, "Lezghian" },+	{ "lim", "",    1, "Limburgan" },+	{ "lim", "",    1, "Limburger" },+	{ "lim", "",    1, "Limburgish" },+	{ "lin", "",    1, "Lingala" },+	{ "lit", "",    1, "Lithuanian" },+	{ "jbo", "",    1, "Lojban" },+	{ "nds", "",    1, "Low German" },+	{ "nds", "",    1, "Low Saxon" },+	{ "dsb", "",    1, "Lower Sorbian" },+	{ "loz", "",    1, "Lozi" },+	{ "lub", "",    1, "Luba-Katanga" },+	{ "lua", "",    1, "Luba-Lulua" },+	{ "lui", "",    1, "Luiseno" },+	{ "smj", "",    1, "Lule Sami" },+	{ "lun", "",    1, "Lunda" },+	{ "luo", "",    1, "Luo" },+	{ "luo", "",    1, "Luo (Kenya and Tanzania)" },+	{ "lus", "",    1, "Lushai" },+	{ "ltz", "",    1, "Luxembourgish" },+	{ "mas", "",    1, "Maasai" },+	{ "rup", "",    1, "Macedo-Romanian" },+	{ "mac", "mkd", 1, "Macedonian" },+	{ "mad", "",    1, "Madurese" },+	{ "mag", "",    1, "Magahi" },+	{ "mai", "",    1, "Maithili" },+	{ "mak", "",    1, "Makasar" },+	{ "mlg", "",    1, "Malagasy" },+	{ "may", "msa", 1, "Malay" },+	{ "mal", "",    1, "Malayalam" },+	{ "div", "",    1, "Maldivian" },+	{ "mlt", "",    1, "Maltese" },+	{ "mnc", "",    1, "Manchu" },+	{ "mdr", "",    1, "Mandar" },+	{ "man", "",    1, "Mandingo" },+	{ "mni", "",    1, "Manipuri" },+	{ "mno", "",    1, "Manobo languages" },+	{ "glv", "",    1, "Manx" },+	{ "mao", "mri", 1, "Maori" },+	{ "arn", "",    1, "Mapuche" },+	{ "arn", "",    1, "Mapudungun" },+	{ "mar", "",    1, "Marathi" },+	{ "chm", "",    1, "Mari" },+	{ "mah", "",    1, "Marshallese" },+	{ "mwr", "",    1, "Marwari" },+	{ "myn", "",    1, "Mayan languages" },+	{ "men", "",    1, "Mende" },+	{ "mic", "",    1, "Mi'kmaq" },+	{ "mic", "",    1, "Micmac" },+	{ "dum", "",    1, "Middle Dutch" },+	{ "enm", "",    1, "Middle English" },+	{ "frm", "",    1, "Middle French" },+	{ "gmh", "",    1, "Middle High German" },+	{ "mga", "",    1, "Middle Irish" },+	{ "pal", "",    1, "Middle Persian" },+	{ "min", "",    1, "Minangkabau" },+	{ "mwl", "",    1, "Mirandese" },+	{ "gre", "ell", 1, "Modern Greek" },+	{ "moh", "",    1, "Mohawk" },+	{ "mdf", "",    1, "Moksha" },+	{ "mkh", "",    1, "Mon-Khmer languages" },+	{ "lol", "",    1, "Mongo" },+	{ "mon", "",    1, "Mongolian" },+	{ "mos", "",    1, "Mossi" },+	{ "mul", "",    1, "Multiple languages" },+	{ "mun", "",    1, "Munda languages" },+	{ "nqo", "",    1, "N'Ko" },+	{ "nah", "",    1, "Nahuatl" },+	{ "nau", "",    1, "Nauruan" },+	{ "nav", "",    1, "Navaho" },+	{ "nav", "",    1, "Navajo" },+	{ "ndo", "",    1, "Ndonga" },+	{ "nap", "",    1, "Neapolitan" },+	{ "new", "",    1, "Nepal Bhasa" },+	{ "nep", "",    1, "Nepali" },+	{ "new", "",    1, "Newari" },+	{ "nia", "",    1, "Nias" },+	{ "nic", "",    1, "Niger-Congo languages" },+	{ "ssa", "",    1, "Nilo-Saharan languages" },+	{ "niu", "",    1, "Niuean" },+	{ "nog", "",    1, "Nogai" },+	{ "non", "",    0, "Norse, Old" },+	{ "nai", "",    1, "North American Indian languages" },+	{ "frr", "",    1, "Northern Frisian" },+	{ "nde", "",    1, "Northern Ndebele" },+	{ "sme", "",    1, "Northern Sami" },+	{ "nso", "",    1, "Northern Sotho" },+	{ "nob", "",    1, "Norwegian Bokmaal" },+	{ "nno", "",    1, "Norwegian Nynorsk" },+	{ "zxx", "",    1, "Not linguistic content; not applicable" },+	{ "nub", "",    1, "Nubian languages" },+	{ "iii", "",    1, "Nuosu" },+	{ "nym", "",    1, "Nyamwezi" },+	{ "nya", "",    1, "Nyanja" },+	{ "nyn", "",    1, "Nyankole" },+	{ "nyr", "",    1, "Nyoro" },+	{ "nzi", "",    1, "Nzima" },+	{ "oci", "",    1, "Occitan" },+	{ "pro", "",    0, "Occitan, Old" },+	{ "arc", "",    1, "Official Aramaic" },+	{ "xal", "",    1, "Oirat" },+	{ "oji", "",    1, "Ojibwa" },+	{ "chu", "",    1, "Old Bulgarian" },+	{ "chu", "",    1, "Old Church Slavonic" },+	{ "ang", "",    1, "Old English" },+	{ "fro", "",    1, "Old French" },+	{ "goh", "",    1, "Old High German" },+	{ "sga", "",    1, "Old Irish" },+	{ "nwc", "",    1, "Old Newari" },+	{ "non", "",    1, "Old Norse" },+	{ "pro", "",    1, "Old Occitan" },+	{ "peo", "",    1, "Old Persian" },+	{ "pro", "",    1, "Old Provencal" },+	{ "chu", "",    1, "Old Slavonic" },+	{ "ori", "",    1, "Oriya" },+	{ "orm", "",    1, "Oromo" },+	{ "osa", "",    1, "Osage" },+	{ "oss", "",    1, "Ossetian" },+	{ "oss", "",    1, "Ossetic" },+	{ "oto", "",    1, "Otomian languages" },+	{ "ota", "",    1, "Ottoman Turkish" },+	{ "pal", "",    1, "Pahlavi" },+	{ "pau", "",    1, "Palauan" },+	{ "pli", "",    1, "Pali" },+	{ "pam", "",    1, "Pampanga" },+	{ "pag", "",    1, "Pangasinan" },+	{ "pan", "",    1, "Panjabi" },+	{ "pap", "",    1, "Papiamento" },+	{ "paa", "",    1, "Papuan languages" },+	{ "pus", "",    1, "Pashto" },+	{ "pus", "",    1, "Pashto language" },+	{ "nso", "",    1, "Pedi" },+	{ "per", "fas", 1, "Persian" },+	{ "pal", "",    0, "Persian, Middle" },+	{ "peo", "",    0, "Persian, Old" },+	{ "phi", "",    1, "Philippine languages" },+	{ "phn", "",    1, "Phoenician" },+	{ "fil", "",    0, "Pilipino" },+	{ "pon", "",    1, "Pohnpeian" },+	{ "pol", "",    1, "Polish" },+	{ "por", "",    1, "Portuguese" },+	{ "pra", "",    1, "Prakit" },+	{ "pro", "",    0, "Provencal, Old" },+	{ "pan", "",    1, "Punjabi" },+	{ "que", "",    1, "Quechua" },+	{ "raj", "",    1, "Rajasthani" },+	{ "rap", "",    1, "Rapanui" },+	{ "rar", "",    1, "Rarotongan" },+	{ "roa", "",    1, "Romance languages" },+	{ "rum", "ron", 1, "Romanian" },+	{ "roh", "",    1, "Romansh" },	+	{ "rom", "",    1, "Romany" },+	{ "run", "",    1, "Rundi" },+	{ "rus", "",    1, "Russian" },+	{ "kho", "",    1, "Sakan" },+	{ "sal", "",    1, "Salishan languages" },+	{ "sam", "",    1, "Samaritan Aramaic" },+	{ "smi", "",    1, "Sami languages" },+	{ "smo", "",    1, "Samoan" },+	{ "sad", "",    1, "Sandawe" },+	{ "sag", "",    1, "Sango" },+	{ "san", "",    1, "Sanskrit" },+	{ "sat", "",    1, "Santali" },+	{ "srd", "",    1, "Sardinian" },+	{ "sas", "",    1, "Sasak" },+	{ "nds", "",    1, "Saxon, Low" },+	{ "sco", "",    1, "Scots" },+	{ "gla", "",    1, "Scottish Gaelic" },+	{ "sel", "",    1, "Selkup" },+	{ "sem", "",    1, "Semitic languages" },+	{ "nso", "",    1, "Sepedi" },+	{ "srp", "",    1, "Serbian" },+	{ "srr", "",    1, "Serer" },+	{ "shn", "",    1, "Shan" },+	{ "sna", "",    1, "Shona" },+	{ "iii", "",    1, "Sichuan Yi" },+	{ "scn", "",    1, "Sicilian" },+	{ "sid", "",    1, "Sidamo" },+	{ "sgn", "",    1, "Sign languages" },+	{ "bla", "",    1, "Siksika" },+	{ "snd", "",    1, "Sindhi" },+	{ "sin", "",    1, "Sinhala" },+	{ "sin", "",    1, "Sinhalese" },+	{ "sit", "",    1, "Sino-Tibetan languages" },+	{ "sio", "",    1, "Siouan languages" },+	{ "sms", "",    1, "Skolt Sami" },+	{ "den", "",    1, "Slave (Athapascan)" },+	{ "sla", "",    1, "Slavic languages" },+	{ "slo", "slk", 1, "Slovak" },+	{ "slv", "",    1, "Slovenian" },+	{ "sog", "",    1, "Sogdian" },+	{ "som", "",    1, "Somali" },+	{ "son", "",    1, "Songhay languages" },+	{ "snk", "",    1, "Soninke" },+	{ "wen", "",    1, "Sorbian languages" },+	{ "dsb", "",    1, "Sorbian, Lower" },+	{ "hsb", "",    1, "Sorbian, Upper" },+	{ "sai", "",    1, "South American Indian languages" },+	{ "alt", "",    1, "Southern Altai" },+	{ "nbl", "",    1, "Southern Ndebele" },+	{ "sma", "",    1, "Southern Sami" },+	{ "sot", "",    1, "Southern Sotho" },+	{ "spa", "",    1, "Spanish" },+	{ "srn", "",    1, "Sranan Tongo" },+	{ "zgh", "",    1, "Standard Moroccan Tamazight" },+	{ "suk", "",    1, "Sukuma" },+	{ "sux", "",    1, "Sumerian" },+	{ "sun", "",    1, "Sundanese" },+	{ "sus", "",    1, "Susu" },+	{ "swa", "",    1, "Swahili" },+	{ "ssw", "",    1, "Swati" },+	{ "swe", "",    1, "Swedish" },+	{ "gsw", "",    1, "Swiss German" },+	{ "syr", "",    1, "Syriac" },+	{ "tgl", "",    1, "Tagalog" },+	{ "tah", "",    1, "Tahitian" },+	{ "tai", "",    1, "Tai languages" },+	{ "tgk", "",    1, "Tajik" },+	{ "tmh", "",    1, "Tamashek" },+	{ "tam", "",    1, "Tamil" },+	{ "tat", "",    1, "Tatar" },+	{ "tel", "",    1, "Telugu" },+	{ "ter", "",    1, "Tereno" },+	{ "tet", "",    1, "Tetum" },+	{ "tha", "",    1, "Thai" },+	{ "tib", "bod", 1, "Tibetan" },+	{ "tig", "",    1, "Tigre" },+	{ "tir", "",    1, "Tigrinya" },+	{ "tem", "",    1, "Time" },+	{ "tiv", "",    1, "Tiv" },+	{ "tli", "",    1, "Tlingit" },+	{ "tpi", "",    1, "Tok Pisin" },+	{ "tkl", "",    1, "Tokelau" },+	{ "tog", "",    1, "Tonga (Nyasa)" },+	{ "ton", "",    1, "Tonga (Tonga Islands)" },+	{ "tsi", "",    1, "Tsimshian" },+	{ "tso", "",    1, "Tsonga" },+	{ "tsn", "",    1, "Tswana" },+	{ "tum", "",    1, "Tumbuka" },+	{ "tup", "",    1, "Tupian languages" },+	{ "tur", "",    1, "Turkish" },+	{ "ota", "",    1, "Turkish, Ottoman" },+	{ "tuk", "",    1, "Turkmen" },+	{ "tvl", "",    1, "Tuvalu" },+	{ "tyv", "",    1, "Tuvinian" },+	{ "twi", "",    1, "Twi" },+	{ "udm", "",    1, "Udmurt" },+	{ "uga", "",    1, "Ugaritic" },+	{ "uig", "",    1, "Uighur" },+	{ "ukr", "",    1, "Ukranian" },+	{ "umb", "",    1, "Umbundu" },+	{ "mis", "",    1, "Uncoded languages" },+	{ "und", "",    1, "Undetermined language" },+	{ "hsb", "",    1, "Upper Sorbian" },+	{ "urd", "",    1, "Urdu" },+	{ "uig", "",    1, "Uyghur" },+	{ "uzb", "",    1, "Uzbek" },+	{ "vai", "",    1, "Vai" },+	{ "cat", "",    1, "Valencian" },+	{ "ven", "",    1, "Venda" },+	{ "vie", "",    1, "Vietnamese" },+	{ "vol", "",    1, "Volapuk" },+	{ "vot", "",    1, "Voltic" },+	{ "wak", "",    1, "Wakashan languages" },+	{ "wln", "",    1, "Walloon" },+	{ "war", "",    1, "Waray-Waray" },+	{ "was", "",    1, "Washo" },+	{ "wel", "cym", 1, "Welsh" },+	{ "fry", "",    1, "Western Frisian" },+	{ "wal", "",    1, "Wolaitta" },+	{ "wal", "",    1, "Wolaytta" },+	{ "wol", "",    1, "Wolof" },+	{ "xho", "",    1, "Xhosa" },+	{ "sah", "",    1, "Yakut" },+	{ "yao", "",    1, "Yao" },+	{ "yap", "",    1, "Yapese" },+	{ "yid", "",    1, "Yidish" },+	{ "yor", "",    1, "Yoruba" },+	{ "ypk", "",    1, "Yupik languages" },+	{ "znd", "",    1, "Zande languages" },+	{ "zap", "",    1, "Zapotec" },+	{ "zza", "",    1, "Zaza" },+	{ "zza", "",    1, "Zazaki" },+	{ "zen", "",    1, "Zenaga" },+	{ "zha", "",    1, "Zhuang" },+	{ "zul", "",    1, "Zulu" },+	{ "zun", "",    1, "Zuni" },+};+static int niso639_2= sizeof( iso639_2 ) / sizeof( iso639_2[0] );++char *+iso639_2_from_code( char *code )+{+	int i;+	for ( i=0; i<niso639_2; ++i ) {+		if ( !iso639_2[i].main ) continue;+		if ( !strcasecmp( iso639_2[i].code1, code ) )+			return iso639_2[i].language;+		if ( iso639_2[i].code2[0]!='\0' && !strcasecmp( iso639_2[i].code2, code ) )+			return iso639_2[i].language;+	}+	return NULL;+}++char *+iso639_2_from_language( char *lang )+{+	int i, n;+	for ( i=0; i<niso639_2; ++i ) {+		n = strcasecmp( iso639_2[i].language, lang );+		if ( n==0 ) return iso639_2[i].code1;+		if ( n > 0 ) return NULL;+	}+	return NULL;+}++#ifdef TEST++#include <stdio.h>+#include <stdlib.h>++static int+check_alphabetical( void )+{+	char *l1, *l2;+	int i, ret = 1;+	l1 = iso639_2[0].language;+	for ( i=0; i<niso639_2-1; ++i ) {+		l2 = iso639_2[i+1].language;+		if ( strcasecmp( l1, l2 ) >= 0 ) {+			fprintf( stderr, "Swap '%s' and '%s'\n", l1, l2 );+			ret = 0;+		}+		l1 = l2;+	}+	return ret;+}++int+main( int argc, char *argv[] )+{+	int ok;+	ok = check_alphabetical();+	return EXIT_SUCCESS;+}++#endif
+ bibutils/iso639_2.h view
@@ -0,0 +1,10 @@+/*+ * iso639-2 language codes+ */+#ifndef ISO639_2_H+#define ISO639_2_H++extern char * iso639_2_from_code( char *code );+extern char * iso639_2_from_language( char *lang );++#endif
bibutils/medin.c view
@@ -15,6 +15,7 @@ #include "xml.h" #include "xml_encoding.h" #include "medin.h"+#include "iso639_2.h" #include "bibutils.h"  void@@ -206,7 +207,20 @@ 	newstr_free( &tmp ); } -+/* <Langauge>eng</Language>+ */+static int+medin_language( xml *node, fields *info, int level )+{+	char *code, *language;+	int ok;+	code = xml_data( node );+	if ( !code ) return 1;+	language = iso639_2_from_code( code );+	if ( language ) ok = fields_add( info, "LANGUAGE", language, level );+	else ok = fields_add( info, "LANGUAGE", code, level );+	return ok;+}  /* <Journal>  *    <ISSN>0027-8424</ISSN>@@ -248,12 +262,13 @@ 		{ "Year",            NULL, NULL, "PARTYEAR",   1 }, 		{ "Month",           NULL, NULL, "PARTMONTH",  1 }, 		{ "Day",             NULL, NULL, "PARTDAY",    1 },-		{ "Language",        NULL, NULL, "LANGUAGE",   1 }, 	}; 	int nc = sizeof( c ) / sizeof( c[0] );; 	if ( xml_hasdata( node ) && !medin_doconvert( node, info, c, nc ) ) { 		if ( xml_tagexact( node, "MedlineDate" ) ) 			medin_medlinedate( info, xml_data( node ), 1 );+		if ( xml_tagexact( node, "Language" ) )+			medin_language( node, info, 1 ); 	} 	if ( node->down ) medin_journal1( node->down, info ); 	if ( node->next ) medin_journal1( node->next, info );@@ -463,6 +478,8 @@ 		medin_abstract( node->down, info ); 	else if ( xml_tagexact( node, "AuthorList" ) ) 		medin_authorlist( node, info );+	else if ( xml_tagexact( node, "Language" ) )+		medin_language( node, info, 0 ); 	else if ( xml_tagexact( node, "Affiliation" ) ) 		fields_add( info, "ADDRESS", xml_data( node ), 0 ); 	if ( node->next ) medin_article( node->next, info );
bibutils/modsin.c view
@@ -472,10 +472,24 @@ }  static void+modsin_languager( xml *node, fields *info, int level )+{+	if ( xml_tag_attrib( node, "languageTerm", "type", "text" ) ) {+		if ( node->value && node->value->len )+			fields_add( info, "LANGUAGE", node->value->data, level );+	}+	if ( node->next ) modsin_languager( node->next, info, level );+}++static void modsin_language( xml *node, fields *info, int level ) {+	/* Old versions of MODS had <language>English</language> */ 	if ( node->value && node->value->len ) 		fields_add( info, "LANGUAGE", node->value->data, level );++	/* New versions of MODS have <language><languageTerm>English</languageTerm></language> */+	if ( node->down ) modsin_languager( node->down, info, level ); }  static void
bibutils/modsout.c view
@@ -13,6 +13,7 @@ #include "newstr.h" #include "newstr_conv.h" #include "fields.h"+#include "iso639_2.h" #include "utf8.h" #include "modsout.h" #include "modstypes.h"@@ -82,6 +83,15 @@ }  static void+output_tab6( FILE *outptr, int level, char *tag, char *aname, char *avalue,+		char *bname, char *bvalue, char *data, int cr )+{+	output_tab0( outptr, level );+	fprintf( outptr, "<%s %s=\"%s\" %s=\"%s\">%s</%s>", tag,aname,avalue,bname,bvalue,data,tag);+	if ( cr ) fprintf( outptr, "\n" );+}++static void output_fill2( FILE *outptr, int level, char *tag, fields *f, int n, int cr ) { 	char *value;@@ -229,39 +239,35 @@ { 	convert   names[] = { 	  { "author",                              "AUTHOR",          MARC_AUTHORITY },-	  { "writer",                              "WRITER",          MARC_AUTHORITY },-	  { "artist",                              "ARTIST",          MARC_AUTHORITY },-	  { "cartographer",                        "CARTOGRAPHER",    MARC_AUTHORITY },-	  { "commentator",                         "COMMENTATOR",     NO_AUTHORITY   },-	  { "degree grantor",                      "DEGREEGRANTOR",   MARC_AUTHORITY },-	  { "director",                            "DIRECTOR",        MARC_AUTHORITY }, 	  { "editor",                              "EDITOR",          MARC_AUTHORITY },-	  { "inventor",                            "INVENTOR",        MARC_AUTHORITY },-	  { "organizer of meeting",                "ORGANIZER",       MARC_AUTHORITY },-	  { "patent holder",                       "ASSIGNEE",        MARC_AUTHORITY },-	  { "performer",                           "PERFORMER",       MARC_AUTHORITY },-	  { "recipient",                           "RECIPIENT",       MARC_AUTHORITY },-	  { "redactor",                            "REDACTOR",        NO_AUTHORITY   },-	  { "reporter",                            "REPORTER",        NO_AUTHORITY   },-	  { "translator",                          "TRANSLATOR",      MARC_AUTHORITY },-	  { "event",                               "EVENT",           NO_AUTHORITY   },-	  { "sponsor",                             "SPONSOR",         MARC_AUTHORITY },+	  { "annotator",                           "ANNOTATOR",       MARC_AUTHORITY },+	  { "artist",                              "ARTIST",          MARC_AUTHORITY }, 	  { "author",                              "2ND_AUTHOR",      MARC_AUTHORITY }, 	  { "author",                              "3RD_AUTHOR",      MARC_AUTHORITY }, 	  { "author",                              "SUB_AUTHOR",      MARC_AUTHORITY }, 	  { "author",                              "COMMITTEE",       MARC_AUTHORITY }, 	  { "author",                              "COURT",           MARC_AUTHORITY }, 	  { "author",                              "LEGISLATIVEBODY", MARC_AUTHORITY },-	  { "annotator",                           "ANNOTATOR",       MARC_AUTHORITY },-	  { "commentator",                         "COMMENTATOR",     MARC_AUTHORITY },-	  { "author of introduction, etc.",        "INTROAUTHOR",     MARC_AUTHORITY }, 	  { "author of afterword, colophon, etc.", "AFTERAUTHOR",     MARC_AUTHORITY },-	  { "compiler",                            "COMPILER",        MARC_AUTHORITY },+	  { "author of introduction, etc.",        "INTROAUTHOR",     MARC_AUTHORITY },+	  { "cartographer",                        "CARTOGRAPHER",    MARC_AUTHORITY }, 	  { "collaborator",                        "COLLABORATOR",    MARC_AUTHORITY },-	  { "redactor",                            "REDACTOR",        MARC_AUTHORITY },+	  { "commentator",                         "COMMENTATOR",     MARC_AUTHORITY },+	  { "compiler",                            "COMPILER",        MARC_AUTHORITY },+	  { "degree grantor",                      "DEGREEGRANTOR",   MARC_AUTHORITY }, 	  { "director",                            "DIRECTOR",        MARC_AUTHORITY },-	  { "producer",                            "PRODUCER",        MARC_AUTHORITY },+	  { "event",                               "EVENT",           NO_AUTHORITY   },+	  { "inventor",                            "INVENTOR",        MARC_AUTHORITY },+	  { "organizer of meeting",                "ORGANIZER",       MARC_AUTHORITY },+	  { "patent holder",                       "ASSIGNEE",        MARC_AUTHORITY }, 	  { "performer",                           "PERFORMER",       MARC_AUTHORITY },+	  { "producer",                            "PRODUCER",        MARC_AUTHORITY },+	  { "recipient",                           "RECIPIENT",       MARC_AUTHORITY },+	  { "redactor",                            "REDACTOR",        MARC_AUTHORITY },+	  { "reporter",                            "REPORTER",        MARC_AUTHORITY },+	  { "sponsor",                             "SPONSOR",         MARC_AUTHORITY },+	  { "translator",                          "TRANSLATOR",      MARC_AUTHORITY },+	  { "writer",                              "WRITER",          MARC_AUTHORITY }, 	}; 	int i, n, nfields, ntypes = sizeof( names ) / sizeof( convert ); 	int f_asis, f_corp, f_conf;@@ -416,17 +422,36 @@ }  static void+output_language_core( fields *f, int n, FILE *outptr, int level )+{+	char *lang, *code;+	lang = fields_value( f, n, FIELDS_CHRP );+	code = iso639_2_from_language( lang );+	output_tab1( outptr, level, "<language>\n" );+	output_fill4( outptr, increment_level(level,1),+		"languageTerm", "type", "text", f, n, 1 );+	if ( code ) {+		output_tab6( outptr, increment_level(level,1),+			"languageTerm", "type", "code", "authority", "iso639-2b",+			code, 1 );+	}+	output_tab1( outptr, level, "</language>\n" );+}++static void output_language( fields *f, FILE *outptr, int level ) {-	int n = fields_find( f, "LANGUAGE", level );-	output_fill2( outptr, level, "language", f, n, 1 );+	int n;+	n = fields_find( f, "LANGUAGE", level );+	if ( n!=-1 )+		output_language_core( f, n, outptr, level ); }  static void output_description( fields *f, FILE *outptr, int level ) { 	int n = fields_find( f, "DESCRIPTION", level );-	if (n != -1) {+	if ( n!=-1 ) { 		output_tab1( outptr, level, "<physicalDescription>\n" ); 		output_fill2( outptr, increment_level(level,1), "note", f, n, 1 ); 		output_tab1( outptr, level, "</physicalDescription>\n" );@@ -613,6 +638,20 @@ }  static void+output_recordInfo( fields *f, FILE *outptr, int level )+{+	int n;+	n = fields_find( f, "LANGCATALOG", level );+	if ( n!=-1 ) {+		output_tab1( outptr, level, "<recordInfo>\n" );+		output_tab1( outptr, increment_level(level,1), "<languageOfCataloging>\n" );+		output_language_core( f, n, outptr, increment_level(level,2) );+		output_tab1( outptr, increment_level(level,1), "</languageOfCataloging>\n" );+		output_tab1( outptr, level, "</recordInfo>\n" );+	}+}++static void output_genre( fields *f, FILE *outptr, int level ) { 	int i, ismarc, n;@@ -678,29 +717,31 @@ }  static void+output_annotation( fields *f, FILE *outptr, int level )+{+	int n = fields_find( f, "ANNOTATION", level );+	output_fill4( outptr, level, "note", "type", "annotation", f, n, 1 );+}++static void+output_addendum( fields *f, FILE *outptr, int level )+{+	int n = fields_find( f, "ADDENDUM", level );+	output_fill4( outptr, level, "note", "type", "addendum", f, n, 1 );+}++static void output_timescited( fields *f, FILE *outptr, int level ) { 	int n = fields_find( f, "TIMESCITED", level );-	char *value;-	if ( n!=-1 ) {-		value = fields_value( f, n, FIELDS_CHRP );-		output_tab0( outptr, level );-		fprintf( outptr, "<note>Times Cited: %s</note>\n", value );-		fields_setused( f, n );-	}+	output_fill4( outptr, level, "note", "type", "times cited", f, n, 1 ); }  static void output_indexkey( fields *f, FILE *outptr, int level ) { 	int n = fields_find( f, "BIBKEY", level );-	char *value;-	if ( n!=-1 ) {-		value = fields_value( f, n, FIELDS_CHRP );-		output_tab0( outptr, level );-		fprintf( outptr, "<note>Key: %s</note>\n", value );-		fields_setused( f, n );-	}+	output_fill4( outptr, level, "note", "type", "bibliography key", f, n, 1 ); }  static void@@ -737,6 +778,7 @@ 		{ "isi",       "ISIREFNUM", 0 }, 		{ "accessnum", "ACCESSNUM", 0 }, 		{ "jstor",     "JSTOR",     0 },+		{ "isrn",      "ISRN",      0 }, 	}; 	int n, ntypes = sizeof( sn_types ) / sizeof( sn_types[0] ); 	int found, i, nfields;@@ -883,12 +925,16 @@ 	} 	output_abs(        f, outptr, level ); 	output_timescited( f, outptr, level );+	output_annotation( f, outptr, level );+	output_addendum  ( f, outptr, level ); 	output_indexkey(   f, outptr, level ); 	output_toc(        f, outptr, level ); 	output_key(        f, outptr, level ); 	output_sn(         f, outptr, level ); 	output_url(        f, outptr, level ); 	output_part(       f, outptr, level );++	output_recordInfo( f, outptr, level ); }  static void
bibutils/reftypes.h view
@@ -10,32 +10,33 @@ #define REFTYPES_H  /* Reftypes handled by core code */-#define ALWAYS              (0)-#define DEFAULT             (1)+#define ALWAYS          (0)+#define DEFAULT         (1)  /* Reftypes to be handled by converters */-#define SIMPLE              (2)-#define TYPE                (3)-#define PERSON              (4)-#define DATE                (5)-#define PAGES               (6)-#define SERIALNO            (7)-#define TITLE               (8)-#define NOTES               (9)-#define DOI                 (10)-#define HOWPUBLISHED        (11)-#define LINKEDFILE          (12)-#define KEYWORD             (13)-#define BIBTEX_URL          (14)-#define BIBTEX_NOTE         (15)-#define BIBTEX_SENTE        (16)-#define BIBTEX_GENRE        (17)-#define BIBTEX_EPRINT       (18)-#define BIBTEX_ORGANIZATION (19)-#define BLT_THESIS_TYPE     (20)-#define BLT_SCHOOL          (21)-#define BLT_EDITOR          (22)-#define BLT_SKIP            (23)+#define SIMPLE          (2)+#define TYPE            (3)+#define PERSON          (4)+#define DATE            (5)+#define PAGES           (6)+#define SERIALNO        (7)+#define TITLE           (8)+#define NOTES           (9)+#define DOI             (10)+#define HOWPUBLISHED    (11)+#define LINKEDFILE      (12)+#define KEYWORD         (13)+#define BT_URL          (14) /* Bibtex URL */+#define BT_NOTE         (15) /* Bibtex Note */+#define BT_SENTE        (16) /* Bibtex 'Sente' */+#define BT_GENRE        (17) /* Bibtex Genre */+#define BT_EPRINT       (18) /* Bibtex 'Eprint' */+#define BT_ORG          (19) /* Bibtex Organization */+#define BLT_THESIS_TYPE (20) /* Biblatex Thesis Type */+#define BLT_SCHOOL      (21) /* Biblatex School */+#define BLT_EDITOR      (22) /* Biblatex Editor */+#define BLT_SUBTYPE     (23) /* Biblatex entrysubtype */+#define BLT_SKIP        (24) /* Biblatex Skip Entry */  typedef struct { 	char *oldstr;
hs-bibutils.cabal view
@@ -1,5 +1,5 @@ name:               hs-bibutils-version:            4.16+version:            4.17 homepage:           http://gorgias.mine.nu/repos/hs-bibutils/  synopsis:           Haskell bindings to bibutils, the bibliography@@ -45,23 +45,23 @@     bibutils/gb18030.h bibutils/gb18030_enumeration.c bibutils/is_ws.c     bibutils/intlis.h bibutils/intlis.c bibutils/is_ws.h     bibutils/isiin.c bibutils/isiin.h bibutils/isiout.c-    bibutils/isiout.h bibutils/isitypes.c bibutils/latex.c-    bibutils/latex.h bibutils/list.c bibutils/list.h bibutils/marc.c-    bibutils/marc.h bibutils/medin.c bibutils/medin.h-    bibutils/modsin.c bibutils/modsin.h bibutils/modsout.c-    bibutils/modsout.h bibutils/modstypes.c bibutils/modstypes.h-    bibutils/mycvout.c bibutils/name.c bibutils/name.h-    bibutils/newstr.c bibutils/newstr.h bibutils/newstr_conv.c-    bibutils/newstr_conv.h bibutils/reftypes.c bibutils/reftypes.h-    bibutils/risin.c bibutils/risin.h bibutils/risout.c-    bibutils/risout.h bibutils/ristypes.c bibutils/vplist.c-    bibutils/vplist.h bibutils/serialno.c bibutils/serialno.h-    bibutils/strsearch.c bibutils/strsearch.h bibutils/title.c-    bibutils/title.h bibutils/unicode. bibutils/unicode.c-    bibutils/utf8.c bibutils/utf8.h bibutils/wordin.c-    bibutils/wordin.h bibutils/wordout.c bibutils/wordout.h-    bibutils/xml.c bibutils/xml.h bibutils/xml_encoding.c-    bibutils/xml_encoding.h+    bibutils/iso639_2.c bibutils/iso639_2.h bibutils/isiout.h+    bibutils/isitypes.c bibutils/latex.c bibutils/latex.h+    bibutils/list.c bibutils/list.h bibutils/marc.c bibutils/marc.h+    bibutils/medin.c bibutils/medin.h bibutils/modsin.c+    bibutils/modsin.h bibutils/modsout.c bibutils/modsout.h+    bibutils/modstypes.c bibutils/modstypes.h bibutils/mycvout.c+    bibutils/name.c bibutils/name.h bibutils/newstr.c+    bibutils/newstr.h bibutils/newstr_conv.c bibutils/newstr_conv.h+    bibutils/reftypes.c bibutils/reftypes.h bibutils/risin.c+    bibutils/risin.h bibutils/risout.c bibutils/risout.h+    bibutils/ristypes.c bibutils/vplist.c bibutils/vplist.h+    bibutils/serialno.c bibutils/serialno.h bibutils/strsearch.c+    bibutils/strsearch.h bibutils/title.c bibutils/title.h+    bibutils/unicode. bibutils/unicode.c bibutils/utf8.c+    bibutils/utf8.h bibutils/wordin.c bibutils/wordin.h+    bibutils/wordout.c bibutils/wordout.h bibutils/xml.c+    bibutils/xml.h bibutils/xml_encoding.c bibutils/xml_encoding.h  library     exposed-modules:  Text.Bibutils@@ -83,15 +83,15 @@         bibutils/endout.c bibutils/endtypes.c bibutils/endxmlin.c         bibutils/entities.c bibutils/fields.c bibutils/gb18030.c         bibutils/intlist.c bibutils/is_ws.c bibutils/isiin.c-        bibutils/isiout.c bibutils/isitypes.c bibutils/latex.c-        bibutils/list.c bibutils/marc.c bibutils/medin.c-        bibutils/modsin.c bibutils/modsout.c bibutils/modstypes.c-        bibutils/name.c bibutils/newstr.c bibutils/newstr_conv.c-        bibutils/reftypes.c bibutils/risin.c bibutils/risout.c-        bibutils/ristypes.c bibutils/vplist.c bibutils/serialno.c-        bibutils/strsearch.c bibutils/title.c bibutils/unicode.c-        bibutils/utf8.c bibutils/wordin.c bibutils/wordout.c-        bibutils/xml.c bibutils/xml_encoding.c+        bibutils/isiout.c bibutils/isitypes.c bibutils/iso639_2.c+        bibutils/latex.c bibutils/list.c bibutils/marc.c+        bibutils/medin.c bibutils/modsin.c bibutils/modsout.c+        bibutils/modstypes.c bibutils/name.c bibutils/newstr.c+        bibutils/newstr_conv.c bibutils/reftypes.c bibutils/risin.c+        bibutils/risout.c bibutils/ristypes.c bibutils/vplist.c+        bibutils/serialno.c bibutils/strsearch.c bibutils/title.c+        bibutils/unicode.c bibutils/utf8.c bibutils/wordin.c+        bibutils/wordout.c bibutils/xml.c bibutils/xml_encoding.c      if impl(ghc >= 6.10)        build-depends: base >= 4, syb