Hiding size of "..", improvements for "bsize"
Pavel Roskin
proski at gnu.org
Sun Jan 20 19:51:47 UTC 2002
Hello!
I remember a discussion about mc loading the directory two levels above
the current directory on VFS just to find the size of ".."
As the first step towards fixing this problem, the size of ".." will no be
displayed even in the full listing.
While at this, I also changed the brief mode ("bsize" in the "User
defined" listing) so that it shows "SUB-DIR" for symlinks to directories,
not just for the directories. Other symlinks will be shown as "SYMLINK".
===================================
--- ChangeLog
+++ ChangeLog
@@ -1 +1,10 @@
+2002-01-20 Pavel Roskin <proski at gnu.org>
+
+ * screen.c (string_file_size): Don't display size of ".." - it
+ may take too much time to calculate it on VFS. Show "UP--DIR"
+ instead.
+ (string_file_size_brief): Remove ".." handling - it's now done
+ in string_file_size(). Show "SUB-DIR" for links to directories,
+ "SYMLINK" for other links.
+
2002-01-17 Pavel Roskin <proski at gnu.org>
--- screen.c
+++ screen.c
@@ -172,6 +172,12 @@ string_file_size (file_entry *fe, int le
{
static char buffer [BUF_TINY];
+ /* Don't ever show size of ".." since we don't calculate it */
+ if (!strcmp (fe->fname, "..")) {
+ strcpy (buffer, N_("UP--DIR"));
+ return buffer;
+ }
+
#ifdef HAVE_ST_RDEV
if (S_ISBLK (fe->buf.st_mode) || S_ISCHR (fe->buf.st_mode))
g_snprintf (buffer, sizeof (buffer), "%3d,%3d",
@@ -191,8 +197,13 @@ string_file_size_brief (file_entry *fe,
{
static char buffer [BUF_TINY];
- if (S_ISDIR (fe->buf.st_mode)){
- strcpy (buffer, _(strcmp (fe->fname, "..") ? N_("SUB-DIR") : N_("UP--DIR")));
+ if (S_ISLNK (fe->buf.st_mode) && !fe->f.link_to_dir) {
+ strcpy (buffer, N_("SYMLINK"));
+ return buffer;
+ }
+
+ if ((S_ISDIR (fe->buf.st_mode) || fe->f.link_to_dir) && strcmp (fe->fname, "..")) {
+ strcpy (buffer, N_("SUB-DIR"));
return buffer;
}
===================================
--
Regards,
Pavel Roskin
More information about the mc-devel
mailing list