rem: DOTSLASH(tmpname);  SLASHDOT(outname);
context: int WriteSetting(const char *setting) {int rc = 0;const char *name = setting;const char *value;const char *equals;char *tmpname;FILE *fp;char *outname;   if (!name) {                /* probably dont' want to display this  err */      return 0;   } /* end if */   equals = index(setting, '=');    if (!equals) {      fprintf(stderr, ERR_NO_EQUALS, setting);      return -1;   } /* end if */   value = equals + sizeof(char);      /* point to the value in name=value */      if (!*name || !*value || name == equals) {       fprintf(stderr, ERR_MALFORMED_SETTING, setting);      return -2;   } /* end if */   tmpname = (char *)malloc((equals-name+1+strlen(PROC_PATH))*sizeof(char));   outname = (char *)malloc((equals-name+1)*sizeof(char));   strcpy(tmpname, PROC_PATH);   strncat(tmpname, name, (int)(equals-name));    tmpname[equals-name+strlen(PROC_PATH)] = 0;   strncpy(outname, name, (int)(equals-name));    outname[equals-name] = 0;    DOTSLASH(tmpname); /* change . to / */   SLASHDOT(outname); /* change / to . */   fp = fopen(tmpname, "w");   if (!fp) {      switch(errno) {      case ENOENT:         fprintf(stderr, ERR_INVALID_KEY, outname);        break;      case EACCES:         fprintf(stderr, ERR_PERMISSION_DENIED, outname);        break;      default:         fprintf(stderr, ERR_UNKNOWN_WRITING, errno, outname);        break;      } /* end switch */      rc = -1;   } else {      fprintf(fp, "%s\n", value);      fclose(fp);      if (PrintName) {         fprintf(stdout, "%s = %s\n", outname, value);      } else {         if (PrintNewline)            fprintf(stdout, "%s\n", value);         else            fprintf(stdout, "%s", value);      }   } /* endif */   free(tmpname);   free(outname);return rc;} /* end WriteSetting() */