/* * * This file is part of * MakeIndex - A formatter and format independent index processor * * Copyright (C) 1989 by Chen & Harrison International Systems, Inc. * Copyright (C) 1988 by Olivetti Research Center * Copyright (C) 1987 by Regents of the University of California * * Author: * Pehong Chen * Chen & Harrison International Systems, Inc. * Palo Alto, California * USA * (phc@renoir.berkeley.edu or chen@orc.olivetti.com) * * Contributors: * Please refer to the CONTRIB file that comes with this release * for a list of people who have contributed to this and/or previous * release(s) of MakeIndex. * * All rights reserved by the copyright holders. See the copyright * notice distributed with this software for a complete description of * the conditions under which it is made available. * */ #define COMMENT '%' #define STR_DELIM '"' #define CHR_DELIM '\'' #define KEYWORD "keyword" #define AOPEN "arg_open" #define ACLOSE "arg_close" #define ROPEN "range_open" #define RCLOSE "range_close" #define LEVEL "level" #define QUOTE "quote" #define ACTUAL "actual" #define ENCAP "encap" #define ESCAPE "escape" #define IDX_KEYWORD "\\indexentry" #define IDX_AOPEN '{' #define IDX_ACLOSE '}' #define IDX_ROPEN '(' #define IDX_RCLOSE ')' #define IDX_LEVEL '!' #define IDX_QUOTE '"' #define IDX_ACTUAL '@' #define IDX_ENCAP '|' #define IDX_ESCAPE '\\' #define COMPOSITOR "page_compositor" #define COMPOSITOR_DEF "-" #define PRECEDENCE "page_precedence" #define PRECEDENCE_DEF "rnaRA" #define ROMAN_LOWER 'r' #define ROMAN_UPPER 'R' #define ARABIC 'n' #define ALPHA_LOWER 'a' #define ALPHA_UPPER 'A' #define ROMAN_LOWER_OFFSET 10000 #define ROMAN_UPPER_OFFSET 10000 #define ARABIC_OFFSET 10000 #define ALPHA_LOWER_OFFSET 26 #define ALPHA_UPPER_OFFSET 26 #define PREAMBLE "preamble" #define PREAMBLE_DEF "\\begin{theindex}\n" #define PREAMBLE_LEN 1 #define POSTAMBLE "postamble" #define POSTAMBLE_DEF "\n\n\\end{theindex}\n" #define POSTAMBLE_LEN 3 #define SETPAGEOPEN "setpage_prefix" #define SETPAGECLOSE "setpage_suffix" #if KCC_20 /* KCC preprocessor bug collapses multiple blanks to single blank */ #define SETPAGEOPEN_DEF "\n\040\040\\setcounter{page}{" #else #define SETPAGEOPEN_DEF "\n \\setcounter{page}{" #endif /* KCC_20 */ #define SETPAGECLOSE_DEF "}\n" #define SETPAGE_LEN 2 #define GROUP_SKIP "group_skip" #if KCC_20 /* KCC preprocessor bug collapses multiple blanks to single blank */ #define GROUPSKIP_DEF "\n\n\040\040\\indexspace\n" #else #define GROUPSKIP_DEF "\n\n \\indexspace\n" #endif /* KCC_20 */ #define GROUPSKIP_LEN 3 #define HEADINGS_FLAG "headings_flag" #define HEADINGSFLAG_DEF 0 #define HEADING_PRE "heading_prefix" #define HEADINGPRE_DEF "" #define HEADINGPRE_LEN 0 #define HEADING_SUF "heading_suffix" #define HEADINGSUF_DEF "" #define HEADINGSUF_LEN 0 #define SYMHEAD_POS "symhead_positive" #define SYMHEADPOS_DEF "Symbols" #define SYMHEAD_NEG "symhead_negative" #define SYMHEADNEG_DEF "symbols" #define NUMHEAD_POS "numhead_positive" #define NUMHEADPOS_DEF "Numbers" #define NUMHEAD_NEG "numhead_negative" #define NUMHEADNEG_DEF "numbers" #define ITEM_0 "item_0" #define ITEM_1 "item_1" #define ITEM_2 "item_2" #define ITEM_01 "item_01" #define ITEM_x1 "item_x1" #define ITEM_12 "item_12" #define ITEM_x2 "item_x2" #if KCC_20 /* KCC preprocessor bug collapses multiple blanks to single blank */ #define ITEM0_DEF "\n\040\040\\item\040" #define ITEM1_DEF "\n\040\040\040\040\\subitem\040" #define ITEM2_DEF "\n\040\040\040\040\040\040\\subsubitem\040" #else #define ITEM0_DEF "\n \\item " #define ITEM1_DEF "\n \\subitem " #define ITEM2_DEF "\n \\subsubitem " #endif /* KCC_20 */ #define ITEM_LEN 1 #define DELIM_0 "delim_0" #define DELIM_1 "delim_1" #define DELIM_2 "delim_2" #define DELIM_N "delim_n" #define DELIM_R "delim_r" #define DELIM_T "delim_t" #define DELIM_DEF ", " #define DELIMR_DEF "--" #define DELIMT_DEF "" #define SUFFIX_2P "suffix_2p" #define SUFFIX_3P "suffix_3p" #define SUFFIX_MP "suffix_mp" #define ENCAP_0 "encap_prefix" #define ENCAP_1 "encap_infix" #define ENCAP_2 "encap_suffix" #define ENCAP0_DEF "\\" #define ENCAP1_DEF "{" #define ENCAP2_DEF "}" #define LINEMAX "line_max" #define INDENT_SPACE "indent_space" #define INDENT_LENGTH "indent_length" #if (OS_BS2000 | OS_MVSXA) #define INDENTSPC_DEF " " #else #define INDENTSPC_DEF "\t\t" #endif /* OS_BS2000 | OS_MVSXA */ #define INDENTLEN_DEF 16 #define STY_ERROR(F, D) { \ if (idx_dot) { \ fprintf(ilg_fp, "\n"); \ idx_dot = FALSE; \ } \ fprintf(ilg_fp, "** Input style error (file = %s, line = %d):\n -- ", \ sty_fn, sty_lc); \ fprintf(ilg_fp, F, D); \ sty_ec++; \ put_dot = FALSE; \ } #if KCC_20 /* KCC preprocessor bug collapses multiple blanks to single blank */ #define STY_ERROR2(F, D1, D2) { \ if (idx_dot) { \ fprintf(ilg_fp, "\n"); \ idx_dot = FALSE; \ } \ fprintf(ilg_fp, \ "** Input style error (file = %s, line = %d):\n\040\040 -- ", \ sty_fn, sty_lc); \ fprintf(ilg_fp, F, D1, D2); \ sty_ec++; \ put_dot = FALSE; \ } #else #define STY_ERROR2(F, D1, D2) { \ if (idx_dot) { \ fprintf(ilg_fp, "\n"); \ idx_dot = FALSE; \ } \ fprintf(ilg_fp, "** Input style error (file = %s, line = %d):\n -- ", \ sty_fn, sty_lc); \ fprintf(ilg_fp, F, D1, D2); \ sty_ec++; \ put_dot = FALSE; \ } #endif /* KCC_20 */ #define STY_DOT { \ idx_dot = TRUE; \ if (verbose) \ fprintf(stderr, DOT); \ fprintf(ilg_fp, DOT); \ } #define STY_SKIPLINE { \ int a; \ while ( ((a = GET_CHAR(sty_fp)) != LFD) && (a != EOF) ); \ sty_lc++; \ } #define SCAN_NO(N) { \ fscanf(sty_fp, "%d", N); \ } #define MULTIPLE(C) { \ STY_SKIPLINE; \ STY_ERROR2( \ "Multiple instances of type `%c' in page precedence specification `%s'.\n", \ C, page_prec); \ return (FALSE); \ }