File: nbibtypes.c

package info (click to toggle)
bibutils 7.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,040 kB
  • sloc: ansic: 112,579; sh: 462; makefile: 42
file content (127 lines) | stat: -rw-r--r-- 6,875 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
 * nbibtypes.c
 *
 * Copyright (c) Chris Putnam 2016-2021
 *
 * Program and source code released under the GPL version 2
 *
 */
#include <stdio.h>
#include <string.h>
#include "is_ws.h"
#include "fields.h"
#include "reftypes.h"

static lookups article[] = {
	{ "PMID",   "PMID",               SIMPLE, LEVEL_MAIN },
	{ "OWN",    "",                   SKIP,   LEVEL_MAIN },
	{ "STAT",   "",                   SKIP,   LEVEL_MAIN },
	{ "DA",     "",                   SKIP,   LEVEL_MAIN },
	{ "DCOM",   "",                   SKIP,   LEVEL_MAIN },
	{ "LR",     "",                   SKIP,   LEVEL_MAIN },
	{ "IS",     "",                   SKIP,   LEVEL_MAIN },
	{ "VI",     "VOLUME",             SIMPLE, LEVEL_MAIN },
	{ "IP",     "ISSUE",              SIMPLE, LEVEL_MAIN },
	{ "DP",     "",                   DATE,   LEVEL_MAIN }, /* date published? */
	{ "CI",     "",                   SKIP,   LEVEL_MAIN }, /* copyright information */
	{ "TI",     "TITLE",              TITLE,  LEVEL_MAIN },
	{ "PG",     "PAGES",              PAGES,  LEVEL_MAIN },
	{ "LID",    "DOI",                DOI,    LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */
	{ "AB",     "ABSTRACT",           SIMPLE, LEVEL_MAIN },
	{ "FAU",    "AUTHOR",             PERSON, LEVEL_MAIN }, /* Full author */
	{ "AU",     "",                   SKIP,   LEVEL_MAIN }, /* Author */
	{ "FED",    "EDITOR",             PERSON, LEVEL_MAIN }, /* Full editor */
	{ "ED",     "",                   SKIP,   LEVEL_MAIN }, /* Editor */
	{ "AD",     "ADDRESS:AUTHOR",     SIMPLE, LEVEL_MAIN }, /* Affiliation */
	{ "IAD",    "ADDRESS:AUTHOR",     SIMPLE, LEVEL_MAIN }, /* Investigator Affiliation */
	{ "LA",     "LANGUAGE",           SIMPLE, LEVEL_MAIN },
	{ "GR",     "",                   SKIP,   LEVEL_MAIN },
	{ "DEP",    "",                   SKIP,   LEVEL_MAIN }, /* a date */
	{ "PL",     "ADDRESS",            SIMPLE, LEVEL_MAIN }, /* Publisher location */
	{ "TA",     "SHORTTITLE",         SIMPLE, LEVEL_HOST }, /* Journal title abbreviation */
	{ "JT",     "TITLE",              SIMPLE, LEVEL_HOST }, /* Journal title */
	{ "JID",    "",                   SKIP,   LEVEL_HOST }, /* Journal ID? */
	{ "SB",     "",                   SKIP,   LEVEL_MAIN },
	{ "EN",     "EDITION",            SIMPLE, LEVEL_MAIN },
	{ "ISBN",   "SERIALNUMBER",       SERIALNO, LEVEL_MAIN }, /* ISBN */
	{ "IS",     "SERIALNUMBER",       SERIALNO, LEVEL_MAIN }, /* ISSN */
	{ "MH",     "KEYWORD",            SIMPLE, LEVEL_MAIN },
	{ "OT",     "KEYWORD",            SIMPLE, LEVEL_MAIN },
	{ "PMC",    "PMC",                SIMPLE, LEVEL_MAIN },
	{ "OID",    "",                   SKIP,   LEVEL_MAIN },
	{ "EDAT",   "",                   SKIP,   LEVEL_MAIN },
	{ "MHDA",   "",                   SKIP,   LEVEL_MAIN },
	{ "CRDT",   "",                   SKIP,   LEVEL_MAIN },
	{ "PHST",   "",                   SKIP,   LEVEL_MAIN }, /* Publication history? */
	{ "AID",    "DOI",                DOI,    LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */
	{ "PST",    "",                   SKIP,   LEVEL_MAIN },
	{ "SO",     "",                   SKIP,   LEVEL_MAIN },
	{ " ",      "INTERNAL_TYPE|ARTICLE",   ALWAYS, LEVEL_MAIN },
	{ " ",      "ISSUANCE|continuing",     ALWAYS, LEVEL_HOST },
	{ " ",      "RESOURCE|text",           ALWAYS, LEVEL_MAIN },
	{ " ",      "GENRE:BIBUTILS|journal article",  ALWAYS, LEVEL_MAIN },
	{ " ",      "GENRE:MARC|periodical",        ALWAYS, LEVEL_HOST },
	{ " ",      "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST }
};

static lookups book[] = {
	{ "PMID",   "PMID",               SIMPLE, LEVEL_MAIN },
	{ "OWN",    "",                   SKIP,   LEVEL_MAIN },
	{ "STAT",   "",                   SKIP,   LEVEL_MAIN },
	{ "DA",     "",                   SKIP,   LEVEL_MAIN },
	{ "DCOM",   "",                   SKIP,   LEVEL_MAIN },
	{ "LR",     "",                   SKIP,   LEVEL_MAIN },
	{ "IS",     "",                   SKIP,   LEVEL_MAIN },
	{ "VI",     "VOLUME",             SIMPLE, LEVEL_MAIN },
	{ "IP",     "ISSUE",              SIMPLE, LEVEL_MAIN },
	{ "DP",     "",                   DATE,   LEVEL_MAIN }, /* date published? */
	{ "BTI",    "TITLE",              TITLE,  LEVEL_MAIN }, /* book title */
	{ "CTI",    "TITLE",              TITLE,  LEVEL_HOST }, /* collection title */
	{ "PG",     "PAGES",              PAGES,  LEVEL_MAIN },
	{ "LID",    "DOI",                DOI,    LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */
	{ "AB",     "ABSTRACT",           SIMPLE, LEVEL_MAIN },
	{ "FAU",    "AUTHOR",             PERSON, LEVEL_MAIN }, /* Full author */
	{ "AU",     "",                   SKIP,   LEVEL_MAIN }, /* Author */
	{ "FED",    "EDITOR",             PERSON, LEVEL_MAIN }, /* Full editor */
	{ "ED",     "",                   SKIP,   LEVEL_MAIN }, /* Editor */
	{ "AD",     "ADDRESS:AUTHOR",     SIMPLE, LEVEL_MAIN }, /* Affiliation */
	{ "IAD",    "ADDRESS:AUTHOR",     SIMPLE, LEVEL_MAIN }, /* Investigator Affiliation */
	{ "LA",     "LANGUAGE",           SIMPLE, LEVEL_MAIN },
	{ "GR",     "",                   SKIP,   LEVEL_MAIN },
	{ "DEP",    "",                   SKIP,   LEVEL_MAIN }, /* a date */
	{ "PL",     "ADDRESS",            SIMPLE, LEVEL_MAIN }, /* Publisher location */
	{ "ISBN",   "SERIALNUMBER",       SERIALNO, LEVEL_MAIN }, /* ISBN */
	{ "IS",     "SERIALNUMBER",       SERIALNO, LEVEL_MAIN }, /* ISSN */
	{ "SB",     "",                   SKIP,   LEVEL_MAIN },
	{ "EN",     "EDITION",            SIMPLE, LEVEL_MAIN },
	{ "MH",     "KEYWORD",            SIMPLE, LEVEL_MAIN },
	{ "OT",     "KEYWORD",            SIMPLE, LEVEL_MAIN },
	{ "PMC",    "PMC",                SIMPLE, LEVEL_MAIN },
	{ "OID",    "",                   SKIP,   LEVEL_MAIN },
	{ "EDAT",   "",                   SKIP,   LEVEL_MAIN },
	{ "MHDA",   "",                   SKIP,   LEVEL_MAIN },
	{ "CRDT",   "",                   SKIP,   LEVEL_MAIN },
	{ "PHST",   "",                   SKIP,   LEVEL_MAIN }, /* Publication history? */
	{ "AID",    "DOI",                DOI,    LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */
	{ "PST",    "",                   SKIP,   LEVEL_MAIN },
	{ "SO",     "",                   SKIP,   LEVEL_MAIN },
	{ " ",      "INTERNAL_TYPE|BOOK",      ALWAYS, LEVEL_MAIN },
	{ " ",      "ISSUANCE|monographic",    ALWAYS, LEVEL_MAIN },
	{ " ",      "RESOURCE|text",           ALWAYS, LEVEL_MAIN },
	{ " ",      "GENRE:MARC|book",         ALWAYS, LEVEL_MAIN },
};

#define ORIG(a) ( &(a[0]) )
#define SIZE(a) ( sizeof( a ) / sizeof( lookups ) )
#define REFTYPE(a,b) { a, ORIG(b), SIZE(b) }

variants nbib_all[] = {
	REFTYPE( "Journal article", article ),
	REFTYPE( "News",            article ),
	REFTYPE( "Editorial",       article ),
	REFTYPE( "Letter",          article ),
	REFTYPE( "Book",            book    ), /* this is not an "official" nbib type; books aren't in PubMed */
};

int nbib_nall = sizeof( nbib_all ) / sizeof( variants );