mirror of
https://github.com/tmux/tmux.git
synced 2026-02-13 09:19:17 +00:00
Fix strftime warning in gcc.
This commit is contained in:
15
format.c
15
format.c
@@ -454,6 +454,17 @@ format_job_tidy(struct format_job_tree *jobs, int force)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Workaround this needless gcc warning:
|
||||||
|
* warning: format not a string literal, format string not checked [-Wformat-nonliteral]
|
||||||
|
*/
|
||||||
|
static size_t
|
||||||
|
format_strftime(char *s, size_t max, const char *time_format, const struct tm *tm) {
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||||
|
return strftime(s, max, time_format, tm);
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
}
|
||||||
|
|
||||||
/* Tidy old jobs for all clients. */
|
/* Tidy old jobs for all clients. */
|
||||||
void
|
void
|
||||||
format_tidy_jobs(void)
|
format_tidy_jobs(void)
|
||||||
@@ -3963,7 +3974,7 @@ found:
|
|||||||
else {
|
else {
|
||||||
if (time_format != NULL) {
|
if (time_format != NULL) {
|
||||||
localtime_r(&t, &tm);
|
localtime_r(&t, &tm);
|
||||||
strftime(s, sizeof s, time_format, &tm);
|
format_strftime(s, sizeof s, time_format, &tm);
|
||||||
} else {
|
} else {
|
||||||
ctime_r(&t, s);
|
ctime_r(&t, s);
|
||||||
s[strcspn(s, "\n")] = '\0';
|
s[strcspn(s, "\n")] = '\0';
|
||||||
@@ -5540,7 +5551,7 @@ format_expand1(struct format_expand_state *es, const char *fmt)
|
|||||||
es->time = time(NULL);
|
es->time = time(NULL);
|
||||||
localtime_r(&es->time, &es->tm);
|
localtime_r(&es->time, &es->tm);
|
||||||
}
|
}
|
||||||
if (strftime(expanded, sizeof expanded, fmt, &es->tm) == 0) {
|
if (format_strftime(expanded, sizeof expanded, fmt, &es->tm) == 0) {
|
||||||
format_log(es, "format is too long");
|
format_log(es, "format is too long");
|
||||||
return (xstrdup(""));
|
return (xstrdup(""));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,7 +228,6 @@ window_clock_draw_screen(struct window_mode_entry *wme)
|
|||||||
struct screen *s = &data->screen;
|
struct screen *s = &data->screen;
|
||||||
struct grid_cell gc;
|
struct grid_cell gc;
|
||||||
char tim[64], *ptr;
|
char tim[64], *ptr;
|
||||||
const char *timeformat;
|
|
||||||
time_t t;
|
time_t t;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
u_int i, j, x, y, idx;
|
u_int i, j, x, y, idx;
|
||||||
@@ -242,20 +241,18 @@ window_clock_draw_screen(struct window_mode_entry *wme)
|
|||||||
tm = localtime(&t);
|
tm = localtime(&t);
|
||||||
if (style == 0 || style == 2) {
|
if (style == 0 || style == 2) {
|
||||||
if (style == 2)
|
if (style == 2)
|
||||||
timeformat = "%l:%M:%S ";
|
strftime(tim, sizeof tim, "%l:%M:%S ", localtime(&t));
|
||||||
else
|
else
|
||||||
timeformat = "%l:%M ";
|
strftime(tim, sizeof tim, "%l:%M ", localtime(&t));
|
||||||
strftime(tim, sizeof tim, timeformat, localtime(&t));
|
|
||||||
if (tm->tm_hour >= 12)
|
if (tm->tm_hour >= 12)
|
||||||
strlcat(tim, "PM", sizeof tim);
|
strlcat(tim, "PM", sizeof tim);
|
||||||
else
|
else
|
||||||
strlcat(tim, "AM", sizeof tim);
|
strlcat(tim, "AM", sizeof tim);
|
||||||
} else {
|
} else {
|
||||||
if (style == 3)
|
if (style == 3)
|
||||||
timeformat = "%H:%M:%S";
|
strftime(tim, sizeof tim, "%H:%M:%S", tm);
|
||||||
else
|
else
|
||||||
timeformat = "%H:%M";
|
strftime(tim, sizeof tim, "%H:%M", tm);
|
||||||
strftime(tim, sizeof tim, timeformat, tm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
screen_write_clearscreen(&ctx, 8);
|
screen_write_clearscreen(&ctx, 8);
|
||||||
|
|||||||
Reference in New Issue
Block a user