home *** CD-ROM | disk | FTP | other *** search
- *** Makefile.rtr Thu Nov 5 12:04:57 1992
- --- Makefile Thu Nov 5 12:05:52 1992
- ***************
- *** 1,6 ****
- BIN= <installdir>/bin
- MAN= <installsharedir>/man/man1
- ! CFLAGS= -O
-
- sls: sls.o
- cc sls.o -o sls
- --- 1,6 ----
- BIN= <installdir>/bin
- MAN= <installsharedir>/man/man1
- ! CFLAGS= -O -DSYSV
-
- sls: sls.o
- cc sls.o -o sls
- *** sls.c.orig Thu Nov 5 11:10:59 1992
- --- sls.c Thu Nov 5 12:00:29 1992
- ***************
- *** 24,31 ****
- #include <time.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- ! #include <sys/dir.h>
-
- #define ISEXEC(m) (m & (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)))
- #define MAXUIDS 200 /* max #of user names from passwd file */
- #define MAXGIDS 100 /* max #of group names from group file */
- --- 24,33 ----
- #include <time.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- ! #include <dirent.h>
-
- + #define direct dirent
- +
- #define ISEXEC(m) (m & (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)))
- #define MAXUIDS 200 /* max #of user names from passwd file */
- #define MAXGIDS 100 /* max #of group names from group file */
- ***************
- *** 35,47 ****
- --- 37,53 ----
- * or reverse order if it is a sort key; leading '0' indicates zero-fill
- * (numeric fields) */
- #define F_ADATE 'a' /* access date (optional fmtdate string) */
- + #ifndef SYSV
- #define F_BLOCKS 'b' /* #allocated (512-byte) blocks (+ m,k,c|b) */
- + #endif
- #define F_CDATE 'c' /* inode change date */
- #define F_DEV 'd' /* device number inode resides on */
- #define F_GROUPA 'g' /* ascii group name (from group file) */
- #define F_GROUPN 'G' /* numeric group id */
- #define F_INODE 'i' /* inode number */
- + #ifndef SYSV
- #define F_BLKSIZE 'k' /* optimal file system block size */
- + #endif
- #define F_NLINKS 'l' /* number of hard links */
- #define F_MDATE 'm' /* modify date (optional fmtdate string) */
- #define F_NAME 'n' /* file name (+ b=basename,a=ascii,s=suffix) */
- ***************
- *** 109,114 ****
- --- 115,123 ----
- if ((pav = getenv("SLS_LONGFMT")) != NULL && strlen(pav) > 0)
- longfmt = copystr (pav);
- Use_less = Follow_links = Recursive = Stat_dirs = All_files = 0;
- + #ifdef SYSV
- + Follow_links = 1;
- + #endif
- Dostat = 0;
- Sixmosago = getsixmosago (); /* in case Use_less==1 */
-
- ***************
- *** 233,240 ****
- --- 242,254 ----
- return;
- }
-
- + #ifndef SYSV
- if ((!Follow_links && lstat (fname, &sbuf) != 0)
- || (Follow_links && stat (fname, &sbuf) != 0))
- + #else
- + if (fname == NULL || *fname == NULL) fname = ".";
- + if (Follow_links && stat (fname, &sbuf) != 0)
- + #endif
- {
- fprintf (stderr, "?unable to stat file '%s' (errno=%d)\n",
- fname, errno);
- ***************
- *** 296,302 ****
- /* loop through directory entries */
- for (dentp = readdir(dirp); dentp != NULL; dentp = readdir(dirp))
- {
- ! if (len + dentp->d_namlen >= sizeof(fname))
- {
- *pfname = '\0'; /* so we don't see previous filename part */
- fprintf (stderr, "?file name too long: '%s%s'\n",
- --- 310,316 ----
- /* loop through directory entries */
- for (dentp = readdir(dirp); dentp != NULL; dentp = readdir(dirp))
- {
- ! if (len + strlen(dentp->d_name) >= sizeof(fname))
- {
- *pfname = '\0'; /* so we don't see previous filename part */
- fprintf (stderr, "?file name too long: '%s%s'\n",
- ***************
- *** 428,435 ****
- --- 442,453 ----
- case S_IFDIR: p1 = "d"; break;
- case S_IFCHR: p1 = "c"; break;
- case S_IFBLK: p1 = "b"; break;
- + #ifdef S_IFLNK
- case S_IFLNK: p1 = "l"; break;
- + #endif
- + #ifdef S_IFSOCK
- case S_IFSOCK: p1 = "s"; break;
- + #endif
- case S_IFIFO: p1 = "p"; break;
- default: p1 = "?"; break;
- }
- ***************
- *** 439,446 ****
- --- 457,468 ----
- case S_IFDIR: p2 = "d"; break;
- case S_IFCHR: p2 = "c"; break;
- case S_IFBLK: p2 = "b"; break;
- + #ifdef S_IFLNK
- case S_IFLNK: p2 = "l"; break;
- + #endif
- + #ifdef S_IFSOCK
- case S_IFSOCK: p2 = "s"; break;
- + #endif
- case S_IFIFO: p2 = "p"; break;
- default: p2 = "?"; break;
- }
- ***************
- *** 506,519 ****
- --- 528,545 ----
- l1 = psbuf1->st_size;
- l2 = psbuf2->st_size;
- break;
- + #ifdef F_BLOCKS
- case F_BLOCKS:
- l1 = psbuf1->st_blocks;
- l2 = psbuf2->st_blocks;
- break;
- + #endif
- + #ifdef F_BLKSIZE
- case F_BLKSIZE:
- l1 = psbuf1->st_blksize;
- l2 = psbuf2->st_blksize;
- break;
- + #endif
- case F_MDATE:
- l1 = psbuf1->st_mtime;
- l2 = psbuf2->st_mtime;
- ***************
- *** 644,651 ****
- --- 670,681 ----
- case S_IFDIR: ptmp = "d"; break;
- case S_IFCHR: ptmp = "c"; break;
- case S_IFBLK: ptmp = "b"; break;
- + #ifdef S_IFLNK
- case S_IFLNK: ptmp = "l"; break;
- + #endif
- + #ifdef S_IFSOCK
- case S_IFSOCK: ptmp = "s"; break;
- + #endif
- case S_IFIFO: ptmp = "p"; break;
- default:
- ptmp = "?";
- ***************
- *** 760,765 ****
- --- 790,796 ----
- ++popt;
- }
- break;
- + #ifdef F_BLOCKS
- case F_BLOCKS:
- l = (long) psbuf->st_blocks; /* 512-byte blocks allocated */
- if (*(popt+1) == 'm')
- ***************
- *** 789,798 ****
- --- 820,832 ----
- sprintf (pobuf, fmtstr, l);
- }
- break;
- + #endif
- + #ifdef F_BLKSIZE
- case F_BLKSIZE:
- fmtstr = getfmtstr ('d', (fwid?fwid:4), leftjust, zerofill);
- sprintf (pobuf, fmtstr, psbuf->st_blksize);
- break;
- + #endif
- case F_MDATE:
- if (fwid == 0)
- strcpy (pobuf, fmtdate (psbuf->st_mtime, popt+1, &i));
- ***************
- *** 853,860 ****
- --- 887,898 ----
- switch (psbuf->st_mode & S_IFMT)
- {
- case S_IFDIR: pc = "/"; break;
- + #ifdef S_IFLNK
- case S_IFLNK: pc = "@"; break;
- + #endif
- + #ifdef S_IFSOCK
- case S_IFSOCK: pc = "="; break;
- + #endif
- default:
- if (ISEXEC(psbuf->st_mode))
- pc = "*";
- ***************
- *** 864,869 ****
- --- 902,908 ----
- if (fwid == 0)
- {
- strcpy (pobuf, ptmp);
- + #ifdef S_IFLNK
- if (c == F_NAMEL && !suffix)
- { /* add linked-to filename if a symlink */
- if ((psbuf->st_mode & S_IFMT) == S_IFLNK
- ***************
- *** 874,879 ****
- --- 913,919 ----
- strcat (pobuf, lname);
- }
- }
- + #endif
- }
- else
- {
-