diff options
author | davem <davem> | 2002-01-15 09:01:26 +0000 |
---|---|---|
committer | davem <davem> | 2002-01-15 09:01:26 +0000 |
commit | 3b68a68a7fa5ca0d5e94d5dc7dfd61b003fa8330 (patch) | |
tree | d3a096530391fb9aee30c359930caa0ba73c5e64 | |
parent | 6373d1582fba1a9562f778852407b34dbbeaf75f (diff) | |
download | netdev-vger-cvs-3b68a68a7fa5ca0d5e94d5dc7dfd61b003fa8330.tar.gz |
Eliminate use of strtok. From Rene Scharfe.
-rw-r--r-- | drivers/sbus/char/envctrl.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index a45d072a0..4ded86438 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c @@ -1,4 +1,4 @@ -/* $Id: envctrl.c,v 1.24 2001-10-08 22:19:51 davem Exp $ +/* $Id: envctrl.c,v 1.25 2002-01-15 09:01:26 davem Exp $ * envctrl.c: Temperature and Fan monitoring on Machines providing it. * * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) @@ -776,24 +776,19 @@ static void envctrl_set_mon(struct i2c_child_t *pchild, static void envctrl_init_adc(struct i2c_child_t *pchild, int node) { char chnls_desc[CHANNEL_DESC_SZ]; - int i, len, j = 0; - char *ptr; + int i = 0, len; + char *pos = chnls_desc; - /* Firmware describe channels into a stream separated by a '\0'. - * Replace all '\0' with a space. - */ - len = prom_getproperty(node, "channels-description", chnls_desc, + /* Firmware describe channels into a stream separated by a '\0'. */ + len = prom_getproperty(node, "channels-description", chnls_desc, CHANNEL_DESC_SZ); - for (i = 0; i < len; i++) { - if (chnls_desc[i] == '\0') - chnls_desc[i] = ' '; - } - - ptr = strtok(chnls_desc, " "); - while (ptr != NULL) { - envctrl_set_mon(pchild, ptr, j); - ptr = strtok(NULL, " "); - j++; + chnls_desc[CHANNEL_DESC_SZ - 1] = '\0'; + + while (len > 0) { + int l = strlen(pos) + 1; + envctrl_set_mon(pchild, pos, i++); + len -= l; + pos += l; } /* Get optional properties. */ |