From 82c9999138ac1f73be4db057cba0a23787925885 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 26 Nov 2017 17:31:24 +0100 Subject: [PATCH] Add WIDGET_NAME_SCREEN; Fix null deref in WIDGET_NAME_SSID --- src/widget_name.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/widget_name.c b/src/widget_name.c index b0fdc51..12d7fab 100644 --- a/src/widget_name.c +++ b/src/widget_name.c @@ -8,9 +8,11 @@ #define WIDGET_NAME_NAME 0 #define WIDGET_NAME_IPADDR 1 #define WIDGET_NAME_SSID 2 -#define WIDGET_NAME_EMPTY 3 +#define WIDGET_NAME_SCREEN 3 +#define WIDGET_NAME_EMPTY 4 static uint8_t what = WIDGET_NAME_NAME; +extern struct screen_t *screen; static void widget_name_render(struct widget_t *w, void *ev_data) { char namestring[21]; @@ -37,11 +39,17 @@ static void widget_name_render(struct widget_t *w, void *ev_data) { } case WIDGET_NAME_SSID: p = mgos_wifi_get_connected_ssid(); - sprintf(namestring, "%-20s", p); + sprintf(namestring, "%-20s", p?p:"(no SSID)"); free(p); break; + case WIDGET_NAME_SCREEN: + if (screen) + sprintf(namestring, "%-20s", screen->name); + else + sprintf(namestring, "%-20s", "(no Screen)"); + break; case WIDGET_NAME_EMPTY: - sprintf(namestring, "%-20s", ""); + sprintf(namestring, "%-20s", ""); break; default: sprintf(namestring, "%-20s",mgos_sys_config_get_app_hostname());