From 9eaaa68641c20a0fb448f6de59e30ac53ed59c67 Mon Sep 17 00:00:00 2001 From: chrysn Date: Mon, 22 Mar 2021 21:53:49 +0100 Subject: [PATCH] sys/shell/saul: Don't print from NULL SAUL devices can legitimately be unnamed; catching all attempts to read their names with a generic "(no name)" name. --- sys/shell/commands/sc_saul_reg.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/shell/commands/sc_saul_reg.c b/sys/shell/commands/sc_saul_reg.c index b1f1adbf72..50037bc82b 100644 --- a/sys/shell/commands/sc_saul_reg.c +++ b/sys/shell/commands/sc_saul_reg.c @@ -26,6 +26,14 @@ #include "saul_reg.h" +static const char *_devname(saul_reg_t *dev) { + if (dev->name == NULL) { + return "(no name)"; + } else { + return dev->name; + } +} + /* this function does not check, if the given device is valid */ static void probe(int num, saul_reg_t *dev) { @@ -38,7 +46,7 @@ static void probe(int num, saul_reg_t *dev) return; } /* print results */ - printf("Reading from #%i (%s|%s)\n", num, dev->name, + printf("Reading from #%i (%s|%s)\n", num, _devname(dev), saul_class_to_str(dev->driver->type)); phydat_dump(&res, dim); } @@ -68,7 +76,7 @@ static void list(void) } while (dev) { printf("#%i\t%s\t%s\n", - i++, saul_class_to_str(dev->driver->type), dev->name); + i++, saul_class_to_str(dev->driver->type), _devname(dev)); dev = dev->next; } } @@ -120,7 +128,7 @@ static void write(int argc, char **argv) data.val[i] = atoi(argv[i + 3]); } /* print values before writing */ - printf("Writing to device #%i - %s\n", num, dev->name); + printf("Writing to device #%i - %s\n", num, _devname(dev)); phydat_dump(&data, dim); /* write values to device */ dim = saul_reg_write(dev, &data);