1 /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2   backend.h - header file for backend.c
3   markus@mhoenicka.de 6-20-00
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2 of the License, or
8    (at your option) any later version.
9 
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14 
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 
19   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
20 
21 
22 #ifndef backend_included
23 #define backend_included 1
24 
25 #include "authorinfo.h"
26 #include "outformats.h"
27 
28 struct REPRINT {
29   char reprint[13]; /*  the reprint string: IN FILE etc. */
30   char date[12]; /* the ON REQUEST date or NULL if [NOT] IN FILE */
31   char avail[256]; /*  the availability string */
32 };
33 
34 struct bibinfo {
35   char* format_string; /* additional output format information */
36   char* sort_string; /* specifies how to sort */
37   char* xreflabel; /* label for sgml output */
38   const char* encoding; /* character encoding of output */
39   const char* entry_id; /* id in sgml document */
40   int is_subseq; /* 1 if this is a subsequent reference of the same authors */
41   unsigned long long n_refdb_id; /* id of the reference in the original database */
42   unsigned long long n_startnumber; /* numeric citations start with number */
43   const char* year_unique_suffix; /* optional suffix after the year */
44 };
45 
46 struct renderinfo {
47   char** ptr_ref;  /*  ptr to a ptr to a buffer created with malloc which
48 		       will receive the output. The calling function must
49 		       allocate the buffer with at least one byte. This
50 		       function will reallocate the buffer as needed.
51 		       *ptr will be updated whenever a realloc is necessary.
52 		       The calling function is responsible for freeing the
53 		       memory again. */
54   size_t* ptr_ref_len; /*  ptr to a variable holding the allocated length
55 			   of ref. This variable will be updated if a
56 			   realloc is necessary. */
57   dbi_result dbires;
58 
59   char* database; /* name of the database from which the data were pulled */
60   char* dbname; /* ptr to string with ID database prefix */
61   char* username; /*  ptr to string with the current username */
62   char* pdfroot; /*  ptr to string with the pdf root path */
63   char* cgi_url; /* ptr to string with URL for CSS file */
64   struct bibinfo* ptr_biblio_info;  /*  ptr to struct containing the info
65 					which fields to print etc. */
66   struct CLIENT_REQUEST* ptr_clrequest; /* ptr to struct with the client
67 					   request info */
68   int ref_format; /*  the output format; possible values are defined as REFXX */
69   unsigned long long nref_counter; /*  number of current dataset */
70   int nuse_citestyle; /* 1 if citestyle-based formatting is requested,
71 			 0 if not */
72   int javascript; /* select the javascript to insert into html/xhmtl output; use 0 if a script is not required */
73   int frequency; /* if 1, include frequency information */
74 };
75 
76 
77 char* add_root_to_link(const char* link, const char* pdfroot);
78 unsigned long long get_reference_count(dbi_conn conn, unsigned long long* ptr_max_id, int n_istemp);
79 unsigned long long get_notes_count(dbi_conn conn, unsigned long long* ptr_max_id, int n_istemp);
80 int calculate_relative_frequency(unsigned long long frequency, unsigned long long refcount);
81 char* get_refdb_note_id(dbi_result dbires, char* id);
82 const char* get_refdb_note_key(dbi_result dbires);
83 char* get_refdb_note_date(dbi_result dbires, char* date, int mode);
84 short int get_refdb_note_share(dbi_result dbires);
85 const char* get_refdb_note_user_name(dbi_result dbires);
86 char* get_refdb_note_title_copy(dbi_result dbires);
87 char* get_refdb_note_content_copy(dbi_result dbires);
88 const char* get_refdb_note_content_type(dbi_result dbires);
89 const char* get_refdb_note_content_xmllang(dbi_result dbires);
90 dbi_result request_notes_by_ref(dbi_conn conn, unsigned long long n_id, int mode, const char* user, int share, int include_lists);
91 int free_request_notes_by_ref(dbi_conn conn);
92 dbi_result request_links(dbi_conn conn, unsigned long long n_id, int mode);
93 const char* get_link(dbi_result dbires, int *ptr_mode);
94 char* get_refdb_id(dbi_result dbires, char* id);
95 const char* get_refdb_citekey(dbi_result dbires);
96 const char* get_refdb_type(dbi_result dbires);
97 char* get_refdb_pubyear(dbi_result dbires, char* year);
98 const char* get_refdb_startpage(dbi_result dbires);
99 const char* get_refdb_endpage(dbi_result dbires);
100 char* get_refdb_abstract_copy(dbi_result dbires);
101 char* get_refdb_title_copy(dbi_result dbires);
102 const char* get_refdb_volume(dbi_result dbires);
103 const char* get_refdb_issue(dbi_result dbires);
104 char* get_refdb_booktitle_copy(dbi_result dbires);
105 const char* get_refdb_city(dbi_result dbires);
106 const char* get_refdb_publisher(dbi_result dbires);
107 char* get_refdb_title_series_copy(dbi_result dbires);
108 char* get_refdb_address_copy(dbi_result dbires);
109 /* char* get_refdb_url_copy(dbi_result dbires); */
110 const char* get_refdb_issn(dbi_result dbires);
111 const char* get_refdb_pyother_info(dbi_result dbires);
112 char* get_refdb_secyear(dbi_result dbires, char* year);
113 const char* get_refdb_secother_info(dbi_result dbires);
114 const char* get_refdb_user(dbi_result dbires, int n_fieldno);
115 const char* get_refdb_user1(dbi_result dbires);
116 const char* get_refdb_user2(dbi_result dbires);
117 const char* get_refdb_user3(dbi_result dbires);
118 const char* get_refdb_user4(dbi_result dbires);
119 const char* get_refdb_user5(dbi_result dbires);
120 const char* get_refdb_typeofwork(dbi_result dbires);
121 const char* get_refdb_area(dbi_result dbires);
122 const char* get_refdb_ostype(dbi_result dbires);
123 const char* get_refdb_degree(dbi_result dbires);
124 const char* get_refdb_runningtime(dbi_result dbires);
125 const char* get_refdb_classcodeintl(dbi_result dbires);
126 const char* get_refdb_classcodeus(dbi_result dbires);
127 const char* get_refdb_senderemail(dbi_result dbires);
128 const char* get_refdb_recipientemail(dbi_result dbires);
129 const char* get_refdb_mediatype(dbi_result dbires);
130 const char* get_refdb_numvolumes(dbi_result dbires);
131 const char* get_refdb_edition(dbi_result dbires);
132 const char* get_refdb_computer(dbi_result dbires);
133 const char* get_refdb_conferencelocation(dbi_result dbires);
134 const char* get_refdb_registrynum(dbi_result dbires);
135 const char* get_refdb_classification(dbi_result dbires);
136 const char* get_refdb_section(dbi_result dbires);
137 const char* get_refdb_pamphletnum(dbi_result dbires);
138 const char* get_refdb_chapternum(dbi_result dbires);
139 const char* get_refdb_doi(dbi_result dbires);
140 char* get_notes_copy(dbi_result dbires, char* username);
141 struct REPRINT* get_reprint(dbi_result dbires, struct REPRINT* ptr_reprint, char* username, int yeardigits);
142 char* get_periodical(dbi_conn conn, char* periodical, const char* db, int type, int* errcode, int is_temp, unsigned long long id, unsigned long long* ptr_frequency);
143 dbi_result request_authors(dbi_conn conn, int type, const char* role, const char* db, int is_temp, unsigned long long n_id);
144 unsigned long long get_num_authors(dbi_result dbires);
145 const char* get_author(dbi_result dbires);
146 struct AUTHOR_INFO* get_author_parts(dbi_result dbires, struct AUTHOR_INFO* ptr_ainfo);
147 const char* get_extended_author(dbi_result dbires, int is_temp, unsigned long long* ptr_frequency);
148 struct AUTHOR_INFO* get_extended_author_parts(dbi_result dbires, struct AUTHOR_INFO* ptr_ainfo, int is_temp, unsigned long long* ptr_frequency);
149 dbi_result request_users(dbi_conn conn, const char* db, int is_temp, unsigned long long n_id);
150 const char* get_user(dbi_result dbires);
151 dbi_result request_keywords(dbi_conn conn, unsigned long long n_id, int mode, int is_temp);
152 const char* get_keyword(dbi_result dbires);
153 const char* get_extended_keyword(dbi_result dbires, int is_temp, unsigned long long* ptr_frequency);
154 unsigned long long get_num_keywords(dbi_result dbires);
155 dbi_result request_ulinks(dbi_conn conn, unsigned long long n_id, int mode, int type, int is_temp, const char* username);
156 const char* get_ulink(dbi_result dbires);
157 void clean_request(dbi_result dbires);
158 char* my_dbi_result_get_binary_copy(dbi_result Result, const char* fieldname);
159 const char* my_dbi_result_get_string(dbi_result Result, const char* fieldname);
160 const char* my_dbi_result_get_string_idx(dbi_result Result, unsigned int idx);
161 char* my_dbi_result_get_string_copy(dbi_result dbires, const char* fieldname);
162 char* my_dbi_result_get_string_copy_idx(dbi_result dbires, unsigned int idx);
163 const char* get_author_type_string(dbi_driver driver, int type);
164 int is_in_list(dbi_result dbires, char* username);
165 char* assemble_header(struct renderinfo* ptr_rendinfo);
166 int has_part_data(const char* type);
167 int has_set_data(const char* type);
168 int has_periodical_data(const char* type);
169 int has_chapter_data(const char* type);
170 
171 dbi_result load_style(const char* pubtype, unsigned int citstyle_id, dbi_conn conn);
172 void unload_style(void);
173 
174 /* libdbi _idx functions use a 1-based index */
175 enum refdb_col {ID = 1, AUTHORLISTSTYLE, EDITORLISTSTYLE, SEDITORLISTSTYLE, ALLALISTSTYLE, AUTHORLISTALTERNATESTYLE, EDITORLISTALTERNATESTYLE, SEDITORLISTALTERNATESTYLE, ALLALISTALTERNATESTYLE, AUTHORLISTALTERNATETEXT, EDITORLISTALTERNATETEXT, SEDITORLISTALTERNATETEXT, ALLALISTALTERNATETEXT, AUTHORLISTABBREVIATEFIRST, EDITORLISTABBREVIATEFIRST, SEDITORLISTABBREVIATEFIRST, ALLALISTABBREVIATEFIRST, AUTHORLISTABBREVIATESUBSEQ, EDITORLISTABBREVIATESUBSEQ, SEDITORLISTABBREVIATESUBSEQ, ALLALISTABBREVIATESUBSEQ, AUTHORLISTABBREVIATEFIRSTMAXAUTHOR, EDITORLISTABBREVIATEFIRSTMAXAUTHOR, SEDITORLISTABBREVIATEFIRSTMAXAUTHOR, ALLALISTABBREVIATEFIRSTMAXAUTHOR, AUTHORLISTABBREVIATESUBSEQMAXAUTHOR, EDITORLISTABBREVIATESUBSEQMAXAUTHOR, SEDITORLISTABBREVIATESUBSEQMAXAUTHOR, ALLALISTABBREVIATESUBSEQMAXAUTHOR, AUTHORLISTABBREVIATEFIRSTDISPLAYAUTHOR, EDITORLISTABBREVIATEFIRSTDISPLAYAUTHOR, SEDITORLISTABBREVIATEFIRSTDISPLAYAUTHOR, ALLALISTABBREVIATEFIRSTDISPLAYAUTHOR, AUTHORLISTABBREVIATESUBSEQDISPLAYAUTHOR, EDITORLISTABBREVIATESUBSEQDISPLAYAUTHOR, SEDITORLISTABBREVIATESUBSEQDISPLAYAUTHOR, ALLALISTABBREVIATESUBSEQDISPLAYAUTHOR, AUTHORLISTAEMPTY, EDITORLISTAEMPTY, SEDITORLISTAEMPTY, ALLALISTAEMPTY, AUTHORLISTASAME, EDITORLISTASAME, SEDITORLISTASAME, ALLALISTASAME, AUTHORLISTPRECEEDING, EDITORLISTPRECEEDING, SEDITORLISTPRECEEDING, ALLALISTPRECEEDING, AUTHORLISTFOLLOWING, EDITORLISTFOLLOWING, SEDITORLISTFOLLOWING, ALLALISTFOLLOWING, AUTHORLISTAUTHORSEPSTWOSEPS, EDITORLISTAUTHORSEPSTWOSEPS, SEDITORLISTAUTHORSEPSTWOSEPS, ALLALISTAUTHORSEPSTWOSEPS, AUTHORLISTAUTHORSEPSTHREESEPSTHREESEPSEACH, EDITORLISTAUTHORSEPSTHREESEPSTHREESEPSEACH, SEDITORLISTAUTHORSEPSTHREESEPSTHREESEPSEACH, ALLALISTAUTHORSEPSTHREESEPSTHREESEPSEACH, AUTHORLISTAUTHORSEPSTHREESEPSTHREESEPSLAST, EDITORLISTAUTHORSEPSTHREESEPSTHREESEPSLAST, SEDITORLISTAUTHORSEPSTHREESEPSTHREESEPSLAST, ALLALISTAUTHORSEPSTHREESEPSTHREESEPSLAST, AUTHORLISTAUTHORNAMESNAMEFIRSTNAMEORDER, EDITORLISTAUTHORNAMESNAMEFIRSTNAMEORDER, SEDITORLISTAUTHORNAMESNAMEFIRSTNAMEORDER, ALLALISTAUTHORNAMESNAMEFIRSTNAMEORDER, AUTHORLISTAUTHORNAMESNAMEFIRSTINITIALSTYLE, EDITORLISTAUTHORNAMESNAMEFIRSTINITIALSTYLE, SEDITORLISTAUTHORNAMESNAMEFIRSTINITIALSTYLE, ALLALISTAUTHORNAMESNAMEFIRSTINITIALSTYLE, AUTHORLISTAUTHORNAMESNAMEFIRSTUPPERCASE, EDITORLISTAUTHORNAMESNAMEFIRSTUPPERCASE, SEDITORLISTAUTHORNAMESNAMEFIRSTUPPERCASE, ALLALISTAUTHORNAMESNAMEFIRSTUPPERCASE, AUTHORLISTAUTHORNAMESNAMEOTHERNAMEORDER, EDITORLISTAUTHORNAMESNAMEOTHERNAMEORDER, SEDITORLISTAUTHORNAMESNAMEOTHERNAMEORDER, ALLALISTAUTHORNAMESNAMEOTHERNAMEORDER, AUTHORLISTAUTHORNAMESNAMEOTHERINITIALSTYLE, EDITORLISTAUTHORNAMESNAMEOTHERINITIALSTYLE, SEDITORLISTAUTHORNAMESNAMEOTHERINITIALSTYLE, ALLALISTAUTHORNAMESNAMEOTHERINITIALSTYLE, AUTHORLISTAUTHORNAMESNAMEOTHERUPPERCASE, EDITORLISTAUTHORNAMESNAMEOTHERUPPERCASE, SEDITORLISTAUTHORNAMESNAMEOTHERUPPERCASE, ALLALISTAUTHORNAMESNAMEOTHERUPPERCASE, AUTHORLISTTEXTTEXTSINGLEPRECEEDING, EDITORLISTTEXTTEXTSINGLEPRECEEDING, SEDITORLISTTEXTTEXTSINGLEPRECEEDING, ALLALISTTEXTTEXTSINGLEPRECEEDING, AUTHORLISTTEXTTEXTSINGLEFOLLOWING, EDITORLISTTEXTTEXTSINGLEFOLLOWING, SEDITORLISTTEXTTEXTSINGLEFOLLOWING, ALLALISTTEXTTEXTSINGLEFOLLOWING, AUTHORLISTTEXTTEXTMULTIPLEPRECEEDING, EDITORLISTTEXTTEXTMULTIPLEPRECEEDING, SEDITORLISTTEXTTEXTMULTIPLEPRECEEDING, ALLALISTTEXTTEXTMULTIPLEPRECEEDING, AUTHORLISTTEXTTEXTMULTIPLEFOLLOWING, EDITORLISTTEXTTEXTMULTIPLEFOLLOWING, SEDITORLISTTEXTTEXTMULTIPLEFOLLOWING, ALLALISTTEXTTEXTMULTIPLEFOLLOWING, AUTHORLISTTEXTEDTEXTSINGLEPRECEEDING, EDITORLISTTEXTEDTEXTSINGLEPRECEEDING, SEDITORLISTTEXTEDTEXTSINGLEPRECEEDING, ALLALISTTEXTEDTEXTSINGLEPRECEEDING, AUTHORLISTTEXTEDTEXTSINGLEFOLLOWING, EDITORLISTTEXTEDTEXTSINGLEFOLLOWING, SEDITORLISTTEXTEDTEXTSINGLEFOLLOWING, ALLALISTTEXTEDTEXTSINGLEFOLLOWING, AUTHORLISTTEXTEDTEXTMULTIPLEPRECEEDING, EDITORLISTTEXTEDTEXTMULTIPLEPRECEEDING, SEDITORLISTTEXTEDTEXTMULTIPLEPRECEEDING, ALLALISTTEXTEDTEXTMULTIPLEPRECEEDING, AUTHORLISTTEXTEDTEXTMULTIPLEFOLLOWING, EDITORLISTTEXTEDTEXTMULTIPLEFOLLOWING, SEDITORLISTTEXTEDTEXTMULTIPLEFOLLOWING, ALLALISTTEXTEDTEXTMULTIPLEFOLLOWING, PUBDATEPRECEEDING, PUBDATEFOLLOWING, PUBDATEFORMAT, PUBDATESEQUENCE, PUBDATEMONTHFORMAT, PUBDATEDAYFORMAT, PUBDATEYEARFORMAT, PUBDATEPADLEADINGZERO, PUBDATESTYLE, PUBDATESECPRECEEDING, PUBDATESECFOLLOWING, PUBDATESECFORMAT, PUBDATESECSEQUENCE, PUBDATESECMONTHFORMAT, PUBDATESECDAYFORMAT, PUBDATESECYEARFORMAT, PUBDATESECPADLEADINGZERO, PUBDATESECSTYLE, PUBDATEALLPRECEEDING, PUBDATEALLFOLLOWING, PUBDATEALLFORMAT, PUBDATEALLSEQUENCE, PUBDATEALLMONTHFORMAT, PUBDATEALLDAYFORMAT, PUBDATEALLYEARFORMAT, PUBDATEALLPADLEADINGZERO, PUBDATEALLSTYLE, TITLEPRECEEDING, TITLEFOLLOWING, TITLECASE, TITLESTYLE, BOOKTITLEPRECEEDING, BOOKTITLEFOLLOWING, BOOKTITLECASE, BOOKTITLESTYLE, SERIESTITLEPRECEEDING, SERIESTITLEFOLLOWING, SERIESTITLECASE, SERIESTITLESTYLE, ALLTITLEPRECEEDING, ALLTITLEFOLLOWING, ALLTITLECASE, ALLTITLESTYLE, JOURNALNAMEPRECEEDING, JOURNALNAMEFOLLOWING, JOURNALNAMECASE, JOURNALNAMEDEFAULTTEXT, JOURNALNAMEALTERNATETEXT, JOURNALNAMEPUNCTUATION, JOURNALNAMESTYLE, VOLUMEPRECEEDING, VOLUMEFOLLOWING, VOLUMESTYLE, ISSUEPRECEEDING, ISSUEFOLLOWING, ISSUESTYLE, PAGESSTYLE, PAGESSINGLEPAGEPRECEEDING, PAGESSINGLEPAGEFOLLOWING, PAGESPAGERANGEPRECEEDING, PAGESPAGERANGEFOLLOWING, PAGESPAGERANGETYPE, PUBLISHERPRECEEDING, PUBLISHERFOLLOWING, PUBLISHERSTYLE, PUBPLACEPRECEEDING, PUBPLACEFOLLOWING, PUBPLACESTYLE, PAGESPRECEEDING, PAGESFOLLOWING, REFNUMBERPRECEEDING, REFNUMBERFOLLOWING, REFNUMBERSTYLE, PUBDATEFIRSTSEP, PUBDATESECONDSEP, PUBDATESECFIRSTSEP, PUBDATESECSECONDSEP, PUBDATEALLFIRSTSEP, PUBDATEALLSECONDSEP, PAGESPAGERANGERANGESEPARATOR, SERIALPRECEEDING, SERIALFOLLOWING, SERIALSTYLE, ADDRESSPRECEEDING, ADDRESSFOLLOWING, ADDRESSSTYLE, USERDEF1PRECEEDING, USERDEF1FOLLOWING, USERDEF1STYLE, USERDEF2PRECEEDING, USERDEF2FOLLOWING, USERDEF2STYLE, USERDEF3PRECEEDING, USERDEF3FOLLOWING, USERDEF3STYLE, USERDEF4PRECEEDING, USERDEF4FOLLOWING, USERDEF4STYLE, USERDEF5PRECEEDING, USERDEF5FOLLOWING, USERDEF5STYLE, NOTESPRECEEDING, NOTESFOLLOWING, NOTESSTYLE, ABSTRACTPRECEEDING, ABSTRACTFOLLOWING, ABSTRACTSTYLE, TYPEOFWORKPRECEEDING, TYPEOFWORKFOLLOWING, TYPEOFWORKSTYLE, AREAPRECEEDING, AREAFOLLOWING, AREASTYLE, OSTYPEPRECEEDING, OSTYPEFOLLOWING, OSTYPESTYLE, DEGREEPRECEEDING, DEGREEFOLLOWING, DEGREESTYLE, RUNNINGTIMEPRECEEDING, RUNNINGTIMEFOLLOWING, RUNNINGTIMESTYLE, CLASSCODEINTLPRECEEDING, CLASSCODEINTLFOLLOWING, CLASSCODEINTLSTYLE, CLASSCODEUSPRECEEDING, CLASSCODEUSFOLLOWING, CLASSCODEUSSTYLE, SENDEREMAILPRECEEDING, SENDEREMAILFOLLOWING, SENDEREMAILSTYLE, RECIPIENTEMAILPRECEEDING, RECIPIENTEMAILFOLLOWING, RECIPIENTEMAILSTYLE, MEDIATYPEPRECEEDING, MEDIATYPEFOLLOWING, MEDIATYPESTYLE, NUMVOLUMESPRECEEDING, NUMVOLUMESFOLLOWING, NUMVOLUMESSTYLE, EDITIONPRECEEDING, EDITIONFOLLOWING, EDITIONSTYLE, COMPUTERPRECEEDING, COMPUTERFOLLOWING, COMPUTERSTYLE, CONFERENCELOCATIONPRECEEDING, CONFERENCELOCATIONFOLLOWING, CONFERENCELOCATIONSTYLE, REGISTRYNUMPRECEEDING, REGISTRYNUMFOLLOWING, REGISTRYNUMSTYLE, CLASSIFICATIONPRECEEDING, CLASSIFICATIONFOLLOWING, CLASSIFICATIONSTYLE, SECTIONPRECEEDING, SECTIONFOLLOWING, SECTIONSTYLE, PAMPHLETNUMPRECEEDING, PAMPHLETNUMFOLLOWING, PAMPHLETNUMSTYLE, CHAPTERNUMPRECEEDING, CHAPTERNUMFOLLOWING, CHAPTERNUMSTYLE, LINK0PRECEEDING, LINK0FOLLOWING, LINK0STYLE, LINK1PRECEEDING, LINK1FOLLOWING, LINK1STYLE, LINK2PRECEEDING, LINK2FOLLOWING, LINK2STYLE, LINK3PRECEEDING, LINK3FOLLOWING, LINK3STYLE, LINK4PRECEEDING, LINK4FOLLOWING, LINK4STYLE, CITEKEYPRECEEDING, CITEKEYFOLLOWING, CITEKEYSTYLE};
176 
177 enum citestyle_col {CITID = 1, CITSEPARATOR, FOLLOWING, PRECEEDING, RANGESEPARATOR, INTEXTSEQUENCE, STYLE, JANFULL, FEBFULL, MARFULL, APRFULL, MAYFULL, JUNFULL, JULFULL, AUGFULL, SEPFULL, OCTFULL, NOVFULL, DECFULL, JANABBREV, FEBABBREV, MARABBREV, APRABBREV, MAYABBREV, JUNABBREV, JULABBREV, AUGABBREV, SEPABBREV, OCTABBREV, NOVABBREV, DECABBREV, JANTHREELET, FEBTHREELET, MARTHREELET, APRTHREELET, MAYTHREELET, JUNTHREELET, JULTHREELET, AUGTHREELET, SEPTHREELET, OCTTHREELET, NOVTHREELET, DECTHREELET};
178 
179 enum refdbref_col {REFDB_ID = 1, REFDB_TYPE, REFDB_PUBYEAR, REFDB_STARTPAGE, REFDB_ENDPAGE, REFDB_ABSTRACT, REFDB_TITLE, REFDB_VOLUME, REFDB_ISSUE, REFDB_BOOKTITLE, REFDB_CITY, REFDB_PUBLISHER, REFDB_TITLE_SERIES, REFDB_ADDRESS, REFDB_ISSN, REFDB_PERIODICAL_ID, REFDB_PYOTHER_INFO, REFDB_SECYEAR, REFDB_SECOTHER_INFO, REFDB_USER1, REFDB_USER2, REFDB_USER3, REFDB_USER4, REFDB_USER5, REFDB_TYPEOFWORK, REFDB_AREA, REFDB_OSTYPE, REFDB_DEGREE, REFDB_RUNNINGTIME, REFDB_CLASSCODEINTL, REFDB_CLASSCODEUS, REFDB_SENDEREMAIL, REFDB_RECIPIENTEMAIL, REFDB_MEDIATYPE, REFDB_NUMVOLUMES, REFDB_EDITION, REFDB_COMPUTER, REFDB_CONFERENCELOCATION, REFDB_REGISTRYNUM, REFDB_CLASSIFICATION, REFDB_SECTION, REFDB_PAMPHLETNUM, REFDB_CHAPTERNUM, REFDB_CITEKEY};
180 
181 #endif /* ifndef backend_included */
182