summaryrefslogtreecommitdiff
path: root/support/texlab/crates/bibutils_sys/src/modstypes.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-03 03:01:24 +0000
committerNorbert Preining <norbert@preining.info>2019-12-03 03:01:24 +0000
commitb8d4bb76703bcb15578e2b23c5d256532180b894 (patch)
treebedd1df7a00521a2bd986b3c0289d6556a59e39b /support/texlab/crates/bibutils_sys/src/modstypes.c
parent02e4625a78a5029e8b5dc2a4ec70193b232f497e (diff)
CTAN sync 201912030301
Diffstat (limited to 'support/texlab/crates/bibutils_sys/src/modstypes.c')
-rw-r--r--support/texlab/crates/bibutils_sys/src/modstypes.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/support/texlab/crates/bibutils_sys/src/modstypes.c b/support/texlab/crates/bibutils_sys/src/modstypes.c
new file mode 100644
index 0000000000..95b0a4ab57
--- /dev/null
+++ b/support/texlab/crates/bibutils_sys/src/modstypes.c
@@ -0,0 +1,57 @@
+/*
+ * modstypes.c
+ *
+ * Copyright (c) Chris Putnam 2004-2019
+ *
+ * Source code released under the GPL version 2
+ *
+ */
+#include <stdio.h>
+#include <string.h>
+#include "modstypes.h"
+
+/* Conversion information for identifier type attributes:
+ *
+ * <identifier type="issn">XXXX-XXXX</identifier>
+ *
+ */
+convert identifier_types[] = {
+ { "citekey", "REFNUM" },
+ { "issn", "ISSN" },
+ { "isbn", "ISBN" },
+ { "doi", "DOI" },
+ { "url", "URL" },
+ { "uri", "URL" },
+ { "pubmed", "PMID", },
+ { "medline", "MEDLINE" },
+ { "pmc", "PMC" },
+ { "pii", "PII" },
+ { "isi", "ISIREFNUM" },
+ { "lccn", "LCCN" },
+ { "serial number", "SERIALNUMBER" },
+ { "accessnum", "ACCESSNUM" }
+};
+
+int nidentifier_types = sizeof( identifier_types ) / sizeof( identifier_types[0] );
+
+char *
+mods_find_attrib( char *internal_name, convert *data, int ndata )
+{
+ int i;
+ for ( i=0; i<ndata; ++i ) {
+ if ( !strcasecmp( data[i].internal, internal_name ) )
+ return data[i].mods;
+ }
+ return NULL;
+}
+
+char *
+mods_find_internal( char *mods_name, convert *data, int ndata )
+{
+ int i;
+ for ( i=0; i<ndata; ++i ) {
+ if ( !strcasecmp( data[i].mods, mods_name ) )
+ return data[i].internal;
+ }
+ return NULL;
+}