summaryrefslogtreecommitdiff
path: root/biblio/bibtex/bibtex-x/gblprocs.h
diff options
context:
space:
mode:
Diffstat (limited to 'biblio/bibtex/bibtex-x/gblprocs.h')
-rw-r--r--biblio/bibtex/bibtex-x/gblprocs.h436
1 files changed, 436 insertions, 0 deletions
diff --git a/biblio/bibtex/bibtex-x/gblprocs.h b/biblio/bibtex/bibtex-x/gblprocs.h
new file mode 100644
index 0000000000..723da15b8d
--- /dev/null
+++ b/biblio/bibtex/bibtex-x/gblprocs.h
@@ -0,0 +1,436 @@
+/*-
+******************************************************************************
+******************************************************************************
+**
+** MODULE
+**
+** file: gblprocs.h
+**
+** DESCRIPTION
+**
+** A 32-bit implementation of BibTeX v0.99c for MS-DOS, OS/2 2.x,
+** Unix and VMS. This C language implementation is based on the
+** original WEB source but it has been enhanced to support 8-bit input
+** characters and a very large processing capacity.
+**
+** For documentation describing how to use and build this program,
+** see the 00README.TXT file that accompanies this distribution.
+**
+** MODULE CONTENTS
+**
+** This module declares (using ANSI function prototypes) all of the
+** global functions that will be used in the program. The functions
+** are declared in alphabetical order.
+**
+** AUTHORS
+**
+** Original WEB translation to C, conversion to "big" (32-bit) capacity,
+** addition of run-time selectable capacity and 8-bit support extensions
+** by:
+**
+** Niel Kempson
+** Snowy Owl Systems Limited, Cheltenham, England
+** E-mail: kempson@snowyowl.co.uk
+**
+** 8-bit support extensions also by:
+**
+** Alejandro Aguilar-Sierra
+** Centro de Ciencias de la Atm\'osfera,
+** Universidad Nacional Aut\'onoma de M\'exico, M\'exico
+** E-mail: asierra@servidor.unam.mx
+**
+** COPYRIGHT
+**
+** This implementation copyright (c) 1991-1995 by Niel Kempson
+** and copyright (c) 1995 by Alejandro Aguilar-Sierra.
+**
+** This program is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 1, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** In other words, you are welcome to use, share and improve this
+** program. You are forbidden to forbid anyone else to use, share
+** and improve what you give them. Help stamp out software-hoarding!
+**
+** ACKNOWLEDGEMENT
+**
+** The original BibTeX was written by Oren Patashnik using Donald
+** Knuth's WEB system. This format produces a PASCAL program for
+** execution and a TeX documented version of the source code. This
+** program started as a (manual) translation of the WEB source into C.
+**
+** CHANGE LOG
+**
+** $Log: gblprocs.h,v $
+** Revision 3.71 1996/08/18 20:47:30 kempson
+** Official release 3.71 (see HISTORY file for details).
+**
+** Revision 3.70 1996/04/08 10:08:40 kempson
+** Final documentation & cosmetic changes for official release 3.70.
+**
+** Revision 3.5 1995/09/24 20:44:37 kempson
+** Many changes for final beta test version.
+**
+** Revision 3.4 1995/04/09 22:15:44 kempson
+** Placed under RCS control
+**
+******************************************************************************
+******************************************************************************
+*/
+#ifndef __GBLPROCS_H__
+# define __GBLPROCS_H__ 1
+
+
+#ifdef UTF_8
+#include "unicode/uchar.h"
+#include "unicode/ustdio.h"
+#include "unicode/ustring.h"
+#include "unicode/ucol.h"
+int32_t icu_toUChars (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len,
+ UChar * target,
+ int32_t tarcap);
+int32_t icu_strToLower (UChar * tarlow,
+ int32_t tlcap,
+ UChar * target,
+ int32_t tarlen);
+int32_t icu_fromUChars (unsigned char * dest,
+ int32_t destcap,
+ const UChar * src,
+ int32_t srclen);
+int32_t icu_strToUpper (UChar * tarup,
+ int32_t tucap,
+ UChar * target,
+ int32_t tarlen);
+int32_t icu_toUChar32s (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len,
+ UChar32 * target,
+ int32_t tarcap,
+ UChar * buf16);
+int32_t icu_fromUChar32s (unsigned char * dest,
+ int32_t destcap,
+ const UChar32 * src,
+ int32_t srclen,
+ UChar * buf16);
+#define utf8len(a) ((a)<0x80 ? 1 : ((a)<0xc2 ? -2 : ((a)<0xe0 ? 2 : ((a)<0xf0 ? 3 : ((a)<0xf5 ? 4 : -1)))))
+#endif
+void a_close (const AlphaFile_T file_pointer);
+Boolean_T a_open_in (AlphaFile_T *file_pointer,
+ Integer_T search_path);
+Boolean_T a_open_out (AlphaFile_T *file_pointer);
+void add_buf_pool (StrNumber_T pstr);
+void add_database_cite (CiteNumber_T *newcite);
+void add_extension (StrNumber_T ext);
+void add_out_pool (StrNumber_T pstr);
+void add_pool_buf_and_push (void);
+void already_seen_function_print (HashLoc_T seenfnloc);
+void aux_bib_data_command (void);
+void aux_bib_style_command (void);
+void aux_citation_command (void);
+void aux_end1_err_print (void);
+void aux_end2_err_print (void);
+void aux_err_illegal_another_print (Integer_T cmdnum);
+void aux_err_no_right_brace_print (void);
+void aux_err_print (void);
+void aux_err_stuff_after_right_brace (void);
+void aux_err_white_space_in_argument (void);
+void aux_input_command (void);
+
+Boolean_T bad_argument_token (void);
+void bad_cross_reference_print (StrNumber_T s);
+void bib_cmd_confusion (void);
+void bib_equals_sign_print (void);
+void bib_err_print (void);
+void bib_field_too_long_print (void);
+void bib_id_print (void);
+void bib_ln_num_print (void);
+void bib_one_of_two_print (ASCIICode_T char1,
+ ASCIICode_T char2);
+void bib_unbalanced_braces_print (void);
+void bib_warn_print (void);
+void brace_lvl_one_letters_complaint (void);
+void braces_unbalanced_complaint (StrNumber_T poplitvar);
+void bst_1print_string_size_exceeded (void);
+void bst_2print_string_size_exceeded (void);
+void bst_cant_mess_with_entries_prin (void);
+void bst_entry_command (void);
+void bst_err_print_and_look_for_blan (void);
+void bst_ex_warn_print (void);
+void bst_execute_command (void);
+void bst_function_command (void);
+void bst_id_print (void);
+void bst_integers_command (void);
+void bst_iterate_command (void);
+void bst_left_brace_print (void);
+void bst_ln_num_print (void);
+void bst_macro_command (void);
+void bst_mild_ex_warn_print (void);
+void bst_read_command (void);
+void bst_reverse_command (void);
+void bst_right_brace_print (void);
+void bst_sort_command (void);
+void bst_strings_command (void);
+void bst_warn_print (void);
+void buffer_overflow (void);
+void build_in (PdsType_T pds,
+ PdsLen_T len,
+ HashLoc_T *fn_hash_loc,
+ BltInRange_T bltinnum);
+
+void case_conversion_confusion (void);
+void check_brace_level (StrNumber_T poplitvar);
+void check_cite_overflow (CiteNumber_T lastcite);
+void check_command_execution (void);
+void check_field_overflow (Integer_T totalfields);
+void cite_key_disappeared_confusion (void);
+Boolean_T compress_bib_white (void);
+
+void decr_brace_level (StrNumber_T poplitvar);
+
+void eat_bib_print (void);
+Boolean_T eat_bib_white_space (void);
+void eat_bst_print (void);
+Boolean_T eat_bst_white_space (void);
+Boolean_T enough_text_chars (BufPointer_T enoughchars);
+Boolean_T eoln (const AlphaFile_T file_pointer);
+void execute_fn (HashLoc_T exfnloc);
+
+void figure_out_the_formatted_name (void);
+Boolean_T find_cite_locs_for_this_cite_ke (StrNumber_T citestr);
+
+void get_aux_command_and_process (void);
+void get_bib_command_or_entry_and_pr (void);
+void get_bst_command_and_process (void);
+void get_the_top_level_aux_file_name (void);
+
+void hash_cite_confusion (void);
+
+void id_scanning_confusion (void);
+void illegl_literal_confusion (void);
+void init_command_execution (void);
+void initialize (void);
+Boolean_T input_ln (AlphaFile_T f);
+void int_to_ASCII (Integer_T inte,
+ BufType_T int_buf,
+ BufPointer_T int_begin,
+ BufPointer_T *int_end);
+
+void last_check_for_aux_errors (void);
+Boolean_T less_than (CiteNumber_T arg1,
+ CiteNumber_T arg2);
+void lower_case (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len);
+#ifdef UTF_8
+BufPointer_T lower_case_uni (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len);
+static inline
+void Lower_case (BufType_T buf, BufPointer_T bf_ptr, BufPointer_T len)
+{
+ bf_ptr += lower_case_uni (buf, bf_ptr, len);
+}
+#else
+# define Lower_case lower_case
+#endif
+
+void macro_warn_print (void);
+StrNumber_T make_string (void);
+void mark_error (void);
+void mark_fatal (void);
+void mark_warning (void);
+
+void name_scan_for_and (StrNumber_T poplitvar);
+void non_existent_cross_reference_er (void);
+
+void out_pool_str (AlphaFile_T f,
+ StrNumber_T s);
+
+void output_bbl_line (void);
+void out_token (AlphaFile_T f);
+
+void pool_overflow (void);
+void pop_lit_stk (Integer_T *pop_lit,
+ StkType_T *pop_type);
+void pop_the_aux_stack (void);
+void pop_top_and_print (void);
+void pop_whole_stack (void);
+void pre_def_certain_strings (void);
+void pre_define (PdsType_T pds,
+ PdsLen_T len,
+ StrIlk_T ilk);
+void print_a_newline (void);
+void print_a_pool_str (StrNumber_T s);
+void print_a_token (void);
+void print_aux_name (void);
+void print_bad_input_line (void);
+void print_bib_name (void);
+void print_bst_name (void);
+void print_confusion (void);
+void print_fn_class (HashLoc_T fnloc);
+void print_lit (Integer_T stk_lt,
+ StkType_T stk_tp);
+void print_missing_entry (StrNumber_T s);
+void print_overflow (void);
+void print_recursion_illegal (void);
+void print_skipping_whatever_remains (void);
+void print_stk_lit (Integer_T stk_lt,
+ StkType_T stk_tp);
+void print_wrong_stk_lit (Integer_T stk_lt,
+ StkType_T stk_tp1,
+ StkType_T stk_tp2);
+void push_lit_stk (Integer_T push_lt,
+ StkType_T push_type);
+
+void quick_sort (CiteNumber_T left_end,
+ CiteNumber_T right_end);
+
+void sam_too_long_file_name_print (void);
+void sam_wrong_file_name_print (void);
+Boolean_T scan1 (ASCIICode_T char1);
+Boolean_T scan1_white (ASCIICode_T char1);
+Boolean_T scan2 (ASCIICode_T char1,
+ ASCIICode_T char2);
+Boolean_T scan2_white (ASCIICode_T char1,
+ ASCIICode_T char2);
+Boolean_T scan3 (ASCIICode_T char1,
+ ASCIICode_T char2,
+ ASCIICode_T char3);
+Boolean_T scan_a_field_token_and_eat_whit (void);
+Boolean_T scan_alpha (void);
+Boolean_T scan_and_store_the_field_value (void);
+Boolean_T scan_balanced_braces (void);
+void scan_fn_def (HashLoc_T fn_hash_loc);
+void scan_identifier (ASCIICode_T char1,
+ ASCIICode_T char2,
+ ASCIICode_T char3);
+Boolean_T scan_integer (void);
+Boolean_T scan_nonneg_integer (void);
+Boolean_T scan_white_space (void);
+void skip_illegal_stuff_after_token (void);
+void skip_stuff_at_sp_brace_level_gr (void);
+void skip_token_print (void);
+void skp_token_unknown_function_prin (void);
+void start_name (StrNumber_T filename);
+Boolean_T str_eq_buf (StrNumber_T s,
+ BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len);
+Boolean_T str_eq_str (StrNumber_T s1,
+ StrNumber_T s2);
+HashLoc_T str_lookup (BufType_T buf,
+ BufPointer_T j,
+ BufPointer_T l,
+ StrIlk_T ilk,
+ Boolean_T insert_it);
+void swap (CiteNumber_T swap1,
+ CiteNumber_T swap2);
+
+void trace_and_stat_printing (void);
+void trace_pr_fn_class (HashLoc_T fnloc);
+
+void unknwn_function_class_confusion (void);
+void unknwn_literal_confusion (void);
+#ifdef UTF_8
+BufPointer_T upper_case_uni (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len);
+static inline
+void upper_case (BufType_T buf, BufPointer_T bf_ptr, BufPointer_T len)
+{
+ bf_ptr += upper_case_uni (buf, bf_ptr, len);
+}
+#else
+void upper_case (BufType_T buf,
+ BufPointer_T bf_ptr,
+ BufPointer_T len);
+#endif
+
+void von_name_ends_and_last_name_sta (void);
+Boolean_T von_token_found (void);
+
+void x_add_period (void);
+void x_change_case (void);
+void x_chr_to_int (void);
+void x_cite (void);
+void x_concatenate (void);
+void x_duplicate (void);
+void x_empty (void);
+void x_equals (void);
+void x_format_name (void);
+void x_gets (void);
+void x_greater_than (void);
+void x_int_to_chr (void);
+void x_int_to_str (void);
+void x_less_than (void);
+void x_minus (void);
+void x_missing (void);
+void x_num_names (void);
+void x_plus (void);
+void x_preamble (void);
+void x_purify (void);
+void x_quote (void);
+void x_substring (void);
+void x_swap (void);
+void x_text_length (void);
+void x_text_prefix (void);
+void x_type (void);
+void x_warning (void);
+void x_width (void);
+void x_write (void);
+void x_bit_and (void);
+void x_bit_or (void);
+#ifdef UTF_8
+void x_is_cjk_string (void);
+#endif
+
+
+/*
+** 8-bit support functions. To minimise the changes required to the
+** original BibTeX code in the bibtex-?.c modules, we redefine some key
+** functions here:
+**
+** IsUpper
+** IsLower
+** ToUpper
+** ToLower
+** char_less_than
+** char_greater_than
+*/
+#ifdef SUPPORT_8BIT
+
+#define IsUpper(c) (c8lowcase[c] != (c))
+#define IsLower(c) (c8upcase[c] != (c))
+#define ToUpper(c) (c8upcase[c])
+#define ToLower(c) (c8lowcase[c])
+
+#define char_less_than(char1, char2) (c8order[char1] < c8order[char2])
+#define char_greater_than(char1, char2) (c8order[char1] > c8order[char2])
+
+#else /* NOT SUPPORT_8BIT */
+
+#define IsUpper(c) ('A'<=(c) && (c) <='Z')
+#define IsLower(c) ('a'<=(c) && (c) <='z')
+#define ToUpper(c) (c - CASE_DIFFERENCE)
+#define ToLower(c) (c + CASE_DIFFERENCE)
+
+#define char_less_than(char1, char2) (char1 < char2)
+#define char_greater_than(char1, char2) (char1 > char2)
+
+#endif /* SUPPORT_8BIT */
+
+
+
+#endif /* __GBLPROCS_H__ */