1 #include <sys/param.h> 2 3 #ifndef MAXPATHLEN 4 #define MAXPATHLEN 1024 /* max length of directory name */ 5 #endif 6 #define PATSZ 20 /* max length of pattern */ 7 8 #define SORTNAME 1 /* sort by name */ 9 #define SORTEXT 2 /* sort by extension */ 10 #define SORTTIME 3 /* sort by time */ 11 #define SORTSIZE 4 /* sort by size */ 12 #define SORTSKIP 5 /* unsorted */ 13 14 #ifdef SHORTNAMES 15 # define NAMESZ 15 16 #else 17 # define NAMESZ 63 18 #endif 19 20 struct file { 21 char name [NAMESZ]; /* file name */ 22 char *info; /* file info */ 23 char *rinfo; /* file info in russian */ 24 unsigned execable:1; /* file is executable for me */ 25 unsigned tag:1; /* file tagged */ 26 unsigned link:1; /* symbolic link */ 27 unsigned infoflag:1; /* info is read */ 28 unsigned dateflag:1; /* date is read from info file */ 29 unsigned long size; /* file size */ 30 unsigned short mode; /* access mode */ 31 unsigned short uid; /* user ident */ 32 unsigned short gid; /* group ident */ 33 unsigned short nlink; /* number of file links */ 34 short dev; /* device */ 35 short rdev; /* special file parameters */ 36 unsigned long ino; /* i-node */ 37 unsigned long mtime; /* modification time */ 38 unsigned long atime; /* access time */ 39 unsigned long ctime; /* status change time */ 40 unsigned long infodate; /* date from info file */ 41 }; 42 43 struct dir { 44 char cwd [MAXPATHLEN]; /* directory full name */ 45 char *shortcwd; /* short printable directory name */ 46 short dev; /* device */ 47 unsigned long ino; /* i-node */ 48 struct file *cat; /* catalog */ 49 int catsz; /* length of catalog */ 50 int num; /* number of files in cat */ 51 int topfile; /* top file in the window */ 52 int curfile; /* current file */ 53 char view; /* view format */ 54 char status; /* is it status window */ 55 char sort; /* sort kind */ 56 char typesort; /* sort by file types */ 57 char revsort; /* reverse sorting */ 58 char alignext; /* align extensions */ 59 int basecol; /* base of window */ 60 int nfiles; /* number of regular files */ 61 long nbytes; /* number of bytes used */ 62 int mfiles; /* number of matched files */ 63 long mbytes; /* number of bytes matched */ 64 int tfiles; /* number of tagged files */ 65 long tbytes; /* number of bytes tagged */ 66 char pattern [PATSZ]; /* pattern for file names */ 67 }; 68