1/* $NetBSD: refer.h,v 1.1.1.1 2016/01/13 18:41:49 christos Exp $ */ 2 3// -*- C++ -*- 4/* Copyright (C) 1989, 1990, 1991, 1992, 2001, 2004 5 Free Software Foundation, Inc. 6 Written by James Clark (jjc@jclark.com) 7 8This file is part of groff. 9 10groff is free software; you can redistribute it and/or modify it under 11the terms of the GNU General Public License as published by the Free 12Software Foundation; either version 2, or (at your option) any later 13version. 14 15groff is distributed in the hope that it will be useful, but WITHOUT ANY 16WARRANTY; without even the implied warranty of MERCHANTABILITY or 17FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18for more details. 19 20You should have received a copy of the GNU General Public License along 21with groff; see the file COPYING. If not, write to the Free Software 22Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ 23 24#include "lib.h" 25 26#include <stdlib.h> 27#include <assert.h> 28#include <errno.h> 29 30#include "errarg.h" 31#include "error.h" 32#include "stringclass.h" 33#include "cset.h" 34#include "cmap.h" 35 36#include "defs.h" 37 38unsigned hash_string(const char *, int); 39int next_size(int); 40 41extern string capitalize_fields; 42extern string reverse_fields; 43extern string abbreviate_fields; 44extern string period_before_last_name; 45extern string period_before_initial; 46extern string period_before_hyphen; 47extern string period_before_other; 48extern string sort_fields; 49extern int annotation_field; 50extern string annotation_macro; 51extern string discard_fields; 52extern string articles; 53extern int abbreviate_label_ranges; 54extern string label_range_indicator; 55extern int date_as_label; 56extern string join_authors_exactly_two; 57extern string join_authors_last_two; 58extern string join_authors_default; 59extern string separate_label_second_parts; 60extern string et_al; 61extern int et_al_min_elide; 62extern int et_al_min_total; 63 64extern int compatible_flag; 65 66extern int set_label_spec(const char *); 67extern int set_date_label_spec(const char *); 68extern int set_short_label_spec(const char *); 69 70extern int short_label_flag; 71 72void clear_labels(); 73void command_error(const char *, 74 const errarg &arg1 = empty_errarg, 75 const errarg &arg2 = empty_errarg, 76 const errarg &arg3 = empty_errarg); 77 78class reference; 79 80void compute_labels(reference **, int); 81