Code cleanup
This commit is contained in:
parent
52c3dfc1ea
commit
c3f10f08f2
6
src/ls.c
6
src/ls.c
|
@ -378,11 +378,11 @@ static int _ls_do_files_short(Prefs * prefs, char * directory, SList * files)
|
||||||
{
|
{
|
||||||
char * cols;
|
char * cols;
|
||||||
char * p;
|
char * p;
|
||||||
long len = 0;
|
size_t len = 0;
|
||||||
size_t lencur;
|
size_t lencur;
|
||||||
size_t lenmax = 0;
|
size_t lenmax = 0;
|
||||||
unsigned int colnb = 0;
|
size_t colnb = 0;
|
||||||
unsigned int i = 0;
|
size_t i = 0;
|
||||||
size_t j = 0;
|
size_t j = 0;
|
||||||
char c;
|
char c;
|
||||||
SList cur;
|
SList cur;
|
||||||
|
|
64
src/pr.c
64
src/pr.c
|
@ -65,42 +65,45 @@ static int _pr_error(char const * message, int ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _pr_do */
|
/* _pr_do */
|
||||||
|
static char const * _do_mtime(FILE * fp, char const * filename);
|
||||||
static void _do_offset(int offset);
|
static void _do_offset(int offset);
|
||||||
static void _do_header(Prefs * prefs, time_t const mtime, char const * filename,
|
static void _do_header(Prefs * prefs, char const * mtime, char const * filename,
|
||||||
unsigned long page);
|
unsigned long page);
|
||||||
static void _do_footer(Prefs * prefs);
|
static void _do_footer(Prefs * prefs);
|
||||||
|
|
||||||
static int _pr_do(Prefs * prefs, FILE * fp, char const * filename)
|
static int _pr_do(Prefs * prefs, FILE * fp, char const * filename)
|
||||||
{
|
{
|
||||||
struct stat st;
|
char const * mtime;
|
||||||
char * buf;
|
char * buf;
|
||||||
size_t len;
|
size_t len;
|
||||||
int nb = 0;
|
int nb = 0;
|
||||||
unsigned long page = 1;
|
unsigned long page = 1;
|
||||||
unsigned long line = 1;
|
unsigned long line = 1;
|
||||||
|
|
||||||
if(fp == stdin)
|
mtime = _do_mtime(fp, filename);
|
||||||
st.st_mtime = time(NULL);
|
|
||||||
else if(fstat(fileno(fp), &st) != 0)
|
|
||||||
{
|
|
||||||
st.st_mtime = 0;
|
|
||||||
_pr_error(filename, 0);
|
|
||||||
}
|
|
||||||
if((buf = malloc(prefs->width + 1)) == NULL)
|
if((buf = malloc(prefs->width + 1)) == NULL)
|
||||||
return _pr_error("malloc", 1);
|
return _pr_error("malloc", 1);
|
||||||
while(fgets(buf, prefs->width, fp) != NULL)
|
while(fgets(buf, prefs->width, fp) != NULL)
|
||||||
{
|
{
|
||||||
if(nb == 0 && !(prefs->flags & PREFS_t) && prefs->lines > 10)
|
if(nb == 0 && !(prefs->flags & PREFS_t) && prefs->lines > 10)
|
||||||
{
|
{
|
||||||
_do_header(prefs, st.st_mtime, filename, page++);
|
_do_header(prefs, mtime, filename, page++);
|
||||||
nb = 10;
|
nb = 10;
|
||||||
}
|
}
|
||||||
_do_offset(prefs->offset); /* FIXME not if truncated line */
|
_do_offset(prefs->offset); /* FIXME not if truncated line */
|
||||||
if(prefs->flags & PREFS_n)
|
if(prefs->flags & PREFS_n)
|
||||||
printf("%5lu ", line++);
|
printf("%5lu ", line);
|
||||||
if((len = strlen(buf)) > 0 && buf[len - 1] == '\n'
|
if((len = strlen(buf)) > 0)
|
||||||
&& prefs->flags & PREFS_d)
|
{
|
||||||
buf[len++] = '\n'; /* XXX with offset? */
|
if(buf[len - 1] != '\n')
|
||||||
|
buf[len++] = '\n';
|
||||||
|
else
|
||||||
|
{
|
||||||
|
line++;
|
||||||
|
if(prefs->flags & PREFS_d)
|
||||||
|
buf[len++] = '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
if(fwrite(buf, sizeof(char), len, stdout) != len)
|
if(fwrite(buf, sizeof(char), len, stdout) != len)
|
||||||
{
|
{
|
||||||
free(buf);
|
free(buf);
|
||||||
|
@ -120,31 +123,42 @@ static int _pr_do(Prefs * prefs, FILE * fp, char const * filename)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char const * _do_mtime(FILE * fp, char const * filename)
|
||||||
|
{
|
||||||
|
static char buf[18];
|
||||||
|
struct stat st;
|
||||||
|
struct tm tm;
|
||||||
|
|
||||||
|
if(fp == stdin)
|
||||||
|
st.st_mtime = time(NULL);
|
||||||
|
else if(fstat(fileno(fp), &st) != 0)
|
||||||
|
{
|
||||||
|
st.st_mtime = 0;
|
||||||
|
_pr_error(filename, 0);
|
||||||
|
}
|
||||||
|
localtime_r(&st.st_mtime, &tm);
|
||||||
|
buf[strftime(buf, sizeof(buf), "%b %e %H:%M %Y", &tm)] = '\0';
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
static void _do_offset(int offset)
|
static void _do_offset(int offset)
|
||||||
{
|
{
|
||||||
while(offset-- > 0)
|
while(offset-- > 0)
|
||||||
fputc(' ', stdout);
|
fputc(' ', stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _do_header(Prefs * prefs, time_t const mtime, char const * filename,
|
static void _do_header(Prefs * prefs, char const * mtime, char const * filename,
|
||||||
unsigned long page)
|
unsigned long page)
|
||||||
{
|
{
|
||||||
struct tm tm;
|
|
||||||
char buf[18];
|
|
||||||
int nb;
|
int nb;
|
||||||
|
|
||||||
for(nb = 0; nb < 5; nb++)
|
for(nb = 0; nb < 5; nb++)
|
||||||
{
|
{
|
||||||
_do_offset(prefs->offset);
|
_do_offset(prefs->offset);
|
||||||
if(nb == 2)
|
if(nb == 2)
|
||||||
{
|
printf("%s %s%s%lu", mtime, prefs->header != NULL
|
||||||
localtime_r(&mtime, &tm);
|
? prefs->header : filename,
|
||||||
strftime(buf, sizeof(buf) - 1, "%b %e %H:%M %Y", &tm);
|
" Page ", page);
|
||||||
buf[sizeof(buf) - 1] = '\0';
|
|
||||||
printf("%s %s%s%lu", buf, prefs->header != NULL
|
|
||||||
? prefs->header : filename, " Page ",
|
|
||||||
page);
|
|
||||||
}
|
|
||||||
fputc('\n', stdout);
|
fputc('\n', stdout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user