summaryrefslogtreecommitdiff
path: root/support/texlab/crates/bibutils_sys/src/modstypes.c
diff options
context:
space:
mode:
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;
+}