xref: /openbsd/bin/ls/ls.h (revision 414d371c)
1 /*	$OpenBSD: ls.h,v 1.10 2023/10/07 11:51:08 schwarze Exp $	*/
2 /*	$NetBSD: ls.h,v 1.7 1995/03/21 09:06:33 cgd Exp $	*/
3 
4 /*
5  * Copyright (c) 1989, 1993
6  *	The Regents of the University of California.  All rights reserved.
7  *
8  * This code is derived from software contributed to Berkeley by
9  * Michael Fischbein.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  * 3. Neither the name of the University nor the names of its contributors
20  *    may be used to endorse or promote products derived from this software
21  *    without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  * SUCH DAMAGE.
34  *
35  *	@(#)ls.h	8.1 (Berkeley) 5/31/93
36  */
37 
38 #define NO_PRINT	1
39 
40 extern long blocksize;		/* block size units */
41 
42 extern int f_accesstime;	/* use time of last access */
43 extern int f_flags;		/* show flags associated with a file */
44 extern int f_grouponly;		/* long listing format without owner */
45 extern int f_humanval;		/* show human-readable file sizes */
46 extern int f_inode;		/* print inode */
47 extern int f_longform;		/* long listing format */
48 extern int f_nonprint;		/* show unprintables as ? */
49 extern int f_sectime;		/* print the real time for all files */
50 extern int f_size;		/* list size in short listing */
51 extern int f_statustime;	/* use time of last mode change */
52 extern int f_type;		/* add type character for non-regular files */
53 extern int f_typedir;		/* add type character for directories */
54 
55 typedef struct {
56 	FTSENT *list;
57 	unsigned long long btotal;
58 	int entries;
59 	int maxlen;
60 	int s_block;
61 	int s_flags;
62 	int s_group;
63 	int s_inode;
64 	int s_nlink;
65 	int s_size;
66 	int s_major;
67 	int s_minor;
68 	int s_user;
69 } DISPLAY;
70 
71 typedef struct {
72 	char *user;
73 	char *group;
74 	char *flags;
75 	char data[1];
76 } NAMES;
77 
78 int	ls_main(int, char *[]);
79