|
Packit |
89ede9 |
/*
|
|
Packit |
89ede9 |
* marc_auth.c
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Copyright (c) Chris Putnam 2004-2018
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
* Source code released under the GPL version 2
|
|
Packit |
89ede9 |
*
|
|
Packit |
89ede9 |
*/
|
|
Packit |
89ede9 |
#include "marc_auth.h"
|
|
Packit |
89ede9 |
#include <string.h>
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
static const char *marc_genre[] = {
|
|
Packit |
89ede9 |
"abstract or summary",
|
|
Packit |
89ede9 |
"art original",
|
|
Packit |
89ede9 |
"art reproduction",
|
|
Packit |
89ede9 |
"article",
|
|
Packit |
89ede9 |
"atlas",
|
|
Packit |
89ede9 |
"autobiography",
|
|
Packit |
89ede9 |
"bibliography",
|
|
Packit |
89ede9 |
"biography",
|
|
Packit |
89ede9 |
"book",
|
|
Packit |
89ede9 |
"calendar",
|
|
Packit |
89ede9 |
"catalog",
|
|
Packit |
89ede9 |
"chart",
|
|
Packit |
89ede9 |
"comic or graphic novel",
|
|
Packit |
89ede9 |
"comic strip",
|
|
Packit |
89ede9 |
"conference publication",
|
|
Packit |
89ede9 |
"database",
|
|
Packit |
89ede9 |
"dictionary",
|
|
Packit |
89ede9 |
"diorama",
|
|
Packit |
89ede9 |
"directory",
|
|
Packit |
89ede9 |
"discography",
|
|
Packit |
89ede9 |
"drama",
|
|
Packit |
89ede9 |
"encyclopedia",
|
|
Packit |
89ede9 |
"essay",
|
|
Packit |
89ede9 |
"festschrift",
|
|
Packit |
89ede9 |
"fiction",
|
|
Packit |
89ede9 |
"filmography",
|
|
Packit |
89ede9 |
"filmstrip",
|
|
Packit |
89ede9 |
"finding aid",
|
|
Packit |
89ede9 |
"flash card",
|
|
Packit |
89ede9 |
"folktale",
|
|
Packit |
89ede9 |
"font",
|
|
Packit |
89ede9 |
"game",
|
|
Packit |
89ede9 |
"government publication",
|
|
Packit |
89ede9 |
"graphic",
|
|
Packit |
89ede9 |
"globe",
|
|
Packit |
89ede9 |
"handbook",
|
|
Packit |
89ede9 |
"history",
|
|
Packit |
89ede9 |
"humor, satire",
|
|
Packit |
89ede9 |
"hymnal",
|
|
Packit |
89ede9 |
"index",
|
|
Packit |
89ede9 |
"instruction",
|
|
Packit |
89ede9 |
"interview",
|
|
Packit |
89ede9 |
"issue",
|
|
Packit |
89ede9 |
"journal",
|
|
Packit |
89ede9 |
"kit",
|
|
Packit |
89ede9 |
"language instruction",
|
|
Packit |
89ede9 |
"law report or digest",
|
|
Packit |
89ede9 |
"legal article",
|
|
Packit |
89ede9 |
"legal case and case notes",
|
|
Packit |
89ede9 |
"legislation",
|
|
Packit |
89ede9 |
"letter",
|
|
Packit |
89ede9 |
"loose-leaf",
|
|
Packit |
89ede9 |
"map",
|
|
Packit |
89ede9 |
"memoir",
|
|
Packit |
89ede9 |
"microscope slide",
|
|
Packit |
89ede9 |
"model",
|
|
Packit |
89ede9 |
"motion picture",
|
|
Packit |
89ede9 |
"multivolume monograph",
|
|
Packit |
89ede9 |
"newspaper",
|
|
Packit |
89ede9 |
"novel",
|
|
Packit |
89ede9 |
"numeric data",
|
|
Packit |
89ede9 |
"offprint",
|
|
Packit |
89ede9 |
"online system or service",
|
|
Packit |
89ede9 |
"patent",
|
|
Packit |
89ede9 |
"periodical",
|
|
Packit |
89ede9 |
"picture",
|
|
Packit |
89ede9 |
"poetry",
|
|
Packit |
89ede9 |
"programmed text",
|
|
Packit |
89ede9 |
"realia",
|
|
Packit |
89ede9 |
"rehearsal",
|
|
Packit |
89ede9 |
"remote sensing image",
|
|
Packit |
89ede9 |
"reporting",
|
|
Packit |
89ede9 |
"review",
|
|
Packit |
89ede9 |
"series",
|
|
Packit |
89ede9 |
"short story",
|
|
Packit |
89ede9 |
"slide",
|
|
Packit |
89ede9 |
"sound",
|
|
Packit |
89ede9 |
"speech",
|
|
Packit |
89ede9 |
"standard or specification",
|
|
Packit |
89ede9 |
"statistics",
|
|
Packit |
89ede9 |
"survey of literature",
|
|
Packit |
89ede9 |
"technical drawing",
|
|
Packit |
89ede9 |
"technical report",
|
|
Packit |
89ede9 |
"thesis",
|
|
Packit |
89ede9 |
"toy",
|
|
Packit |
89ede9 |
"transparency",
|
|
Packit |
89ede9 |
"treaty",
|
|
Packit |
89ede9 |
"videorecording",
|
|
Packit |
89ede9 |
"web site",
|
|
Packit |
89ede9 |
"yearbook",
|
|
Packit |
89ede9 |
};
|
|
Packit |
89ede9 |
static const int nmarc_genre = sizeof( marc_genre ) / sizeof( const char* );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
static const char *marc_resource[] = {
|
|
Packit |
89ede9 |
"cartographic",
|
|
Packit |
89ede9 |
"kit",
|
|
Packit |
89ede9 |
"mixed material",
|
|
Packit |
89ede9 |
"moving image",
|
|
Packit |
89ede9 |
"notated music",
|
|
Packit |
89ede9 |
"software, multimedia",
|
|
Packit |
89ede9 |
"sound recording",
|
|
Packit |
89ede9 |
"sound recording - musical",
|
|
Packit |
89ede9 |
"sound recording - nonmusical",
|
|
Packit |
89ede9 |
"still image",
|
|
Packit |
89ede9 |
"text",
|
|
Packit |
89ede9 |
"three dimensional object"
|
|
Packit |
89ede9 |
};
|
|
Packit |
89ede9 |
static const int nmarc_resource = sizeof( marc_resource ) / sizeof( const char* );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
/* www.loc.gov/marc/relators/relacode.html */
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
typedef struct marc_trans {
|
|
Packit |
89ede9 |
char *abbreviation;
|
|
Packit |
89ede9 |
char *internal_name;
|
|
Packit |
89ede9 |
} marc_trans;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
static const marc_trans relators[] = {
|
|
Packit |
89ede9 |
{ "abr", "ABRIDGER" }, /* Abridger */
|
|
Packit |
89ede9 |
{ "acp", "ART_COPYIST" }, /* Art copyist */
|
|
Packit |
89ede9 |
{ "act", "ACTOR" }, /* Actor */
|
|
Packit |
89ede9 |
{ "adi", "ART_DIRECTOR" }, /* Art director */
|
|
Packit |
89ede9 |
{ "adp", "ADAPTER" }, /* Adapter */
|
|
Packit |
89ede9 |
{ "aft", "AUTHOR" }, /* Author of afterword, colophon, etc. */
|
|
Packit |
89ede9 |
{ "anl", "ANALYST" }, /* Analyst */
|
|
Packit |
89ede9 |
{ "anm", "ANIMATOR" }, /* Animator */
|
|
Packit |
89ede9 |
{ "ann", "ANNOTATOR" }, /* Annotator */
|
|
Packit |
89ede9 |
{ "ant", "BIBLIOGRAPHIC_ANTECENDENT" }, /* Bibliographic antecedent */
|
|
Packit |
89ede9 |
{ "ape", "APPELLEE" }, /* Appellee */
|
|
Packit |
89ede9 |
{ "apl", "APPELLANT" }, /* Appellant */
|
|
Packit |
89ede9 |
{ "app", "APPLICANT" }, /* Applicant */
|
|
Packit |
89ede9 |
{ "aqt", "AUTHOR" }, /* Author in quotations or text abstracts */
|
|
Packit |
89ede9 |
{ "arc", "ARCHITECT" }, /* Architect */
|
|
Packit |
89ede9 |
{ "ard", "ARTISTIC_DIRECTOR" }, /* Artistic director */
|
|
Packit |
89ede9 |
{ "arr", "ARRANGER" }, /* Arranger */
|
|
Packit |
89ede9 |
{ "art", "ARTIST" }, /* Artist */
|
|
Packit |
89ede9 |
{ "asg", "ASSIGNEE" }, /* Assignee */
|
|
Packit |
89ede9 |
{ "asn", "ASSOCIATED_NAME" }, /* Associated name */
|
|
Packit |
89ede9 |
{ "ato", "AUTOGRAPHER" }, /* Autographer */
|
|
Packit |
89ede9 |
{ "att", "ATTRIBUTED_NAME" }, /* Attributed name */
|
|
Packit |
89ede9 |
{ "auc", "AUCTIONEER" }, /* Auctioneer */
|
|
Packit |
89ede9 |
{ "aud", "AUTHOR" }, /* Author of dialog */
|
|
Packit |
89ede9 |
{ "aui", "AUTHOR" }, /* Author of introduction, etc. */
|
|
Packit |
89ede9 |
{ "aus", "AUTHOR" }, /* Screenwriter */
|
|
Packit |
89ede9 |
{ "aut", "AUTHOR" }, /* Author */
|
|
Packit |
89ede9 |
{ "author", "AUTHOR" },
|
|
Packit |
89ede9 |
{ "bdd", "BINDING_DESIGNER" }, /* Binding designer */
|
|
Packit |
89ede9 |
{ "bjd", "BOOKJACKET_DESIGNER" }, /* Bookjacket designer */
|
|
Packit |
89ede9 |
{ "bkd", "BOOK_DESIGNER" }, /* Book designer */
|
|
Packit |
89ede9 |
{ "bkp", "BOOK_PRODUCER" }, /* Book producer */
|
|
Packit |
89ede9 |
{ "blw", "AUTHOR" }, /* Blurb writer */
|
|
Packit |
89ede9 |
{ "bnd", "BINDER" }, /* Binder */
|
|
Packit |
89ede9 |
{ "bpd", "BOOKPLATE_DESIGNER" }, /* Bookplate designer */
|
|
Packit |
89ede9 |
{ "brd", "BROADCASTER" }, /* Broadcaster */
|
|
Packit |
89ede9 |
{ "brl", "BRAILLE_EMBOSSER" }, /* Braille embosser */
|
|
Packit |
89ede9 |
{ "bsl", "BOOKSELLER" }, /* Bookseller */
|
|
Packit |
89ede9 |
{ "cas", "CASTER" }, /* Caster */
|
|
Packit |
89ede9 |
{ "ccp", "CONCEPTOR" }, /* Conceptor */
|
|
Packit |
89ede9 |
{ "chr", "CHOREOGRAPHER" }, /* Choreographer */
|
|
Packit |
89ede9 |
{ "clb", "COLLABORATOR" }, /* Collaborator */
|
|
Packit |
89ede9 |
{ "cli", "CLIENT" }, /* Client */
|
|
Packit |
89ede9 |
{ "cll", "CALLIGRAPHER" }, /* Calligrapher */
|
|
Packit |
89ede9 |
{ "clr", "COLORIST" }, /* Colorist */
|
|
Packit |
89ede9 |
{ "clt", "COLLOTYPER" }, /* Collotyper */
|
|
Packit |
89ede9 |
{ "cmm", "COMMENTATOR" }, /* Commentator */
|
|
Packit |
89ede9 |
{ "cmp", "COMPOSER" }, /* Composer */
|
|
Packit |
89ede9 |
{ "cmt", "COMPOSITOR" }, /* Compositor */
|
|
Packit |
89ede9 |
{ "cnd", "CONDUCTOR" }, /* Conductor */
|
|
Packit |
89ede9 |
{ "cng", "CINEMATOGRAPHER" }, /* Cinematographer */
|
|
Packit |
89ede9 |
{ "cns", "CENSOR" }, /* Censor */
|
|
Packit |
89ede9 |
{ "coe", "CONTESTANT-APPELLEE" }, /* Contestant-appellee */
|
|
Packit |
89ede9 |
{ "col", "COLLECTOR" }, /* Collector */
|
|
Packit |
89ede9 |
{ "com", "COMPILER" }, /* Compiler */
|
|
Packit |
89ede9 |
{ "con", "CONSERVATOR" }, /* Conservator */
|
|
Packit |
89ede9 |
{ "cor", "COLLECTION_REGISTRAR" }, /* Collection registrar */
|
|
Packit |
89ede9 |
{ "cos", "CONTESTANT" }, /* Contestant */
|
|
Packit |
89ede9 |
{ "cot", "CONTESTANT-APPELLANT" }, /* Contestant-appellant */
|
|
Packit |
89ede9 |
{ "cou", "COURT_GOVERNED" }, /* Court governed */
|
|
Packit |
89ede9 |
{ "cov", "COVER_DESIGNER" }, /* Cover designer */
|
|
Packit |
89ede9 |
{ "cpc", "COPYRIGHT_CLAIMANT" }, /* Copyright claimant */
|
|
Packit |
89ede9 |
{ "cpe", "COMPLAINANT-APPELLEE" }, /* Complainant-appellee */
|
|
Packit |
89ede9 |
{ "cph", "COPYRIGHT_HOLDER" }, /* Copyright holder */
|
|
Packit |
89ede9 |
{ "cpl", "COMPLAINANT" }, /* Complainant */
|
|
Packit |
89ede9 |
{ "cpt", "COMPLAINANT-APPELLANT" }, /* Complainant-appellant */
|
|
Packit |
89ede9 |
{ "cre", "AUTHOR" }, /* Creator */
|
|
Packit |
89ede9 |
{ "creator", "AUTHOR" },
|
|
Packit |
89ede9 |
{ "crp", "CORRESPONDENT" }, /* Correspondent */
|
|
Packit |
89ede9 |
{ "crr", "CORRECTOR" }, /* Corrector */
|
|
Packit |
89ede9 |
{ "crt", "COURT_REPORTER" }, /* Court reporter */
|
|
Packit |
89ede9 |
{ "csl", "CONSULTANT" }, /* Consultant */
|
|
Packit |
89ede9 |
{ "csp", "CONSULTANT_TO_A_PROJECT" }, /* Consultant to a project */
|
|
Packit |
89ede9 |
{ "cst", "COSTUME_DESIGNER" }, /* Costume designer */
|
|
Packit |
89ede9 |
{ "ctb", "CONTRIBUTOR" }, /* Contributor */
|
|
Packit |
89ede9 |
{ "cte", "CONTESTEE-APPELLEE" }, /* Contestee-appellee */
|
|
Packit |
89ede9 |
{ "ctg", "CARTOGRAPHER" }, /* Cartographer */
|
|
Packit |
89ede9 |
{ "ctr", "CONTRACTOR" }, /* Contractor */
|
|
Packit |
89ede9 |
{ "cts", "CONTESTEE" }, /* Contestee */
|
|
Packit |
89ede9 |
{ "ctt", "CONTESTEE-APPELLANT" }, /* Contestee-appellant */
|
|
Packit |
89ede9 |
{ "cur", "CURATOR" }, /* Curator */
|
|
Packit |
89ede9 |
{ "cwt", "COMMENTATOR_FOR_WRITTEN_TEXT" }, /* Commentator for written text */
|
|
Packit |
89ede9 |
{ "dbp", "DISTRIBUTION_PLACE" }, /* Distribution place */
|
|
Packit |
89ede9 |
{ "degree grantor", "DEGREEGRANTOR" },
|
|
Packit |
89ede9 |
{ "dfd", "DEFENDANT" }, /* Defendant */
|
|
Packit |
89ede9 |
{ "dfe", "DEFENDANT-APPELLEE" }, /* Defendant-appellee */
|
|
Packit |
89ede9 |
{ "dft", "DEFENDANT-APPELLANT" }, /* Defendant-appellant */
|
|
Packit |
89ede9 |
{ "dgg", "DEGREEGRANTOR" }, /* Degree granting institution */
|
|
Packit |
89ede9 |
{ "dgs", "DEGREE_SUPERVISOR" }, /* Degree supervisor */
|
|
Packit |
89ede9 |
{ "dis", "DISSERTANT" }, /* Dissertant */
|
|
Packit |
89ede9 |
{ "dln", "DELINEATOR" }, /* Delineator */
|
|
Packit |
89ede9 |
{ "dnc", "DANCER" }, /* Dancer */
|
|
Packit |
89ede9 |
{ "dnr", "DONOR" }, /* Donor */
|
|
Packit |
89ede9 |
{ "dpc", "DEPICTED" }, /* Depicted */
|
|
Packit |
89ede9 |
{ "dpt", "DEPOSITOR" }, /* Depositor */
|
|
Packit |
89ede9 |
{ "drm", "DRAFTSMAN" }, /* Draftsman */
|
|
Packit |
89ede9 |
{ "drt", "DIRECTOR" }, /* Director */
|
|
Packit |
89ede9 |
{ "dsr", "DESIGNER" }, /* Designer */
|
|
Packit |
89ede9 |
{ "dst", "DISTRIBUTOR" }, /* Distributor */
|
|
Packit |
89ede9 |
{ "dtc", "DATA_CONTRIBUTOR" }, /* Data contributor */
|
|
Packit |
89ede9 |
{ "dte", "DEDICATEE" }, /* Dedicatee */
|
|
Packit |
89ede9 |
{ "dtm", "DATA_MANAGER" }, /* Data manager */
|
|
Packit |
89ede9 |
{ "dto", "DEDICATOR" }, /* Dedicator */
|
|
Packit |
89ede9 |
{ "dub", "AUTHOR" }, /* Dubious author */
|
|
Packit |
89ede9 |
{ "edc", "EDITOR" }, /* Editor of compilation */
|
|
Packit |
89ede9 |
{ "edm", "EDITOR" }, /* Editor of moving image work */
|
|
Packit |
89ede9 |
{ "edt", "EDITOR" }, /* Editor */
|
|
Packit |
89ede9 |
{ "egr", "ENGRAVER" }, /* Engraver */
|
|
Packit |
89ede9 |
{ "elg", "ELECTRICIAN" }, /* Electrician */
|
|
Packit |
89ede9 |
{ "elt", "ELECTROTYPER" }, /* Electrotyper */
|
|
Packit |
89ede9 |
{ "eng", "ENGINEER" }, /* Engineer */
|
|
Packit |
89ede9 |
{ "enj", "ENACTING_JURISICTION" }, /* Enacting jurisdiction */
|
|
Packit |
89ede9 |
{ "etr", "ETCHER" }, /* Etcher */
|
|
Packit |
89ede9 |
{ "evp", "EVENT_PLACE" }, /* Event place */
|
|
Packit |
89ede9 |
{ "exp", "EXPERT" }, /* Expert */
|
|
Packit |
89ede9 |
{ "fac", "FACSIMILIST" }, /* Facsimilist */
|
|
Packit |
89ede9 |
{ "fds", "FILM_DISTRIBUTOR" }, /* Film distributor */
|
|
Packit |
89ede9 |
{ "fld", "FIELD_DIRECTOR" }, /* Field director */
|
|
Packit |
89ede9 |
{ "flm", "FILM_EDITOR" }, /* Film editor */
|
|
Packit |
89ede9 |
{ "fmd", "FILM_DIRECTOR" }, /* Film director */
|
|
Packit |
89ede9 |
{ "fmk", "FILMMAKER" }, /* Filmmaker */
|
|
Packit |
89ede9 |
{ "fmo", "FORMER_OWNER" }, /* Former owner */
|
|
Packit |
89ede9 |
{ "fmp", "FILM_PRODUCER" }, /* Film producer */
|
|
Packit |
89ede9 |
{ "fnd", "FUNDER" }, /* Funder */
|
|
Packit |
89ede9 |
{ "fpy", "FIRST_PARTY" }, /* First party */
|
|
Packit |
89ede9 |
{ "frg", "FORGER" }, /* Forger */
|
|
Packit |
89ede9 |
{ "gis", "GEOGRAPHIC_INFORMATON_SPECIALIST" }, /* Geographic information specialist */
|
|
Packit |
89ede9 |
{ "grt", "GRAPHIC_TECHNICIAN" }, /* Graphic technician */
|
|
Packit |
89ede9 |
{ "his", "HOST_INSTITUTION" }, /* Host institution */
|
|
Packit |
89ede9 |
{ "hnr", "HONOREE" }, /* Honoree */
|
|
Packit |
89ede9 |
{ "hst", "HOST" }, /* Host */
|
|
Packit |
89ede9 |
{ "ill", "ILLUSTRATOR" }, /* Illustrator */
|
|
Packit |
89ede9 |
{ "ilu", "ILLUMINATOR" }, /* Illuminator */
|
|
Packit |
89ede9 |
{ "ins", "INSCRIBER" }, /* Inscriber */
|
|
Packit |
89ede9 |
{ "inv", "INVENTOR" }, /* Inventor */
|
|
Packit |
89ede9 |
{ "isb", "ISSUING_BODY" }, /* Issuing body */
|
|
Packit |
89ede9 |
{ "itr", "INSTRUMENTALIST" }, /* Instrumentalist */
|
|
Packit |
89ede9 |
{ "ive", "INTERVIEWEE" }, /* Interviewee */
|
|
Packit |
89ede9 |
{ "ivr", "INTERVIEWER" }, /* Interviewer */
|
|
Packit |
89ede9 |
{ "jud", "JUDGE" }, /* Judge */
|
|
Packit |
89ede9 |
{ "jug", "JURISDICTION_GOVERNED" }, /* Jurisdiction governed */
|
|
Packit |
89ede9 |
{ "lbr", "LABORATORY" }, /* Laboratory */
|
|
Packit |
89ede9 |
{ "lbt", "LIBRETTIST" }, /* Librettist */
|
|
Packit |
89ede9 |
{ "ldr", "LABORATORY_DIRECTORY" }, /* Laboratory director */
|
|
Packit |
89ede9 |
{ "led", "LEAD" }, /* Lead */
|
|
Packit |
89ede9 |
{ "lee", "LIBELEE-APPELLEE" }, /* Libelee-appellee */
|
|
Packit |
89ede9 |
{ "lel", "LIBELEE" }, /* Libelee */
|
|
Packit |
89ede9 |
{ "len", "LENDER" }, /* Lender */
|
|
Packit |
89ede9 |
{ "let", "LIBELEE-APPELLANT" }, /* Libelee-appellant */
|
|
Packit |
89ede9 |
{ "lgd", "LIGHTING_DESIGNER" }, /* Lighting designer */
|
|
Packit |
89ede9 |
{ "lie", "LIBELANT-APPELLEE" }, /* Libelant-appellee */
|
|
Packit |
89ede9 |
{ "lil", "LIBELANT" }, /* Libelant */
|
|
Packit |
89ede9 |
{ "lit", "LIBELANT-APPELLANT" }, /* Libelant-appellant */
|
|
Packit |
89ede9 |
{ "lsa", "LANDSCAPE_ARCHITECT" }, /* Landscape architect */
|
|
Packit |
89ede9 |
{ "lse", "LICENSEE" }, /* Licensee */
|
|
Packit |
89ede9 |
{ "lso", "LICENSOR" }, /* Licensor */
|
|
Packit |
89ede9 |
{ "ltg", "LITHOGRAPHER" }, /* Lithographer */
|
|
Packit |
89ede9 |
{ "lyr", "LYRICIST" }, /* Lyricist */
|
|
Packit |
89ede9 |
{ "mcp", "MUSIC_COPYIST" }, /* Music copyist */
|
|
Packit |
89ede9 |
{ "mdc", "METADATA_CONTACT" }, /* Metadata contact */
|
|
Packit |
89ede9 |
{ "med", "MEDIUM" }, /* Medium */
|
|
Packit |
89ede9 |
{ "mfp", "MANUFACTURE_PLACE" }, /* Manufacture place */
|
|
Packit |
89ede9 |
{ "mfr", "MANUFACTURER" }, /* Manufacturer */
|
|
Packit |
89ede9 |
{ "mod", "MODERATOR" }, /* Moderator */
|
|
Packit |
89ede9 |
{ "mon", "THESIS_EXAMINER" }, /* Monitor */
|
|
Packit |
89ede9 |
{ "mrb", "MARBLER" }, /* Marbler */
|
|
Packit |
89ede9 |
{ "mrk", "EDITOR" }, /* Markup editor */
|
|
Packit |
89ede9 |
{ "msd", "MUSICAL_DIRECTOR" }, /* Musical director */
|
|
Packit |
89ede9 |
{ "mte", "METAL-ENGRAVER" }, /* Metal-engraver */
|
|
Packit |
89ede9 |
{ "mtk", "MINUTE_TAKER" }, /* Minute taker */
|
|
Packit |
89ede9 |
{ "mus", "MUSICIAN" }, /* Musician */
|
|
Packit |
89ede9 |
{ "nrt", "NARRATOR" }, /* Narrator */
|
|
Packit |
89ede9 |
{ "opn", "THESIS_OPPONENT" }, /* Opponent */
|
|
Packit |
89ede9 |
{ "org", "ORIGINATOR" }, /* Originator */
|
|
Packit |
89ede9 |
{ "organizer of meeting", "ORGANIZER" },
|
|
Packit |
89ede9 |
{ "orm", "ORGANIZER" }, /* Organizer */
|
|
Packit |
89ede9 |
{ "osp", "ONSCREEN_PRESENTER" }, /* Onscreen presenter */
|
|
Packit |
89ede9 |
{ "oth", "THESIS_OTHER" }, /* Other */
|
|
Packit |
89ede9 |
{ "own", "OWNER" }, /* Owner */
|
|
Packit |
89ede9 |
{ "pan", "PANELIST" }, /* Panelist */
|
|
Packit |
89ede9 |
{ "pat", "PATRON" }, /* Patron */
|
|
Packit |
89ede9 |
{ "patent holder", "ASSIGNEE" },
|
|
Packit |
89ede9 |
{ "pbd", "PUBLISHING_DIRECTOR" }, /* Publishing director */
|
|
Packit |
89ede9 |
{ "pbl", "PUBLISHER" }, /* Publisher */
|
|
Packit |
89ede9 |
{ "pdr", "PROJECT_DIRECTOR" }, /* Project director */
|
|
Packit |
89ede9 |
{ "pfr", "PROOFREADER" }, /* Proofreader */
|
|
Packit |
89ede9 |
{ "pht", "PHOTOGRAPHER" }, /* Photographer */
|
|
Packit |
89ede9 |
{ "plt", "PLATEMAKER" }, /* Platemaker */
|
|
Packit |
89ede9 |
{ "pma", "PERMITTING_AGENCY" }, /* Permitting agency */
|
|
Packit |
89ede9 |
{ "pmn", "PRODUCTION_MANAGER" }, /* Production manager */
|
|
Packit |
89ede9 |
{ "pop", "PRINTER_OF_PLATES" }, /* Printer of plates */
|
|
Packit |
89ede9 |
{ "ppm", "PAPERMAKER" }, /* Papermaker */
|
|
Packit |
89ede9 |
{ "ppt", "PUPPETEER" }, /* Puppeteer */
|
|
Packit |
89ede9 |
{ "pra", "PRAESES" }, /* Praeses */
|
|
Packit |
89ede9 |
{ "prc", "PROCESS_CONTRACT" }, /* Process contact */
|
|
Packit |
89ede9 |
{ "prd", "PRODUCTION_PERSONNEL" }, /* Production personnel */
|
|
Packit |
89ede9 |
{ "pre", "PRESENTER" }, /* Presenter */
|
|
Packit |
89ede9 |
{ "prf", "PERFORMER" }, /* Performer */
|
|
Packit |
89ede9 |
{ "prg", "AUTHOR" }, /* Programmer */
|
|
Packit |
89ede9 |
{ "prm", "PRINTMAKER" }, /* Printmaker */
|
|
Packit |
89ede9 |
{ "prn", "PRODUCTION_COMPANY" }, /* Production company */
|
|
Packit |
89ede9 |
{ "pro", "PRODUCER" }, /* Producer */
|
|
Packit |
89ede9 |
{ "prp", "PRODUCTION_PLACE" }, /* Production place */
|
|
Packit |
89ede9 |
{ "prs", "PRODUCTION_DESIGNER" }, /* Production designer */
|
|
Packit |
89ede9 |
{ "prt", "PRINTER" }, /* Printer */
|
|
Packit |
89ede9 |
{ "prv", "PROVIDER" }, /* Provider */
|
|
Packit |
89ede9 |
{ "pta", "PATENT_APPLICANT" }, /* Patent applicant */
|
|
Packit |
89ede9 |
{ "pte", "PLAINTIFF-APPELLEE" }, /* Plaintiff-appellee */
|
|
Packit |
89ede9 |
{ "ptf", "PLAINTIFF" }, /* Plaintiff */
|
|
Packit |
89ede9 |
{ "pth", "ASSIGNEE" }, /* Patent holder */
|
|
Packit |
89ede9 |
{ "ptt", "PLAINTIFF-APPELLANT" }, /* Plaintiff-appellant */
|
|
Packit |
89ede9 |
{ "pup", "PUBLICATION_PLACE" }, /* Publication place */
|
|
Packit |
89ede9 |
{ "rbr", "RUBRICATOR" }, /* Rubricator */
|
|
Packit |
89ede9 |
{ "rcd", "RECORDIST" }, /* Recordist */
|
|
Packit |
89ede9 |
{ "rce", "RECORDING_ENGINEER" }, /* Recording engineer */
|
|
Packit |
89ede9 |
{ "rcp", "ADDRESSEE" }, /* Addressee */
|
|
Packit |
89ede9 |
{ "rdd", "RADIO_DIRECTOR" }, /* Radio director */
|
|
Packit |
89ede9 |
{ "red", "REDAKTOR" }, /* Redaktor */
|
|
Packit |
89ede9 |
{ "ren", "RENDERER" }, /* Renderer */
|
|
Packit |
89ede9 |
{ "res", "RESEARCHER" }, /* Researcher */
|
|
Packit |
89ede9 |
{ "rev", "REVIEWER" }, /* Reviewer */
|
|
Packit |
89ede9 |
{ "rpc", "RADIO_PRODUCER" }, /* Radio producer */
|
|
Packit |
89ede9 |
{ "rps", "REPOSITORY" }, /* Repository */
|
|
Packit |
89ede9 |
{ "rpt", "REPORTER" }, /* Reporter */
|
|
Packit |
89ede9 |
{ "rpy", "RESPONSIBLE_PARTY" }, /* Responsible party */
|
|
Packit |
89ede9 |
{ "rse", "RESPONDENT-APPELLEE" }, /* Respondent-appellee */
|
|
Packit |
89ede9 |
{ "rsg", "RESTAGER" }, /* Restager */
|
|
Packit |
89ede9 |
{ "rsp", "RESPONDENT" }, /* Respondent */
|
|
Packit |
89ede9 |
{ "rsr", "RESTORATIONIST" }, /* Restorationist */
|
|
Packit |
89ede9 |
{ "rst", "RESPONDENT-APPELLANT" }, /* Respondent-appellant */
|
|
Packit |
89ede9 |
{ "rth", "RESEARCH_TEAM_HEAD" }, /* Research team head */
|
|
Packit |
89ede9 |
{ "rtm", "RESEARCH_TEAM_MEMBER" }, /* Research team member */
|
|
Packit |
89ede9 |
{ "sad", "SCIENTIFIC_ADVISOR" }, /* Scientific advisor */
|
|
Packit |
89ede9 |
{ "sce", "SCENARIST" }, /* Scenarist */
|
|
Packit |
89ede9 |
{ "scl", "SCULPTOR" }, /* Sculptor */
|
|
Packit |
89ede9 |
{ "scr", "SCRIBE" }, /* Scribe */
|
|
Packit |
89ede9 |
{ "sds", "SOUND_DESIGNER" }, /* Sound designer */
|
|
Packit |
89ede9 |
{ "sec", "SECRETARY" }, /* Secretary */
|
|
Packit |
89ede9 |
{ "sgd", "STAGE_DIRECTOR" }, /* Stage director */
|
|
Packit |
89ede9 |
{ "sgn", "SIGNER" }, /* Signer */
|
|
Packit |
89ede9 |
{ "sht", "SUPPORTING_HOST" }, /* Supporting host */
|
|
Packit |
89ede9 |
{ "sll", "SELLER" }, /* Seller */
|
|
Packit |
89ede9 |
{ "sng", "SINGER" }, /* Singer */
|
|
Packit |
89ede9 |
{ "spk", "SPEAKER" }, /* Speaker */
|
|
Packit |
89ede9 |
{ "spn", "SPONSOR" }, /* Sponsor */
|
|
Packit |
89ede9 |
{ "spy", "SECOND_PARTY" }, /* Second party */
|
|
Packit |
89ede9 |
{ "srv", "SURVEYOR" }, /* Surveyor */
|
|
Packit |
89ede9 |
{ "std", "SET_DESIGNER" }, /* Set designer */
|
|
Packit |
89ede9 |
{ "stg", "SETTING" }, /* Setting */
|
|
Packit |
89ede9 |
{ "stl", "STORYTELLER" }, /* Storyteller */
|
|
Packit |
89ede9 |
{ "stm", "STAGE_MANAGER" }, /* Stage manager */
|
|
Packit |
89ede9 |
{ "stn", "STANDARDS_BODY" }, /* Standards body */
|
|
Packit |
89ede9 |
{ "str", "STEREOTYPER" }, /* Stereotyper */
|
|
Packit |
89ede9 |
{ "tcd", "TECHNICAL_DIRECTOR" }, /* Technical director */
|
|
Packit |
89ede9 |
{ "tch", "TEACHER" }, /* Teacher */
|
|
Packit |
89ede9 |
{ "ths", "THESIS_ADVISOR" }, /* Thesis advisor */
|
|
Packit |
89ede9 |
{ "tld", "TELEVISION_DIRECTOR" }, /* Television director */
|
|
Packit |
89ede9 |
{ "tlp", "TELEVISION_PRODUCER" }, /* Television producer */
|
|
Packit |
89ede9 |
{ "trc", "TRANSCRIBER" }, /* Transcriber */
|
|
Packit |
89ede9 |
{ "trl", "TRANSLATOR" }, /* Translator */
|
|
Packit |
89ede9 |
{ "tyd", "TYPE_DIRECTOR" }, /* Type designer */
|
|
Packit |
89ede9 |
{ "tyg", "TYPOGRAPHER" }, /* Typographer */
|
|
Packit |
89ede9 |
{ "uvp", "UNIVERSITY_PLACE" }, /* University place */
|
|
Packit |
89ede9 |
{ "vac", "VOICE_ACTOR" }, /* Voice actor */
|
|
Packit |
89ede9 |
{ "vdg", "VIDEOGRAPHER" }, /* Videographer */
|
|
Packit |
89ede9 |
{ "voc", "VOCALIST" }, /* Vocalist */
|
|
Packit |
89ede9 |
{ "wac", "AUTHOR" }, /* Writer of added commentary */
|
|
Packit |
89ede9 |
{ "wal", "AUTHOR" }, /* Writer of added lyrics */
|
|
Packit |
89ede9 |
{ "wam", "AUTHOR" }, /* Writer of accompanying material */
|
|
Packit |
89ede9 |
{ "wat", "AUTHOR" }, /* Writer of added text */
|
|
Packit |
89ede9 |
{ "wdc", "WOODCUTTER" }, /* Woodcutter */
|
|
Packit |
89ede9 |
{ "wde", "WOOD_ENGRAVER" }, /* Wood engraver */
|
|
Packit |
89ede9 |
{ "win", "AUTHOR" }, /* Writer of introduction */
|
|
Packit |
89ede9 |
{ "wit", "WITNESS" }, /* Witness */
|
|
Packit |
89ede9 |
{ "wpr", "AUTHOR" }, /* Writer of preface */
|
|
Packit |
89ede9 |
{ "wst", "AUTHOR" }, /* Writer of supplementary textual content */
|
|
Packit |
89ede9 |
};
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
static const int nrealtors = sizeof( relators ) / sizeof( relators[0] );
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
char *
|
|
Packit |
89ede9 |
marc_convertrole( const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
int i;
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
for ( i=0; i
|
|
Packit |
89ede9 |
if ( !strcasecmp( query, relators[i].abbreviation ) )
|
|
Packit |
89ede9 |
return relators[i].internal_name;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
return NULL;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
static int
|
|
Packit |
89ede9 |
position_in_list( const char *list[], int nlist, const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
int i;
|
|
Packit |
89ede9 |
for ( i=0; i
|
|
Packit |
89ede9 |
if ( !strcasecmp( query, list[i] ) ) return i;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
return -1;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
marc_findgenre( const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
return position_in_list( marc_genre, nmarc_genre, query );
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
is_marc_genre( const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( marc_findgenre( query ) != -1 ) return 1;
|
|
Packit |
89ede9 |
else return 0;
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
marc_findresource( const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
return position_in_list( marc_resource, nmarc_resource, query );
|
|
Packit |
89ede9 |
}
|
|
Packit |
89ede9 |
|
|
Packit |
89ede9 |
int
|
|
Packit |
89ede9 |
is_marc_resource( const char *query )
|
|
Packit |
89ede9 |
{
|
|
Packit |
89ede9 |
if ( marc_findresource( query ) != -1 ) return 1;
|
|
Packit |
89ede9 |
else return 0;
|
|
Packit |
89ede9 |
}
|