rem: *dest_ptr = ((ch & 07) << 3);
add: *dest_ptr = ((ch & 07) << 6);
context: unescapestr(char *src){  char *dest = wmalloc(strlen(src)+1);  char *src_ptr, *dest_ptr;  char ch;  for (src_ptr=src, dest_ptr=dest; *src_ptr;  src_ptr++, dest_ptr++)    {      if(*src_ptr != '\\')        *dest_ptr = *src_ptr;      else        {          ch = *(++src_ptr);          if((ch>='0') && (ch<='3')) /* assume next 2 chars are octal too */            {              *dest_ptr = ((ch & 07) << 3);              *dest_ptr |= ((*(++src_ptr)&07)<<3);              *dest_ptr |= *(++src_ptr)&07;            }          else            {              switch(ch)                {                case 'a' : *dest_ptr = '\a'; break;                case 'b' : *dest_ptr = '\b'; break;                case 't' : *dest_ptr = '\t'; break;                case 'r' : *dest_ptr = '\r'; break;                case 'n' : *dest_ptr = '\n'; break;                case 'v' : *dest_ptr = '\v'; break;                case 'f' : *dest_ptr = '\f'; break;                default  : *dest_ptr = *src_ptr;                }            }        }    }  *dest_ptr = 0;  return dest;}