void elementwindow (window_t *win, elem_t *elem)
{
char buf[64] = {0};
+
+ int i;
+ for (i = 0; i < win->xsize; i++) {
+ mvaddch (win->yoffset, win->xoffset + i, ' ');
+ }
+
int pos = 0;
+
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0400) ? 'r' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0200) ? 'w' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0100) ? 'x' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0040) ? 'r' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0020) ? 'w' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0010) ? 'x' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0004) ? 'r' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0002) ? 'w' : '-');
+ mvaddch (win->yoffset, win->xoffset + pos++, (elem->mode & 0001) ? 'x' : '-');
+ pos += 1;
+
+ sprintf (buf, "(%d)", (int)(elem->nlk));
+ mvaddstr (win->yoffset, win->xoffset + pos, buf);
+ pos += strlen (buf) + 1;
+
+ if (elem->size < 10000l) {
+ sprintf (buf, "%dB", (int)(elem->size));
+ } else if (elem->size < 10000l * 1024) {
+ sprintf (buf, "%dkB", (int)(elem->size / 1024));
+ } else if (elem->size < 10000l * 1024 * 1024) {
+ sprintf (buf, "%dMB", (int)(elem->size / 1024 / 1024));
+ } else if (elem->size < 10000l * 1024 * 1024 * 1024) {
+ sprintf (buf, "%dGB", (int)(elem->size / 1024 / 1024 / 1024));
+ } else {
+ sprintf (buf, "%dTB", (int)(elem->size / 1024 / 1024 / 1024 / 1024));
+ }
+ mvaddstr (win->yoffset, win->xoffset + pos, buf);
+ pos += strlen (buf) + 1;
+
switch (elem->type) {
case type_unkn_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Unknown");
+ mvaddstr (win->yoffset, win->xoffset + pos, "unknown");
pos += 7;
break;
case type_block_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Block dev");
+ mvaddstr (win->yoffset, win->xoffset + pos, "block.dev");
pos += 9;
break;
case type_char_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Char dev");
+ mvaddstr (win->yoffset, win->xoffset + pos, "char.dev");
pos += 8;
break;
case type_dir_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Directory");
+ mvaddstr (win->yoffset, win->xoffset + pos, "directory");
pos += 9;
break;
case type_pipe_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Pipe");
- pos += 4;
+ mvaddstr (win->yoffset, win->xoffset + pos, "fifo/pipe");
+ pos += 9;
break;
case type_symb_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Link");
- pos += 4;
+ mvaddstr (win->yoffset, win->xoffset + pos, "symb.link");
+ pos += 9;
break;
case type_reg_e:
- if (elem->size < 10000) {
- sprintf (buf, "%d B", elem->size);
- } else if (elem->size < 10000 * 1024) {
- sprintf (buf, "%d kB", elem->size / 1024);
- } else if (elem->size < 10000 * 1024 * 1024) {
- sprintf (buf, "%d MB", elem->size / 1024 / 1024);
- } else if (elem->size < 10000 * 1024 * 1024 * 1024) {
- sprintf (buf, "%d GB", elem->size / 1024 / 1024 / 1024);
- } else {
- sprintf (buf, "%d TB", elem->size / 1024 / 1024 / 1024 / 1024);
- }
- mvaddstr (win->yoffset, win->xoffset + pos, buf);
- pos += strlen (buf);
+ mvaddstr (win->yoffset, win->xoffset + pos, "file");
+ pos += 4;
break;
case type_socket_e:
- mvaddstr (win->yoffset, win->xoffset + pos, "Socket");
+ mvaddstr (win->yoffset, win->xoffset + pos, "socket");
pos += 6;
break;
}
mvaddch (win->yoffset, win->xoffset + pos, '/');
pos += 1;
mvaddstr (win->yoffset, win->xoffset + pos, elem->gid);
- pos += strlen (elem->gid);
- pos += 1;
+ //pos += strlen (elem->gid);
+ //pos += 1;
}
char *getwindow (int length, int xoffset, int yoffset)