Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F97864524
D32437.id96594.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D32437.id96594.diff
View Options
Index: usr.bin/last/last.c
===================================================================
--- usr.bin/last/last.c
+++ usr.bin/last/last.c
@@ -92,7 +92,6 @@
static time_t currentout; /* current logout value */
static long maxrec; /* records to display */
static const char *file = NULL; /* utx.log file */
-static int noctfix = 0; /* locale is C or UTF-8 */
static int sflag = 0; /* show delta in seconds */
static int width = 5; /* show seconds in delta */
static int yflag; /* show year */
@@ -104,7 +103,6 @@
*/
static void addarg(int, char *);
-static const char *ctf(const char *);
static time_t dateconv(char *);
static void doentry(struct utmpx *);
static void hostconv(char *);
@@ -114,31 +112,6 @@
static void usage(void);
static void wtmp(void);
-static const char*
-ctf(const char *fmt) {
- static char buf[31];
- const char *src, *end;
- char *dst;
-
- if (noctfix)
- return (fmt);
-
- end = buf + sizeof(buf);
- for (src = fmt, dst = buf; dst < end; *dst++ = *src++) {
- if (*src == '\0') {
- *dst = '\0';
- break;
- } else if (*src == '%' && *(src+1) == 's') {
- *dst++ = '%';
- *dst++ = 'h';
- *dst++ = 's';
- strlcpy(dst, src+2, end - dst);
- return (buf);
- }
- }
- return (buf);
-}
-
static void
usage(void)
{
@@ -157,11 +130,6 @@
(void) setlocale(LC_TIME, "");
d_first = (*nl_langinfo(D_MD_ORDER) == 'd');
- (void) setlocale(LC_CTYPE, "");
- p = nl_langinfo(CODESET);
- if (strcmp(p, "UTF-8") == 0 || strcmp(p, "US-ASCII") == 0)
- noctfix = 1;
-
argc = xo_parse_args(argc, argv);
if (argc < 0)
exit(1);
@@ -294,7 +262,7 @@
(void) strftime(ct, sizeof(ct), "%+", tm);
xo_emit("\n{:utxdb/%s}", (file == NULL) ? "utx.log" : file);
xo_attr("seconds", "%lu", (unsigned long) t);
- xo_emit(ctf(" begins {:begins/%s}\n"), ct);
+ xo_emit(" begins {:begins/%hs}\n", ct);
xo_close_container("last-information");
}
@@ -411,7 +379,7 @@
break;
}
xo_attr("seconds", "%lu", (unsigned long)t);
- xo_emit(ctf(" {:login-time/%s%c/%s}"), ct, tt == NULL ? '\n' : ' ');
+ xo_emit(" {:login-time/%hs%c/%s}", ct, tt == NULL ? '\n' : ' ');
if (tt == NULL)
goto end;
if (!tt->logout) {
@@ -425,7 +393,7 @@
tm = localtime(&tt->logout);
(void) strftime(ct, sizeof(ct), "%R", tm);
xo_attr("seconds", "%lu", (unsigned long)tt->logout);
- xo_emit(ctf("- {:logout-time/%s}"), ct);
+ xo_emit("- {:logout-time/%hs}", ct);
}
delta = tt->logout - bp->ut_tv.tv_sec;
xo_attr("seconds", "%ld", (long)delta);
@@ -435,9 +403,9 @@
tm = gmtime(&delta);
(void) strftime(ct, sizeof(ct), width >= 8 ? "%T" : "%R", tm);
if (delta < 86400)
- xo_emit(ctf(" ({:session-length/%s})\n"), ct);
+ xo_emit(" ({:session-length/%s})\n", ct);
else
- xo_emit(ctf(" ({:session-length/%ld+%s})\n"),
+ xo_emit(" ({:session-length/%ld+%s})\n",
(long)delta / 86400, ct);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Oct 2, 1:39 PM (1 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13351059
Default Alt Text
D32437.id96594.diff (2 KB)
Attached To
Mode
D32437: last: improve non-UTF8 locale output after libxo support was added
Attached
Detach File
Event Timeline
Log In to Comment