1 /* expand-common - common functionality for expand/unexpand
2 
3    Copyright (C) 1989-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 <https://www.gnu.org/licenses/>.  */
17 
18 /* If true, convert blanks even after nonblank characters have been
19    read on the line.  */
20 extern bool convert_entire_line;
21 
22 /* The maximum distance between tab stops.  */
23 extern size_t max_column_width;
24 
25 /* The desired exit status.  */
26 extern int exit_status;
27 
28 /* Add tab stop TABVAL to the end of 'tab_list'.  */
29 extern void
30 add_tab_stop (uintmax_t tabval);
31 
32 /* Add the comma or blank separated list of tab stops STOPS
33    to the list of tab stops.  */
34 extern void
35 parse_tab_stops (char const *stops) _GL_ATTRIBUTE_NONNULL ();
36 
37 /* TODO: Document */
38 extern uintmax_t
39 get_next_tab_column (const uintmax_t column, size_t *tab_index,
40                      bool *last_tab)
41   _GL_ATTRIBUTE_NONNULL ((3));
42 
43 /* Called after all command-line options have been parsed,
44    sets the final tab-stops values */
45 extern void
46 finalize_tab_stops (void);
47 
48 
49 
50 
51 /* Sets new file-list */
52 extern void
53 set_file_list (char **file_list);
54 
55 /* Close the old stream pointer FP if it is non-null,
56    and return a new one opened to read the next input file.
57    Open a filename of '-' as the standard input.
58    Return nullptr if there are no more input files.  */
59 extern FILE *
60 next_file (FILE *fp);
61 
62 /* */
63 extern void
64 cleanup_file_list_stdin (void);
65 
66 
67 extern void
68 emit_tab_list_info (void);
69