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

Diff for /src/usr.bin/id/id.c between version 1.20 and 1.21

version 1.20, 2013/09/06 19:48:46 version 1.21, 2014/07/14 05:41:00
Line 201 
Line 201 
         int cnt, ngroups;          int cnt, ngroups;
         uid_t uid, euid;          uid_t uid, euid;
         gid_t groups[NGROUPS], gid, egid, lastgid;          gid_t groups[NGROUPS], gid, egid, lastgid;
         char *fmt;          char *prefix;
   
         uid = getuid();          uid = getuid();
         (void)printf("uid=%u", uid);          (void)printf("uid=%u", uid);
Line 222 
Line 222 
                         (void)printf("(%s)", gr->gr_name);                          (void)printf("(%s)", gr->gr_name);
         }          }
         if ((ngroups = getgroups(NGROUPS, groups))) {          if ((ngroups = getgroups(NGROUPS, groups))) {
                 for (fmt = " groups=%u", lastgid = (gid_t)-1, cnt = 0;                  for (prefix = " groups=", lastgid = (gid_t)-1, cnt = 0;
                     cnt < ngroups; fmt = ", %u", lastgid = gid) {                      cnt < ngroups; prefix = ", ", lastgid = gid) {
                         gid = groups[cnt++];                          gid = groups[cnt++];
                         if (lastgid == gid)                          if (lastgid == gid)
                                 continue;                                  continue;
                         (void)printf(fmt, gid);                          (void)printf("%s%u", prefix, gid);
                         if ((gr = getgrgid(gid)))                          if ((gr = getgrgid(gid)))
                                 (void)printf("(%s)", gr->gr_name);                                  (void)printf("(%s)", gr->gr_name);
                 }                  }
Line 242 
Line 242 
         int cnt, ngroups;          int cnt, ngroups;
         uid_t uid;          uid_t uid;
         struct group *gr;          struct group *gr;
         char *fmt;          char *prefix;
   
         uid = pw->pw_uid;          uid = pw->pw_uid;
         (void)printf("uid=%u(%s)", uid, pw->pw_name);          (void)printf("uid=%u(%s)", uid, pw->pw_name);
Line 251 
Line 251 
                 (void)printf("(%s)", gr->gr_name);                  (void)printf("(%s)", gr->gr_name);
         ngroups = NGROUPS + 1;          ngroups = NGROUPS + 1;
         (void) getgrouplist(pw->pw_name, pw->pw_gid, groups, &ngroups);          (void) getgrouplist(pw->pw_name, pw->pw_gid, groups, &ngroups);
         fmt = " groups=%u";          prefix = " groups=";
         for (cnt = 0; cnt < ngroups;) {          for (cnt = 0; cnt < ngroups;) {
                 gid = groups[cnt];                  gid = groups[cnt];
                 (void)printf(fmt, gid);                  (void)printf("%s%u", prefix, gid);
                 fmt = ", %u";                  prefix = ", ";
                 if ((gr = getgrgid(gid)))                  if ((gr = getgrgid(gid)))
                         (void)printf("(%s)", gr->gr_name);                          (void)printf("(%s)", gr->gr_name);
                 /* Skip same gid entries. */                  /* Skip same gid entries. */
Line 270 
Line 270 
         int cnt, ngroups;          int cnt, ngroups;
         gid_t gid, groups[NGROUPS + 1];          gid_t gid, groups[NGROUPS + 1];
         struct group *gr;          struct group *gr;
         char *fmt;          char *prefix;
   
         if (pw) {          if (pw) {
                 ngroups = NGROUPS + 1;                  ngroups = NGROUPS + 1;
Line 279 
Line 279 
                 groups[0] = getgid();                  groups[0] = getgid();
                 ngroups = getgroups(NGROUPS, groups + 1) + 1;                  ngroups = getgroups(NGROUPS, groups + 1) + 1;
         }          }
         fmt = nflag ? "%s" : "%u";          prefix = "";
         for (cnt = 0; cnt < ngroups;) {          for (cnt = 0; cnt < ngroups;) {
                 gid = groups[cnt];                  gid = groups[cnt];
                 if (nflag) {                  if (nflag) {
                         if ((gr = getgrgid(gid)))                          if ((gr = getgrgid(gid)))
                                 (void)printf(fmt, gr->gr_name);                                  (void)printf("%s%s", prefix, gr->gr_name);
                         else                          else
                                 (void)printf(*fmt == ' ' ? " %u" : "%u",                                  (void)printf("%s%u", prefix, gid);
                                     gid);  
                         fmt = " %s";  
                 } else {                  } else {
                         (void)printf(fmt, gid);                          (void)printf("%s%u", prefix, gid);
                         fmt = " %u";  
                 }                  }
                   prefix = " ";
                 /* Skip same gid entries. */                  /* Skip same gid entries. */
                 while (++cnt < ngroups && gid == groups[cnt]);                  while (++cnt < ngroups && gid == groups[cnt]);
         }          }

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21