refer.h revision 104862
1235633Sdim// -*- C++ -*-
2224133Sdim/* Copyright (C) 1989, 1990, 1991, 1992, 2001 Free Software Foundation, Inc.
3224133Sdim     Written by James Clark (jjc@jclark.com)
4224133Sdim
5224133SdimThis file is part of groff.
6224133Sdim
7224133Sdimgroff is free software; you can redistribute it and/or modify it under
8224133Sdimthe terms of the GNU General Public License as published by the Free
9224133SdimSoftware Foundation; either version 2, or (at your option) any later
10224133Sdimversion.
11224133Sdim
12224133Sdimgroff is distributed in the hope that it will be useful, but WITHOUT ANY
13224133SdimWARRANTY; without even the implied warranty of MERCHANTABILITY or
14224133SdimFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15252723Sdimfor more details.
16224133Sdim
17226890SdimYou should have received a copy of the GNU General Public License along
18224133Sdimwith groff; see the file COPYING.  If not, write to the Free Software
19224133SdimFoundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20224133Sdim
21235633Sdim#include "lib.h"
22226890Sdim
23224133Sdim#include <stdlib.h>
24224133Sdim#include <assert.h>
25224133Sdim#include <errno.h>
26224133Sdim
27224133Sdim#include "errarg.h"
28224133Sdim#include "error.h"
29224133Sdim#include "stringclass.h"
30224133Sdim#include "cset.h"
31224133Sdim#include "cmap.h"
32224133Sdim
33224133Sdim#include "defs.h"
34224133Sdim
35224133Sdimunsigned hash_string(const char *, int);
36224133Sdimint next_size(int);
37224133Sdim
38224133Sdimextern string capitalize_fields;
39224133Sdimextern string reverse_fields;
40224133Sdimextern string abbreviate_fields;
41226890Sdimextern string period_before_last_name;
42226890Sdimextern string period_before_initial;
43226890Sdimextern string period_before_hyphen;
44226890Sdimextern string period_before_other;
45224133Sdimextern string sort_fields;
46224133Sdimextern int annotation_field;
47224133Sdimextern string annotation_macro;
48224133Sdimextern string discard_fields;
49224133Sdimextern string articles;
50224133Sdimextern int abbreviate_label_ranges;
51224133Sdimextern string label_range_indicator;
52224133Sdimextern int date_as_label;
53224133Sdimextern string join_authors_exactly_two;
54263509Sdimextern string join_authors_last_two;
55263509Sdimextern string join_authors_default;
56263509Sdimextern string separate_label_second_parts;
57226890Sdimextern string et_al;
58226890Sdimextern int et_al_min_elide;
59263509Sdimextern int et_al_min_total;
60263509Sdim
61226890Sdimextern int compatible_flag;
62226890Sdim
63226890Sdimextern int set_label_spec(const char *);
64226890Sdimextern int set_date_label_spec(const char *);
65226890Sdimextern int set_short_label_spec(const char *);
66235633Sdim
67235633Sdimextern int short_label_flag;
68226890Sdim
69252723Sdimvoid clear_labels();
70252723Sdimvoid command_error(const char *,
71252723Sdim		   const errarg &arg1 = empty_errarg,
72235633Sdim		   const errarg &arg2 = empty_errarg,
73226890Sdim		   const errarg &arg3 = empty_errarg);
74226890Sdim
75226890Sdimstruct reference;
76252723Sdim
77252723Sdimvoid compute_labels(reference **, int);
78252723Sdim