mt_throws Result AndroidLogcatOutputStream::write (ConstMemory const mem, Size * const ret_nwritten) { if (ret_nwritten) *ret_nwritten = mem.len(); __android_log_print (ANDROID_LOG_INFO, "---DEBUG", "%.*s", (int) mem.len(), (char const *) mem.buf()); return Result::Success; }
BooleanValue strToBoolean (ConstMemory const value_mem) { if (value_mem.len() == 0) return Boolean_Default; Byte arr [32]; Memory mem; { Size len = sizeof (arr); if (len > value_mem.len()) len = value_mem.len(); memcpy (arr, value_mem.buf(), len); mem = Memory (arr, len); } for (Size i = 0; i < mem.len(); ++i) mem.mem() [i] = (Byte) tolower (mem.mem() [i]); if (equal (mem, "y") || equal (mem, "yes") || equal (mem, "on") || equal (mem, "true") || equal (mem, "1")) { return Boolean_True; } if (equal (mem, "n") || equal (mem, "no") || equal (mem, "off") || equal (mem, "false") || equal (mem, "0")) { return Boolean_False; } return Boolean_Invalid; }
LineServer::LineServer (EmbedContainer * const embed_container) : Object (embed_container), max_line_len (4096), recv_pos (0) { } LineServer::~LineServer () { } ConstMemory lineEscape (ConstMemory const line, StRef<String> * const mt_nonnull ret_ref) { Byte const * const buf = line.buf(); Size const len = line.len(); Count esc_len = len; bool esc = false; for (Size i = 0; i < len; ++i) { if (buf [i] == ' ') { esc = true; } else if (buf [i] == '_' || buf [i] == '\\') { ++esc_len; esc = true; } } if (esc) { *ret_ref = st_grab (new (std::nothrow) String (esc_len));