Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/sysinst Fix display of timezone selection menu
details: https://anonhg.NetBSD.org/src/rev/de1f1b6dd99a
branches: trunk
changeset: 939683:de1f1b6dd99a
user: martin <martin%NetBSD.org@localhost>
date: Sun Sep 27 17:36:40 2020 +0000
description:
Fix display of timezone selection menu
diffstat:
usr.sbin/sysinst/msg.mi.fr | 4 +-
usr.sbin/sysinst/util.c | 47 +++++++++++++++++++++++++++++++--------------
2 files changed, 34 insertions(+), 17 deletions(-)
diffs (116 lines):
diff -r 79375b5e3be3 -r de1f1b6dd99a usr.sbin/sysinst/msg.mi.fr
--- a/usr.sbin/sysinst/msg.mi.fr Sun Sep 27 17:27:07 2020 +0000
+++ b/usr.sbin/sysinst/msg.mi.fr Sun Sep 27 17:36:40 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: msg.mi.fr,v 1.28 2020/05/26 15:20:45 snj Exp $ */
+/* $NetBSD: msg.mi.fr,v 1.29 2020/09/27 17:36:40 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -999,7 +999,7 @@
Appuyez sur "x" puis sur Entrée pour valider la sélection en cours.
Par défaut : %s
- Sélection actuelle : %s
+ Sélection actuelle : %s
Heure locale : %s %s
}
diff -r 79375b5e3be3 -r de1f1b6dd99a usr.sbin/sysinst/util.c
--- a/usr.sbin/sysinst/util.c Sun Sep 27 17:27:07 2020 +0000
+++ b/usr.sbin/sysinst/util.c Sun Sep 27 17:36:40 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: util.c,v 1.46 2020/09/22 16:18:54 martin Exp $ */
+/* $NetBSD: util.c,v 1.47 2020/09/27 17:36:40 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -1343,6 +1343,26 @@
const char *tz_default; /* UTC, or whatever /etc/localtime points to */
static char tz_env[STRSIZE];
static int save_cursel, save_topline;
+static int time_menu = -1;
+
+static void
+update_time_display(void)
+{
+ time_t t;
+ struct tm *tm;
+ char cur_time[STRSIZE], *p;
+
+ t = time(NULL);
+ tm = localtime(&t);
+ strlcpy(cur_time, safectime(&t), sizeof cur_time);
+ p = strchr(cur_time, '\n');
+ if (p != NULL)
+ *p = 0;
+
+ msg_clear();
+ msg_fmt_table_add(MSG_choose_timezone, "%s%s%s%s",
+ tz_default, tz_selected, cur_time, tm ? tm->tm_zone : "?");
+}
/*
* Callback from timezone menu
@@ -1350,9 +1370,7 @@
static int
set_tz_select(menudesc *m, void *arg)
{
- time_t t;
char *new;
- struct tm *tm;
if (m && strcmp(tz_selected, m->opts[m->cursel].opt_name) != 0) {
/* Change the displayed timezone */
@@ -1369,12 +1387,14 @@
/* Warp curser to 'Exit' line on menu */
m->cursel = -1;
- /* Update displayed time */
- t = time(NULL);
- tm = localtime(&t);
- msg_fmt_display(MSG_choose_timezone, "%s%s%s%s",
- tz_default, tz_selected, safectime(&t), tm ? tm->tm_zone :
- "?");
+ update_time_display();
+ if (time_menu >= 1) {
+ WINDOW *w = get_menudesc(time_menu)->mw;
+ if (w != NULL) {
+ touchwin(w);
+ wrefresh(w);
+ }
+ }
return 0;
}
@@ -1529,8 +1549,6 @@
{
char localtime_link[STRSIZE];
char localtime_target[STRSIZE];
- time_t t;
- struct tm *tm;
int menu_no;
strlcpy(zoneinfo_dir, target_expand("/usr/share/zoneinfo/"),
@@ -1542,10 +1560,7 @@
tz_selected = strdup(tz_default);
snprintf(tz_env, sizeof(tz_env), "%s%s", zoneinfo_dir, tz_selected);
setenv("TZ", tz_env, 1);
- t = time(NULL);
- tm = localtime(&t);
- msg_fmt_display(MSG_choose_timezone, "%s%s%s%s",
- tz_default, tz_selected, safectime(&t), tm ? tm->tm_zone : "?");
+ update_time_display();
signal(SIGALRM, timezone_sig);
alarm(60);
@@ -1558,7 +1573,9 @@
if (menu_no < 0)
goto done; /* error - skip timezone setting */
+ time_menu = menu_no;
process_menu(menu_no, NULL);
+ time_menu = -1;
free_menu(menu_no);
Home |
Main Index |
Thread Index |
Old Index