mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Minor optimization, refactor
This commit is contained in:
parent
092cdf3f82
commit
6ccb8ee94b
16
nnn.c
16
nnn.c
|
@ -188,11 +188,11 @@ typedef unsigned char uchar;
|
|||
|
||||
/* Directory entry */
|
||||
typedef struct entry {
|
||||
char name[NAME_MAX];
|
||||
mode_t mode;
|
||||
char name[NAME_MAX + 1];
|
||||
time_t t;
|
||||
off_t size;
|
||||
blkcnt_t blocks; /* number of 512B blocks allocated */
|
||||
mode_t mode;
|
||||
} *pEntry;
|
||||
|
||||
/* Bookmark */
|
||||
|
@ -348,7 +348,7 @@ xstrlen(const char *s)
|
|||
static size_t
|
||||
xstrlcpy(char *dest, const char *src, size_t n)
|
||||
{
|
||||
static size_t len, blocks;
|
||||
static size_t len, blocks, lsize = sizeof(ulong);
|
||||
static const uint _WSHIFT = (sizeof(ulong) == 8) ? 3 : 2;
|
||||
|
||||
if (!src || !dest)
|
||||
|
@ -361,8 +361,11 @@ xstrlcpy(char *dest, const char *src, size_t n)
|
|||
/* Save total number of bytes to copy in len */
|
||||
len = n;
|
||||
|
||||
blocks = n >> _WSHIFT;
|
||||
n -= (blocks << _WSHIFT);
|
||||
if (n >= lsize) {
|
||||
blocks = n >> _WSHIFT;
|
||||
n -= (blocks << _WSHIFT);
|
||||
} else
|
||||
blocks = 0;
|
||||
|
||||
if (blocks) {
|
||||
static ulong *s, *d;
|
||||
|
@ -872,12 +875,11 @@ static void
|
|||
fill(struct entry **dents, int (*filter)(regex_t *, char *), regex_t *re)
|
||||
{
|
||||
static int count;
|
||||
static struct entry _dent, *dentp1, *dentp2;
|
||||
|
||||
for (count = 0; count < ndents; ++count) {
|
||||
if (filter(re, (*dents)[count].name) == 0) {
|
||||
if (count != --ndents) {
|
||||
static struct entry _dent, *dentp1, *dentp2;
|
||||
|
||||
dentp1 = &(*dents)[count];
|
||||
dentp2 = &(*dents)[ndents];
|
||||
|
||||
|
|
Loading…
Reference in a new issue