(root)/
texinfo-7.1/
info/
variables.h
       1  /* variables.h -- Description of user visible variables in Info.
       2  
       3     Copyright 1993-2023 Free Software Foundation, Inc.
       4  
       5     This program is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation, either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
      17  
      18     Originally written by Brian Fox. */
      19  
      20  #ifndef INFO_VARIABLES_H
      21  #define INFO_VARIABLES_H
      22  
      23  #include "window.h"
      24  
      25  /* A variable (in the Info sense) is an integer value with a user-visible
      26     name.  You may supply an array of strings to complete over when the
      27     variable is set; in that case, the variable is set to the index of the
      28     string that the user chose.  If you supply a null list, the user can
      29     set the variable to a numeric value. */
      30  
      31  /* Structure describing a user visible variable. */
      32  typedef struct {
      33    char *name;                   /* Polite name. */
      34    char *doc;                    /* Documentation string. */
      35    void *value;                  /* Address of value. */
      36    char **choices;               /* Array of strings or NULL if numeric only. */
      37    int where_set;                /* Where this variable was set. */
      38  } VARIABLE_ALIST;
      39  
      40  /* Values for VARIABLE_ALIST.where_set, in order of increasing priority. */
      41  #define SET_BY_DEFAULT 0
      42  #define SET_IN_CONFIG_FILE 1
      43  #define SET_ON_COMMAND_LINE 2
      44  #define SET_IN_SESSION 4
      45  
      46  VARIABLE_ALIST *variable_by_name (char *name);
      47  
      48  /* Make an array of REFERENCE which actually contains the names of the
      49     variables available in Info. */
      50  REFERENCE **make_variable_completions_array (void);
      51  
      52  /* Set the value of an info variable. */
      53  void set_variable (WINDOW *window, int count);
      54  int set_variable_to_value (VARIABLE_ALIST *var, char *value, int where);
      55  
      56  void describe_variable (WINDOW *window, int count);
      57  
      58  /* The list of user-visible variables. */
      59  extern int auto_footnotes_p;
      60  extern int auto_tiling_p;
      61  extern int terminal_use_visible_bell_p;
      62  extern int info_error_rings_bell_p;
      63  extern int gc_compressed_files;
      64  extern int show_index_match;
      65  extern int info_scroll_behaviour;
      66  extern int window_scroll_step;
      67  extern int cursor_movement_scrolls_p;
      68  extern int ISO_Latin_p;
      69  extern int scroll_last_node;
      70  extern int min_search_length;
      71  extern int search_skip_screen_p;
      72  extern int infopath_no_defaults_p;
      73  extern int preprocess_nodes_p;
      74  extern int key_time;
      75  extern int mouse_protocol;
      76  extern int follow_strategy;
      77  extern int nodeline_print;
      78  
      79  typedef struct {
      80      unsigned long mask;
      81      unsigned long value;
      82  } RENDITION;
      83  
      84  extern RENDITION ref_rendition;
      85  extern RENDITION hl_ref_rendition;
      86  extern RENDITION match_rendition;
      87  
      88  
      89  #endif /* not INFO_VARIABLES_H */