[BACK]Return to stat.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / stat

Diff for /src/usr.bin/stat/stat.c between version 1.1 and 1.2

version 1.1, 2005/04/01 07:07:31 version 1.2, 2005/04/02 13:48:35
Line 42 
Line 42 
     "$OpenBSD$";      "$OpenBSD$";
 #endif  #endif
   
 #if ! HAVE_NBTOOL_CONFIG_H  
 #define HAVE_STRUCT_STAT_ST_FLAGS 1  
 #define HAVE_STRUCT_STAT_ST_GEN 1  
 #define HAVE_STRUCT_STAT_ST_BIRTHTIME 0  #define HAVE_STRUCT_STAT_ST_BIRTHTIME 0
 #define HAVE_STRUCT_STAT_ST_MTIMENSEC 1  
 #define HAVE_DEVNAME 1  
 #endif /* HAVE_NBTOOL_CONFIG_H */  
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
Line 65 
Line 59 
 #include <time.h>  #include <time.h>
 #include <unistd.h>  #include <unistd.h>
   
 #if HAVE_STRUCT_STAT_ST_FLAGS  
 #define DEF_F "%#Xf "  #define DEF_F "%#Xf "
 #define RAW_F "%f "  #define RAW_F "%f "
 #define SHELL_F " st_flags=%f"  #define SHELL_F " st_flags=%f"
 #else /* HAVE_STRUCT_STAT_ST_FLAGS */  
 #define DEF_F  
 #define RAW_F  
 #define SHELL_F  
 #endif /* HAVE_STRUCT_STAT_ST_FLAGS */  
   
 #if HAVE_STRUCT_STAT_ST_BIRTHTIME  #if HAVE_STRUCT_STAT_ST_BIRTHTIME
 #define DEF_B "\"%SB\" "  #define DEF_B "\"%SB\" "
Line 85 
Line 73 
 #define SHELL_B  #define SHELL_B
 #endif /* HAVE_STRUCT_STAT_ST_BIRTHTIME */  #endif /* HAVE_STRUCT_STAT_ST_BIRTHTIME */
   
 #if HAVE_STRUCT_STAT_ST_ATIM  
 #define st_atimespec st_atim  
 #define st_ctimespec st_ctim  
 #define st_mtimespec st_mtim  
 #endif /* HAVE_STRUCT_STAT_ST_ATIM */  
   
 #define DEF_FORMAT \  #define DEF_FORMAT \
         "%d %i %Sp %l %Su %Sg %r %z \"%Sa\" \"%Sm\" \"%Sc\" " DEF_B \          "%d %i %Sp %l %Su %Sg %r %z \"%Sa\" \"%Sm\" \"%Sc\" " DEF_B \
         "%k %b " DEF_F "%N"          "%k %b " DEF_F "%N"
Line 574 
Line 556 
         case SHOW_st_rdev:          case SHOW_st_rdev:
                 small = (sizeof(st->st_dev) == 4);                  small = (sizeof(st->st_dev) == 4);
                 data = (what == SHOW_st_dev) ? st->st_dev : st->st_rdev;                  data = (what == SHOW_st_dev) ? st->st_dev : st->st_rdev;
 #if HAVE_DEVNAME  
                 sdata = (what == SHOW_st_dev) ?                  sdata = (what == SHOW_st_dev) ?
                     devname(st->st_dev, S_IFBLK) :                      devname(st->st_dev, S_IFBLK) :
                     devname(st->st_rdev,                      devname(st->st_rdev,
Line 583 
Line 564 
                     0U);                      0U);
                 if (sdata == NULL)                  if (sdata == NULL)
                         sdata = "???";                          sdata = "???";
 #endif /* HAVE_DEVNAME */  
                 if (hilo == HIGH_PIECE) {                  if (hilo == HIGH_PIECE) {
                         data = major(data);                          data = major(data);
                         hilo = 0;                          hilo = 0;
Line 593 
Line 573 
                         hilo = 0;                          hilo = 0;
                 }                  }
                 formats = FMTF_DECIMAL | FMTF_OCTAL | FMTF_UNSIGNED | FMTF_HEX |                  formats = FMTF_DECIMAL | FMTF_OCTAL | FMTF_UNSIGNED | FMTF_HEX |
 #if HAVE_DEVNAME  
                     FMTF_STRING;                      FMTF_STRING;
 #else /* HAVE_DEVNAME */  
                     0;  
 #endif /* HAVE_DEVNAME */  
                 if (ofmt == 0)                  if (ofmt == 0)
                         ofmt = FMTF_UNSIGNED;                          ofmt = FMTF_UNSIGNED;
                 break;                  break;
Line 679 
Line 655 
         case SHOW_st_atime:          case SHOW_st_atime:
                 gottime = 1;                  gottime = 1;
                 secs = st->st_atime;                  secs = st->st_atime;
 #if HAVE_STRUCT_STAT_ST_MTIMENSEC  
                 nsecs = st->st_atimensec;                  nsecs = st->st_atimensec;
 #endif  
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case SHOW_st_mtime:          case SHOW_st_mtime:
                 if (!gottime) {                  if (!gottime) {
                         gottime = 1;                          gottime = 1;
                         secs = st->st_mtime;                          secs = st->st_mtime;
 #if HAVE_STRUCT_STAT_ST_MTIMENSEC  
                         nsecs = st->st_mtimensec;                          nsecs = st->st_mtimensec;
 #endif  
                 }                  }
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case SHOW_st_ctime:          case SHOW_st_ctime:
                 if (!gottime) {                  if (!gottime) {
                         gottime = 1;                          gottime = 1;
                         secs = st->st_ctime;                          secs = st->st_ctime;
 #if HAVE_STRUCT_STAT_ST_MTIMENSEC  
                         nsecs = st->st_ctimensec;                          nsecs = st->st_ctimensec;
 #endif  
                 }                  }
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
 #if HAVE_STRUCT_STAT_ST_BIRTHTIME  #if HAVE_STRUCT_STAT_ST_BIRTHTIME
Line 744 
Line 714 
                 if (ofmt == 0)                  if (ofmt == 0)
                         ofmt = FMTF_UNSIGNED;                          ofmt = FMTF_UNSIGNED;
                 break;                  break;
 #if HAVE_STRUCT_STAT_ST_FLAGS  
         case SHOW_st_flags:          case SHOW_st_flags:
                 small = (sizeof(st->st_flags) == 4);                  small = (sizeof(st->st_flags) == 4);
                 data = st->st_flags;                  data = st->st_flags;
Line 753 
Line 722 
                 if (ofmt == 0)                  if (ofmt == 0)
                         ofmt = FMTF_UNSIGNED;                          ofmt = FMTF_UNSIGNED;
                 break;                  break;
 #endif /* HAVE_STRUCT_STAT_ST_FLAGS */  
 #if HAVE_STRUCT_STAT_ST_GEN  
         case SHOW_st_gen:          case SHOW_st_gen:
                 small = (sizeof(st->st_gen) == 4);                  small = (sizeof(st->st_gen) == 4);
                 data = st->st_gen;                  data = st->st_gen;
Line 763 
Line 730 
                 if (ofmt == 0)                  if (ofmt == 0)
                         ofmt = FMTF_UNSIGNED;                          ofmt = FMTF_UNSIGNED;
                 break;                  break;
 #endif /* HAVE_STRUCT_STAT_ST_GEN */  
         case SHOW_symlink:          case SHOW_symlink:
                 small = 0;                  small = 0;
                 data = 0;                  data = 0;
Line 807 
Line 773 
                         case S_IFLNK:                          case S_IFLNK:
                                 (void)strlcat(sdata, "@", sizeof(smode));                                  (void)strlcat(sdata, "@", sizeof(smode));
                                 break;                                  break;
 #ifdef S_IFSOCK  
                         case S_IFSOCK:                          case S_IFSOCK:
                                 (void)strlcat(sdata, "=", sizeof(smode));                                  (void)strlcat(sdata, "=", sizeof(smode));
                                 break;                                  break;
 #endif  
 #ifdef S_IFWHT  
                         case S_IFWHT:                          case S_IFWHT:
                                 (void)strlcat(sdata, "%", sizeof(smode));                                  (void)strlcat(sdata, "%", sizeof(smode));
                                 break;                                  break;
 #endif /* S_IFWHT */  
 #ifdef S_IFDOOR  
                         case S_IFDOOR:  
                                 (void)strlcat(sdata, ">", sizeof(smode));  
                                 break;  
 #endif /* S_IFDOOR */  
                         }                          }
                         hilo = 0;                          hilo = 0;
                 }                  }
Line 833 
Line 790 
                         case S_IFBLK:   sdata = "Block Device";         break;                          case S_IFBLK:   sdata = "Block Device";         break;
                         case S_IFREG:   sdata = "Regular File";         break;                          case S_IFREG:   sdata = "Regular File";         break;
                         case S_IFLNK:   sdata = "Symbolic Link";        break;                          case S_IFLNK:   sdata = "Symbolic Link";        break;
 #ifdef S_IFSOCK  
                         case S_IFSOCK:  sdata = "Socket";               break;                          case S_IFSOCK:  sdata = "Socket";               break;
 #endif  
 #ifdef S_IFWHT  
                         case S_IFWHT:   sdata = "Whiteout File";        break;                          case S_IFWHT:   sdata = "Whiteout File";        break;
 #endif /* S_IFWHT */  
 #ifdef S_IFDOOR  
                         case S_IFDOOR:  sdata = "Door";                 break;  
 #endif /* S_IFDOOR */  
                         default:        sdata = "???";                  break;                          default:        sdata = "???";                  break;
                         }                          }
                         hilo = 0;                          hilo = 0;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2