[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs dired.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs dired.c |
Date: |
Wed, 12 Feb 2014 07:25:37 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/02/12 07:25:37
Modified files:
. : dired.c
Log message:
Show mode information in dired
* compute and display number of directories, files and total bytes
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.37&r2=1.38
Patches:
Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- dired.c 10 Feb 2014 21:21:39 -0000 1.37
+++ dired.c 12 Feb 2014 07:25:35 -0000 1.38
@@ -21,7 +21,7 @@
#include "qe.h"
-enum { DIRED_HEADER = 1 };
+enum { DIRED_HEADER = 2 };
enum {
DIRED_SORT_NAME = 1,
@@ -195,10 +195,31 @@
/* construct list buffer */
b = s->b;
b->flags &= ~BF_READONLY;
+ /* deleting buffer contents resets s->offset and s->offset_top */
eb_delete(b, 0, b->total_size);
if (DIRED_HEADER) {
+ long long total_bytes;
+ int ndirs, nfiles;
+
eb_printf(b, " Directory of %s:\n", ds->path);
+
+ ndirs = nfiles = 0;
+ total_bytes = 0;
+ for (i = 0; i < ds->items.nb_items; i++) {
+ item = ds->items.items[i];
+ dip = item->opaque;
+ if (S_ISDIR(dip->st_mode)) {
+ ndirs++;
+ } else {
+ nfiles++;
+ total_bytes += dip->size;
+ }
+ }
+ eb_printf(b, " %d director%s, %d file%s, %lld byte%s\n",
+ ndirs, ndirs == 1 ? "y" : "ies",
+ nfiles, &"s"[nfiles == 1],
+ (long long)total_bytes, &"s"[total_bytes == 1]);
}
for (i = 0; i < ds->items.nb_items; i++) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs dired.c,
Charlie Gordon <=