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