summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
918d99a)
SCCS-vsn: bin/ls/ls.c 5.21
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)ls.c 5.20 (Berkeley) %G%";
+static char sccsid[] = "@(#)ls.c 5.21 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#include <sys/stat.h>
#endif /* not lint */
#include <sys/param.h>
#include <sys/stat.h>
#include <dirent.h>
#include <strings.h>
#include <errno.h>
#include <dirent.h>
#include <strings.h>
#include <errno.h>
/* flags */
int f_accesstime; /* use time of last access */
/* flags */
int f_accesstime; /* use time of last access */
-int f_firsttime = 1; /* to control recursion */
int f_group; /* show group ownership of a file */
int f_ignorelink; /* indirect through symbolic link operands */
int f_inode; /* print inode */
int f_group; /* show group ownership of a file */
int f_ignorelink; /* indirect through symbolic link operands */
int f_inode; /* print inode */
char **argv;
{
extern int optind, stat();
char **argv;
{
extern int optind, stat();
+ struct sgttyb sgbuf;
+ struct winsize win;
int namecmp(), revnamecmp(), acccmp(), revacccmp();
int modcmp(), revmodcmp(), statcmp(), revstatcmp();
int namecmp(), revnamecmp(), acccmp(), revacccmp();
int modcmp(), revmodcmp(), statcmp(), revstatcmp();
+ int printcol(), printlong(), printscol();
/*
* terminal defaults to -C -q
/*
* terminal defaults to -C -q
if (isatty(1)) {
f_nonprint = 1;
lengthfcn = prablelen;
if (isatty(1)) {
f_nonprint = 1;
lengthfcn = prablelen;
+ (void)ioctl(1, TIOCGETP, &sgbuf);
+ if (ioctl(1, TIOCGWINSZ, &win) == -1 || !win.ws_col)
+ termwidth = (p = getenv("COLUMNS")) ? atoi(p) : 80;
+ else
+ termwidth = win.ws_col;
+ /* select a print function */
+ if (f_singlecol)
+ printfcn = printscol;
+ else if (f_longform)
+ printfcn = printlong;
+ else
+ printfcn = printcol;
+
if (argc)
doargs(argc, argv);
else
if (argc)
doargs(argc, argv);
else
if (num > 1 && !f_specialdir)
qsort((char *)stats, num, sizeof(LS), sortfcn);
if (num > 1 && !f_specialdir)
qsort((char *)stats, num, sizeof(LS), sortfcn);
if (f_recursive) {
savedpath = endofpath;
if (f_recursive) {
savedpath = endofpath;