I made a change to last.c in this package to print out login names greater than 8 bytes for those systems that define UT_NAMESIZE larger than 8 bytes. On a few systems I admin I have a number of login names greater than 8 bytes and I need to have a utility that can show the full login names, at least up to UT_NAMESIZE.

Thanks.  Bob
--- src/last.c.orig     2004-07-30 07:16:26.000000000 -0500
+++ src/last.c  2007-01-04 13:16:14.000000000 -0600
@@ -449,21 +449,31 @@
                if (!usedns && (s = strchr(p->ut_host, '.')) != NULL &&
                     strcmp(s + 1, domainname) == 0) *s = 0;
 #endif
+#define str(s) # s
+#define xstr(s) str(s)
                if (!altlist) {
                        snprintf(final, sizeof(final),
-                               "%-8.8s %-12.12s %-16.16s "
-                               "%-16.16s %-7.7s %-12.12s\n",
+                               oldfmt ? "%-" xstr(OLD_NAMESIZE) "." 
xstr(OLD_NAMESIZE) "s %-12.12s "
+                                                       "%-16.16s %-16.16s 
%-7.7s %-12.12s\n"
+                                          : "%-" xstr(UT_NAMESIZE) "." 
xstr(UT_NAMESIZE) "s %-12.12s "
+                                                       "%-16.16s %-16.16s 
%-7.7s %-12.12s\n",
                                p->ut_name, utline,
                                domain, logintime, logouttime, length);
                } else {
                        snprintf(final, sizeof(final), 
-                               "%-8.8s %-12.12s %-16.16s %-7.7s %-12.12s %s\n",
+                               oldfmt ? "%-" xstr(OLD_NAMESIZE) "." 
xstr(OLD_NAMESIZE) "s %-12.12s "
+                                                       "%-16.16s %-7.7s 
%-16.16s %s\n"
+                                      : "%-" xstr(UT_NAMESIZE) "." 
xstr(UT_NAMESIZE) "s %-12.12s "
+                                                       "%-16.16s %-7.7s 
%-16.16s %s\n",
                                p->ut_name, utline,
                                logintime, logouttime, length, domain);
                }
        } else
                snprintf(final, sizeof(final),
-                       "%-8.8s %-12.12s %-16.16s %-7.7s %-12.12s\n",
+                       oldfmt ? "%-" xstr(OLD_NAMESIZE) "." xstr(OLD_NAMESIZE) 
"s %-12.12s "
+                                               "%-16.16s %-7.7s %-12.12s\n"
+                                  : "%-" xstr(UT_NAMESIZE) "." 
xstr(UT_NAMESIZE) "s %-12.12s "
+                                               "%-16.16s %-7.7s %-12.12s\n",
                        p->ut_name, utline,
                        logintime, logouttime, length);
 

Reply via email to