]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(decode_switches, print_long_format): New option: --full-time.
authorJim Meyering <jim@meyering.net>
Sun, 28 Mar 1993 18:21:25 +0000 (18:21 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 28 Mar 1993 18:21:25 +0000 (18:21 +0000)
src/ls.c

index f4ae904b7f8a0c14bf10d6763bf282a7f0b2068e..c26b91f92f924e848007d3bf9f7df6eba0e130ea 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -214,6 +214,10 @@ enum time_type
 
 static enum time_type time_type;
 
+/* print the full time, -T, otherwise the standard unix heuristics. */
+
+int full_time;
+
 /* The file characteristic to sort by.  Controlled by -t, -S, -U, -X. */
 
 enum sort_type
@@ -425,6 +429,7 @@ static struct option const long_options[] =
   {"all", no_argument, 0, 'a'},
   {"escape", no_argument, 0, 'b'},
   {"directory", no_argument, 0, 'd'},
+  {"full-time", no_argument, 0, 'f'},
   {"inode", no_argument, 0, 'i'},
   {"kilobytes", no_argument, 0, 'k'},
   {"numeric-uid-gid", no_argument, 0, 'n'},
@@ -522,6 +527,7 @@ decode_switches (argc, argv)
 #endif
 
   time_type = time_mtime;
+  full_time = 0;
   sort_type = sort_name;
   sort_reverse = 0;
   numeric_users = 0;
@@ -552,7 +558,7 @@ decode_switches (argc, argv)
   p = getenv ("TABSIZE");
   tabsize = p ? atoi (p) : 8;
 
-  while ((c = getopt_long (argc, argv, "abcdgiklmnpqrstuw:xABCFI:LNQRST:UX1",
+  while ((c = getopt_long (argc, argv, "abcdfgiklmnpqrstuw:xABCFI:LNQRST:UX1",
                           long_options, (int *) 0)) != EOF)
     {
       switch (c)
@@ -574,7 +580,11 @@ decode_switches (argc, argv)
        case 'd':
          immediate_dirs = 1;
          break;
-         
+
+       case 'f':
+         full_time = 1;
+         break;
+
        case 'g':
          /* No effect.  For BSD compatibility. */
          break;
@@ -1368,18 +1378,24 @@ print_long_format (f)
     }
 
   strcpy (timebuf, ctime (&when));
-  if (current_time > when + 6L * 30L * 24L * 60L * 60L /* Old. */
-      || current_time < when - 60L * 60L) /* In the future. */
+
+  if (full_time)
+    timebuf[24] = '\0';
+  else
     {
-      /* The file is fairly old or in the future.
-        POSIX says the cutoff is 6 months old;
-        approximate this by 6*30 days.
-        Allow a 1 hour slop factor for what is considered "the future",
-        to allow for NFS server/client clock disagreement.
-        Show the year instead of the time of day.  */
-      strcpy (timebuf + 11, timebuf + 19);
+      if (current_time > when + 6L * 30L * 24L * 60L * 60L /* Old. */
+         || current_time < when - 60L * 60L) /* In the future. */
+       {
+         /* The file is fairly old or in the future.
+            POSIX says the cutoff is 6 months old;
+            approximate this by 6*30 days.
+            Allow a 1 hour slop factor for what is considered "the future",
+            to allow for NFS server/client clock disagreement.
+            Show the year instead of the time of day.  */
+         strcpy (timebuf + 11, timebuf + 19);
+       }
+      timebuf[16] = 0;
     }
-  timebuf[16] = 0;
 
   if (print_inode)
     printf ("%6u ", f->stat.st_ino);
@@ -1408,7 +1424,7 @@ print_long_format (f)
   else
     printf ("%8lu ", f->stat.st_size);
 
-  printf ("%s ", timebuf + 4);
+  printf ("%s ", full_time ? timebuf : timebuf + 4);
 
   print_name_with_quoting (f->name);