xref: /freebsd/bin/ls/ls.h (revision ce110ea12fcea71ae437d0a1d0549d3d32055b0e)
1  /*-
2   * SPDX-License-Identifier: BSD-3-Clause
3   *
4   * Copyright (c) 1989, 1993
5   *	The Regents of the University of California.  All rights reserved.
6   *
7   * This code is derived from software contributed to Berkeley by
8   * Michael Fischbein.
9   *
10   * Redistribution and use in source and binary forms, with or without
11   * modification, are permitted provided that the following conditions
12   * are met:
13   * 1. Redistributions of source code must retain the above copyright
14   *    notice, this list of conditions and the following disclaimer.
15   * 2. Redistributions in binary form must reproduce the above copyright
16   *    notice, this list of conditions and the following disclaimer in the
17   *    documentation and/or other materials provided with the distribution.
18   * 3. Neither the name of the University nor the names of its contributors
19   *    may be used to endorse or promote products derived from this software
20   *    without specific prior written permission.
21   *
22   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25   * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32   * SUCH DAMAGE.
33   *
34   *	from: @(#)ls.h	8.1 (Berkeley) 5/31/93
35   * $FreeBSD$
36   */
37  
38  #define NO_PRINT	1
39  
40  #define HUMANVALSTR_LEN	5
41  
42  extern long blocksize;		/* block size units */
43  
44  extern int f_accesstime;	/* use time of last access */
45  extern int f_birthtime;	/* use time of file creation */
46  extern int f_flags;		/* show flags associated with a file */
47  extern int f_humanval;		/* show human-readable file sizes */
48  extern int f_label;		/* show MAC label */
49  extern int f_inode;		/* print inode */
50  extern int f_longform;		/* long listing format */
51  extern int f_octal;		/* print unprintables in octal */
52  extern int f_octal_escape;	/* like f_octal but use C escapes if possible */
53  extern int f_nonprint;		/* show unprintables as ? */
54  extern int f_samesort;		/* sort time and name in same direction */
55  extern int f_sectime;		/* print the real time for all files */
56  extern int f_size;		/* list size in short listing */
57  extern int f_slash;		/* append a '/' if the file is a directory */
58  extern int f_sortacross;	/* sort across rows, not down columns */
59  extern int f_statustime;	/* use time of last mode change */
60  extern int f_thousands;		/* show file sizes with thousands separators */
61  extern char *f_timeformat;	/* user-specified time format */
62  extern int f_notabs;		/* don't use tab-separated multi-col output */
63  extern int f_type;		/* add type character for non-regular files */
64  #ifdef COLORLS
65  extern int f_color;		/* add type in color for non-regular files */
66  #endif
67  
68  typedef struct {
69  	FTSENT *list;
70  	u_long btotal;
71  	int entries;
72  	int maxlen;
73  	u_int s_block;
74  	u_int s_flags;
75  	u_int s_label;
76  	u_int s_group;
77  	u_int s_inode;
78  	u_int s_nlink;
79  	u_int s_size;
80  	u_int s_user;
81  } DISPLAY;
82  
83  typedef struct {
84  	char *user;
85  	char *group;
86  	char *flags;
87  	char *label;
88  	char data[1];
89  } NAMES;
90