/*-1* SPDX-License-Identifier: BSD-3-Clause2*3* Copyright (c) 1989, 19934* The Regents of the University of California. All rights reserved.5*6* This code is derived from software contributed to Berkeley by7* Michael Fischbein.8*9* Redistribution and use in source and binary forms, with or without10* modification, are permitted provided that the following conditions11* are met:12* 1. Redistributions of source code must retain the above copyright13* notice, this list of conditions and the following disclaimer.14* 2. Redistributions in binary form must reproduce the above copyright15* notice, this list of conditions and the following disclaimer in the16* documentation and/or other materials provided with the distribution.17* 3. Neither the name of the University nor the names of its contributors18* may be used to endorse or promote products derived from this software19* without specific prior written permission.20*21* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND22* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE23* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE24* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE25* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL26* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS27* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)28* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT29* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY30* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF31* SUCH DAMAGE.32*/3334#define NO_PRINT 13536#define HUMANVALSTR_LEN 53738extern long blocksize; /* block size units */3940extern int f_accesstime; /* use time of last access */41extern int f_birthtime; /* use time of file creation */42extern int f_flags; /* show flags associated with a file */43extern int f_humanval; /* show human-readable file sizes */44extern int f_label; /* show MAC label */45extern int f_inode; /* print inode */46extern int f_longform; /* long listing format */47extern int f_octal; /* print unprintables in octal */48extern int f_octal_escape; /* like f_octal but use C escapes if possible */49extern int f_nonprint; /* show unprintables as ? */50extern int f_samesort; /* sort time and name in same direction */51extern int f_sectime; /* print the real time for all files */52extern int f_size; /* list size in short listing */53extern int f_slash; /* append a '/' if the file is a directory */54extern int f_sortacross; /* sort across rows, not down columns */55extern int f_sowner; /* disable showing the owner's name */56extern int f_statustime; /* use time of last mode change */57extern int f_thousands; /* show file sizes with thousands separators */58extern char *f_timeformat; /* user-specified time format */59extern int f_notabs; /* don't use tab-separated multi-col output */60extern int f_type; /* add type character for non-regular files */61#ifdef COLORLS62extern int f_color; /* add type in color for non-regular files */63#endif6465typedef struct {66FTSENT *list;67u_long btotal;68int entries;69int maxlen;70u_int s_block;71u_int s_flags;72u_int s_label;73u_int s_group;74u_int s_inode;75u_int s_nlink;76u_int s_size;77u_int s_user;78} DISPLAY;7980typedef struct {81char *user;82char *group;83char *flags;84char *label;85char data[1];86} NAMES;878889