Kaynağa Gözat

Code reformat

master
Arun Prakash Jana 4 yıl önce
ebeveyn
işleme
b1ff36eb05
Veri tabanında bu imza için bilinen anahtar bulunamadı GPG Anahtar Kimliği: A75979F35C080412
1 değiştirilmiş dosya ile 83 ekleme ve 68 silme
  1. +83
    -68
      src/nnn.c

+ 83
- 68
src/nnn.c Dosyayı Görüntüle

@@ -3360,59 +3360,38 @@ static char *coolsize(off_t size)
return size_buf;
}

static char get_ind(mode_t mode, bool perms, uchar *pair)
/* Convert a mode field into "ls -l" type perms field. */
static char *get_lsperms(mode_t mode)
{
static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"};
static char bits[11] = {'\0'};

switch (mode & S_IFMT) {
case S_IFREG:
if (perms)
return '-';
if (mode & 0100) {
*pair = C_EXE;
return '*';
}
*pair = C_FIL;
return '\0';
bits[0] = '-';
break;
case S_IFDIR:
if (perms)
return 'd';
*pair = C_DIR;
return '/';
bits[0] = 'd';
break;
case S_IFLNK:
return perms ? 'l' : '@';
bits[0] = 'l';
break;
case S_IFSOCK:
if (perms)
return 's';
*pair = C_SOC;
return '=';
bits[0] = 's';
break;
case S_IFIFO:
if (perms)
return 'p';
*pair = C_PIP;
return '|';
bits[0] = 'p';
break;
case S_IFBLK:
if (perms)
return 'b';
*pair = C_BLK;
return '\0';
bits[0] = 'b';
break;
case S_IFCHR:
if (perms)
return 'c';
*pair = C_CHR;
return '\0';
bits[0] = 'c';
break;
default:
if (!perms)
*pair = C_UND;
return '?';
bits[0] = '?';
break;
}
}

/* Convert a mode field into "ls -l" type perms field. */
static char *get_lsperms(mode_t mode)
{
static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"};
static char bits[11] = {'\0'};

bits[0] = get_ind(mode, TRUE, NULL);

xstrsncpy(&bits[1], rwx[(mode >> 6) & 7], 4);
xstrsncpy(&bits[4], rwx[(mode >> 3) & 7], 4);
@@ -3439,30 +3418,63 @@ static void print_time(const time_t *timep)
static void printent(const struct entry *ent, uint namecols, bool sel)
{
uchar pair = 0;
char ind = get_ind(ent->mode, FALSE, &pair);
char ind = '\0';
int attrs = sel ? A_REVERSE : 0;

if (g_state.ctxcolor) {
if (ind == '@') {
if (ent->flags & DIR_OR_LINK_TO_DIR)
ind = '/';
attrs |= A_DIM;
} else if (ent->flags & HARD_LINK)
attrs |= A_DIM;
} else {
if (ind == '@') {
if (ent->flags & DIR_OR_LINK_TO_DIR) {
ind = '/';
attrs |= A_BOLD;
}
pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
} else if (!ent->size && (pair == C_FIL || pair == C_EXE))
switch (ent->mode & S_IFMT) {
case S_IFREG:
if (ent->mode & 0100) {
pair = C_EXE;
ind = '*';
}

if (ent->flags & HARD_LINK)
pair = C_HRD;

if (!ent->size)
pair = C_UND;
else if (pair == C_DIR)
else if (!pair)
pair = C_FIL;
break;
case S_IFDIR:
pair = C_DIR;
attrs |= A_BOLD;
ind = '/';
break;
case S_IFLNK:
if (ent->flags & DIR_OR_LINK_TO_DIR) {
attrs |= A_BOLD;
else if (ent->flags & HARD_LINK)
pair = C_HRD;
else if (ent->flags & FILE_MISSING)
ind = '/';
} else
ind = '@';

if (g_state.ctxcolor)
attrs |= A_DIM;
else
pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
break;
case S_IFSOCK:
pair = C_SOC;
ind = '=';
break;
case S_IFIFO:
pair = C_PIP;
ind = '|';
break;
case S_IFBLK:
pair = C_BLK;
break;
case S_IFCHR:
pair = C_CHR;
break;
default:
pair = C_UND;
ind = '?';
break;
}

if (!g_state.ctxcolor) {
if (ent->flags & FILE_MISSING)
pair = C_MIS;

if (pair && fcolors[pair])
@@ -3532,6 +3544,7 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
pair = C_EXE;
ind2 = '*';
}

if (ent->flags & HARD_LINK) {
pair = C_HRD;
ln = TRUE;
@@ -3589,17 +3602,19 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
break;
}

if (ent->flags & FILE_MISSING)
pair = C_MIS;

addstr(" ");
if (!(ln && g_state.ctxcolor)) {
attroff(A_DIM);
attrs ^= A_DIM;

if (!g_state.ctxcolor && pair && fcolors[pair]) {
attrs |= COLOR_PAIR(pair);
attron(attrs);
if (!g_state.ctxcolor) {
if (ent->flags & FILE_MISSING)
pair = C_MIS;

if (pair && fcolors[pair]) {
attrs |= COLOR_PAIR(pair);
attron(attrs);
}
}
}
#ifndef NOLOCALE


Yükleniyor…
İptal
Kaydet