lsb_err_value lsb_serialize_binary(lsb_output_buffer *ob, const void *src, size_t len)
{
  lsb_err_value ret = NULL;
  const char *uc = (const char *)src;
  for (unsigned i = 0; !ret && i < len; ++i) {
    switch (uc[i]) {
    case '\n':
      ret = lsb_outputs(ob, "\\n", 2);
      break;
    case '\r':
      ret = lsb_outputs(ob, "\\r", 2);
      break;
    case '"':
      ret = lsb_outputs(ob, "\\\"", 2);
      break;
    case '\\':
      ret = lsb_outputs(ob, "\\\\", 2);
      break;
    default:
      ret = lsb_outputc(ob, uc[i]);
      break;
    }
  }
  return ret;
}
Ejemplo n.º 2
0
 void Put(Ch c)
 {
   const char *err = lsb_outputc(ob_, c);
   if (err) err_ = err;
 }