-- 
mailto:[EMAIL PROTECTED]
? mc.patch
? edit/.deps
? slang/.deps
? src/.deps
Index: src/dir.c
===================================================================
RCS file: /cvs/gnome/mc/src/dir.c,v
retrieving revision 1.27
diff -u -p -r1.27 dir.c
--- src/dir.c   2001/09/07 17:52:19     1.27
+++ src/dir.c   2001/10/28 00:25:01
@@ -145,13 +145,21 @@ sort_ext (const file_entry *a, const fil
     int bd = MY_ISDIR (b);
 
     if (ad == bd || mix_all_files){
+      if (a->fname[0] == '.' || b->fname[0] == '.') {
+       if (a->fname[0] == '.' && b->fname[0] == '.')
+          return sort_name (a, b); /* so they appear at bottom */
+        else
+          return sort_name (a, b) * -reverse;
+      } else {
        exta = extension (a->fname);
        extb = extension (b->fname);
+
        r = string_sortcomp (exta, extb);
        if (r)
-           return r * reverse;
+          return r * reverse;
        else
-           return sort_name (a, b);
+          return sort_name (a, b);
+      }
     } else
        return bd-ad;
 }
Index: src/main.c
===================================================================
RCS file: /cvs/gnome/mc/src/main.c,v
retrieving revision 1.173
diff -u -p -r1.173 main.c
--- src/main.c  2001/10/01 06:51:15     1.173
+++ src/main.c  2001/10/28 00:25:15
@@ -829,6 +829,9 @@ int quiet_quit_cmd (void)
     return quit;
 }
 
+/* To align file extensions */
+int align_file_extensions = 1;
+
 /*
  * Touch window and refresh window functions
  */
Index: src/main.h
===================================================================
RCS file: /cvs/gnome/mc/src/main.h,v
retrieving revision 1.27
diff -u -p -r1.27 main.h
--- src/main.h  2001/10/23 01:39:25     1.27
+++ src/main.h  2001/10/28 00:25:18
@@ -105,6 +105,7 @@ extern int only_leading_plus_minus;
 extern int ftpfs_directory_timeout;
 extern int output_starts_shell;
 extern int midnight_shutdown;
+extern int align_file_extensions;
 extern char search_buffer [256];
 extern char cmd_buf [512];
 extern char *cmdline_geometry;
Index: src/screen.c
===================================================================
RCS file: /cvs/gnome/mc/src/screen.c,v
retrieving revision 1.101
diff -u -p -r1.101 screen.c
--- src/screen.c        2001/10/01 04:31:49     1.101
+++ src/screen.c        2001/10/28 00:25:32
@@ -169,9 +169,59 @@ add_permission_string (char *dest, int w
 char *
 string_file_name (file_entry *fe, int len)
 {
-       return fe->fname;
+/* start modification */
+#ifdef ALIGN_EXT_2
+  char *ext;
+  int flen, elen;
+  static char buffer [1000];   /* at most fname len (duh!) */
+  
+  flen = strlen(fe->fname);
+  ext = extension(fe->fname);
+  elen = strlen(ext);
+  
+  if (fe->fname[0] == '.' || elen == 0) return fe->fname;
+  memcpy(buffer, fe->fname, flen - elen - 1);
+  buffer[flen - elen - 1] = 0;
+  
+  return buffer;
+  
+#else
+  if (align_file_extensions == 0) {
+    return fe->fname;
+  } else {
+    
+    char *ext;
+    int flen, dlen, elen;
+    static char buffer [100];  /* at most len */
+  
+    flen = strlen(fe->fname);
+    dlen = len - (flen - 1);
+
+    if (fe->fname[0] == '.' || dlen <= 0) return fe->fname;
+    ext = extension(fe->fname);
+    elen = strlen(ext);
+    if (elen == 0) return fe->fname;
+
+    memset(buffer, ' ', len);
+    memcpy(buffer, fe->fname, flen - elen - 1);
+    memcpy(buffer + (len - elen), ext, elen);
+    buffer[len] = 0;
+  
+  /* end */
+    return buffer;
+  }
+#endif
 }
 
+#ifdef ALIGN_EXT_2
+/* ext */
+char *
+string_file_ext (file_entry *fe, int len)
+{
+  return extension(fe->fname);
+}
+#endif
+
 /* size */
 char *
 string_file_size (file_entry *fe, int len)
@@ -385,6 +435,10 @@ static struct {
     sortfn *sort_routine;
 } formats [] = {
 { "name",  12, 1, J_LEFT_FIT,  N_("Name"),     1, string_file_name,       (sortfn *) 
sort_name },
+#ifdef ALIGN_EXT_2
+{ "ext",   3,  1, J_RIGHT,      N_("Extension"),1, string_file_ext, NULL
+    },
+#endif
 { "size",  7,  0, J_RIGHT,     N_("Size"),     1, string_file_size,       (sortfn *) 
sort_size },
 { "bsize", 7,  0, J_RIGHT,     N_("Size"),     1, string_file_size_brief, (sortfn *) 
sort_size },
 { "type",  GT, 0, J_LEFT,      "",             2, string_file_type,       (sortfn *) 
sort_type },
Index: src/setup.c
===================================================================
RCS file: /cvs/gnome/mc/src/setup.c,v
retrieving revision 1.56
diff -u -p -r1.56 setup.c
--- src/setup.c 2001/10/01 06:08:57     1.56
+++ src/setup.c 2001/10/28 00:25:35
@@ -156,6 +156,7 @@ static const struct {
     { "show_backups", &show_backups },
     { "show_dot_files", &show_dot_files },
     { "verbose", &verbose },
+    { "align_file_extensions", &align_file_extensions },
     { "mark_moves_down", &mark_moves_down },
     { "pause_after_run", &pause_after_run },
     { "shell_patterns", &easy_patterns },

Reply via email to