aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavem <davem>2002-01-15 09:01:26 +0000
committerdavem <davem>2002-01-15 09:01:26 +0000
commit3b68a68a7fa5ca0d5e94d5dc7dfd61b003fa8330 (patch)
treed3a096530391fb9aee30c359930caa0ba73c5e64
parent6373d1582fba1a9562f778852407b34dbbeaf75f (diff)
downloadnetdev-vger-cvs-3b68a68a7fa5ca0d5e94d5dc7dfd61b003fa8330.tar.gz
Eliminate use of strtok. From Rene Scharfe.
-rw-r--r--drivers/sbus/char/envctrl.c29
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. */