- else {
- register unsigned i = 0;
- register char *dp;
- register char **pv;
-
- for (dp = cp; *dp; dp++)
- if (*dp == ':')
- i++;
- pv = (char **)calloc(i+2, sizeof (char **));
- for (dp = cp, i = 0; ;)
- if (*dp == ':') {
- *dp = 0;
- pv[i++] = savestr(*cp ? cp : ".");
- *dp++ = ':';
- cp = dp;
- } else if (*dp++ == 0) {
- pv[i++] = savestr(*cp ? cp : ".");
- break;
- }
- pv[i] = 0;
- set1("path", pv, &shvhed);
- }