refer.h revision 75584
175584Sru// -*- C++ -*-
275584Sru/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
375584Sru     Written by James Clark (jjc@jclark.com)
475584Sru
575584SruThis file is part of groff.
675584Sru
775584Srugroff is free software; you can redistribute it and/or modify it under
875584Sruthe terms of the GNU General Public License as published by the Free
975584SruSoftware Foundation; either version 2, or (at your option) any later
1075584Sruversion.
1175584Sru
1275584Srugroff is distributed in the hope that it will be useful, but WITHOUT ANY
1375584SruWARRANTY; without even the implied warranty of MERCHANTABILITY or
1475584SruFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1575584Srufor more details.
1675584Sru
1775584SruYou should have received a copy of the GNU General Public License along
1875584Sruwith groff; see the file COPYING.  If not, write to the Free Software
1975584SruFoundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
2075584Sru
2175584Sru#include <stdio.h>
2275584Sru#include <stdlib.h>
2375584Sru#include <assert.h>
2475584Sru#include <string.h>
2575584Sru#include <errno.h>
2675584Sru
2775584Sru#include "errarg.h"
2875584Sru#include "error.h"
2975584Sru#include "lib.h"
3075584Sru#include "stringclass.h"
3175584Sru#include "cset.h"
3275584Sru#include "cmap.h"
3375584Sru
3475584Sru#include "defs.h"
3575584Sru
3675584Sruunsigned hash_string(const char *, int);
3775584Sruint next_size(int);
3875584Sru
3975584Sruextern string capitalize_fields;
4075584Sruextern string reverse_fields;
4175584Sruextern string abbreviate_fields;
4275584Sruextern string period_before_last_name;
4375584Sruextern string period_before_initial;
4475584Sruextern string period_before_hyphen;
4575584Sruextern string period_before_other;
4675584Sruextern string sort_fields;
4775584Sruextern int annotation_field;
4875584Sruextern string annotation_macro;
4975584Sruextern string discard_fields;
5075584Sruextern string articles;
5175584Sruextern int abbreviate_label_ranges;
5275584Sruextern string label_range_indicator;
5375584Sruextern int date_as_label;
5475584Sruextern string join_authors_exactly_two;
5575584Sruextern string join_authors_last_two;
5675584Sruextern string join_authors_default;
5775584Sruextern string separate_label_second_parts;
5875584Sruextern string et_al;
5975584Sruextern int et_al_min_elide;
6075584Sruextern int et_al_min_total;
6175584Sru
6275584Sruextern int compatible_flag;
6375584Sru
6475584Sruextern int set_label_spec(const char *);
6575584Sruextern int set_date_label_spec(const char *);
6675584Sruextern int set_short_label_spec(const char *);
6775584Sru
6875584Sruextern int short_label_flag;
6975584Sru
7075584Sruvoid clear_labels();
7175584Sruvoid command_error(const char *,
7275584Sru		   const errarg &arg1 = empty_errarg,
7375584Sru		   const errarg &arg2 = empty_errarg,
7475584Sru		   const errarg &arg3 = empty_errarg);
7575584Sru
7675584Srustruct reference;
7775584Sru
7875584Sruvoid compute_labels(reference **, int);
79