Annotation of embedaddon/readline/colors.h, revision 1.1.1.2
1.1 misho 1: /* `dir', `vdir' and `ls' directory listing programs for GNU.
2:
3: Modified by Chet Ramey for Readline.
4:
1.1.1.2 ! misho 5: Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012, 2015
! 6: Free Software Foundation, Inc.
1.1 misho 7:
8: This program is free software: you can redistribute it and/or modify
9: it under the terms of the GNU General Public License as published by
10: the Free Software Foundation, either version 3 of the License, or
11: (at your option) any later version.
12:
13: This program is distributed in the hope that it will be useful,
14: but WITHOUT ANY WARRANTY; without even the implied warranty of
15: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: GNU General Public License for more details.
17:
18: You should have received a copy of the GNU General Public License
19: along with this program. If not, see <http://www.gnu.org/licenses/>. */
20:
21: /* Written by Richard Stallman and David MacKenzie. */
22:
23: /* Color support by Peter Anvin <Peter.Anvin@linux.org> and Dennis
24: Flaherty <dennisf@denix.elk.miles.com> based on original patches by
25: Greg Lee <lee@uhunix.uhcc.hawaii.edu>. */
26:
27: #ifndef _COLORS_H_
28: #define _COLORS_H_
29:
30: #include <stdio.h> // size_t
31:
32: #if defined(__TANDEM) && defined(HAVE_STDBOOL_H) && (__STDC_VERSION__ < 199901L)
33: typedef int _Bool;
34: #endif
35:
36: #if defined (HAVE_STDBOOL_H)
37: # include <stdbool.h> // bool
38: #else
39: typedef int _rl_bool_t;
40:
41: #ifdef bool
42: # undef bool
43: #endif
44: #define bool _rl_bool_t
45:
46: #ifndef true
47: # define true 1
48: # define false 0
49: #endif
50:
51: #endif /* !HAVE_STDBOOL_H */
52:
53: /* Null is a valid character in a color indicator (think about Epson
54: printers, for example) so we have to use a length/buffer string
55: type. */
56: struct bin_str
57: {
58: size_t len;
59: const char *string;
60: };
61:
62: /* file type indicators (dir, sock, fifo, ...)
63: Default value is initialized in parse-colors.c.
64: It is then modified from the values of $LS_COLORS. */
65: extern struct bin_str _rl_color_indicator[];
66:
67: /* The LS_COLORS variable is in a termcap-like format. */
68: typedef struct _color_ext_type
69: {
70: struct bin_str ext; /* The extension we're looking for */
71: struct bin_str seq; /* The sequence to output when we do */
72: struct _color_ext_type *next; /* Next in list */
73: } COLOR_EXT_TYPE;
74:
75: /* file extensions indicators (.txt, .log, .jpg, ...)
76: Values are taken from $LS_COLORS in rl_parse_colors(). */
77: extern COLOR_EXT_TYPE *_rl_color_ext_list;
78:
79: #define FILETYPE_INDICATORS \
80: { \
81: C_ORPHAN, C_FIFO, C_CHR, C_DIR, C_BLK, C_FILE, \
82: C_LINK, C_SOCK, C_FILE, C_DIR \
83: }
84:
85: /* Whether we used any colors in the output so far. If so, we will
86: need to restore the default color later. If not, we will need to
87: call prep_non_filename_text before using color for the first time. */
88:
89: enum indicator_no
90: {
91: C_LEFT, C_RIGHT, C_END, C_RESET, C_NORM, C_FILE, C_DIR, C_LINK,
92: C_FIFO, C_SOCK,
93: C_BLK, C_CHR, C_MISSING, C_ORPHAN, C_EXEC, C_DOOR, C_SETUID, C_SETGID,
94: C_STICKY, C_OTHER_WRITABLE, C_STICKY_OTHER_WRITABLE, C_CAP, C_MULTIHARDLINK,
95: C_CLR_TO_EOL
96: };
97:
98:
99: #if !S_IXUGO
100: # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
101: #endif
102:
103: enum filetype
104: {
105: unknown,
106: fifo,
107: chardev,
108: directory,
109: blockdev,
110: normal,
111: symbolic_link,
112: sock,
113: whiteout,
114: arg_directory
115: };
116:
1.1.1.2 ! misho 117: /* Prefix color, currently same as socket */
! 118: #define C_PREFIX C_SOCK
! 119:
1.1 misho 120: extern void _rl_put_indicator (const struct bin_str *ind);
121: extern void _rl_set_normal_color (void);
1.1.1.2 ! misho 122: extern bool _rl_print_prefix_color (void);
! 123: extern bool _rl_print_color_indicator (const char *f);
1.1 misho 124: extern void _rl_prep_non_filename_text (void);
125:
126: #endif /* !_COLORS_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>