static fssh_status_t command_info(int argc, const char* const* argv) { fssh_dev_t volumeID = get_volume_id(); if (volumeID < 0) return volumeID; fssh_fs_info info; fssh_status_t status = _kern_read_fs_info(volumeID, &info); if (status != FSSH_B_OK) return status; printf("root inode: %" FSSH_B_PRIdINO "\n", info.root); printf("flags: "); print_flag(info.flags, FSSH_B_FS_HAS_QUERY, "Q", "-"); print_flag(info.flags, FSSH_B_FS_HAS_ATTR, "A", "-"); print_flag(info.flags, FSSH_B_FS_HAS_MIME, "M", "-"); print_flag(info.flags, FSSH_B_FS_IS_SHARED, "S", "-"); print_flag(info.flags, FSSH_B_FS_IS_PERSISTENT, "P", "-"); print_flag(info.flags, FSSH_B_FS_IS_REMOVABLE, "R", "-"); print_flag(info.flags, FSSH_B_FS_IS_READONLY, "-", "W"); printf("\nblock size: %" FSSH_B_PRIdOFF "\n", info.block_size); printf("I/O size: %" FSSH_B_PRIdOFF "\n", info.io_size); printf("total size: %s (%" FSSH_B_PRIdOFF " blocks)\n", byte_string(info.total_blocks, info.block_size), info.total_blocks); printf("free size: %s (%" FSSH_B_PRIdOFF " blocks)\n", byte_string(info.free_blocks, info.block_size), info.free_blocks); printf("total nodes: %" FSSH_B_PRIdOFF "\n", info.total_nodes); printf("free nodes: %" FSSH_B_PRIdOFF "\n", info.free_nodes); printf("volume name: %s\n", info.volume_name); printf("fs name: %s\n", info.fsh_name); return FSSH_B_OK; }
unc::ustring decode_byte_string(const char* string) { if (!string) { return unc::ustring(); } std::string byte_string(string); return unc::decode<encoding>(byte_string); }
unc::ustring decode_string(mpg123_string* string) { if (!string) { return unc::ustring(); } std::string byte_string(string->p, string->fill); return unc::decode<encoding>(byte_string); }
TEST(fxcrt, ByteStringOperatorEQ) { CFX_ByteString null_string; EXPECT_TRUE(null_string == null_string); CFX_ByteString empty_string(""); EXPECT_TRUE(empty_string == empty_string); EXPECT_TRUE(empty_string == null_string); EXPECT_TRUE(null_string == empty_string); CFX_ByteString deleted_string("hello"); deleted_string.Delete(0, 5); EXPECT_TRUE(deleted_string == deleted_string); EXPECT_TRUE(deleted_string == null_string); EXPECT_TRUE(deleted_string == empty_string); EXPECT_TRUE(null_string == deleted_string); EXPECT_TRUE(empty_string == deleted_string); CFX_ByteString byte_string("hello"); EXPECT_TRUE(byte_string == byte_string); EXPECT_FALSE(byte_string == null_string); EXPECT_FALSE(byte_string == empty_string); EXPECT_FALSE(byte_string == deleted_string); EXPECT_FALSE(null_string == byte_string); EXPECT_FALSE(empty_string == byte_string); EXPECT_FALSE(deleted_string == byte_string); CFX_ByteString byte_string_same1("hello"); EXPECT_TRUE(byte_string == byte_string_same1); EXPECT_TRUE(byte_string_same1 == byte_string); CFX_ByteString byte_string_same2(byte_string); EXPECT_TRUE(byte_string == byte_string_same2); EXPECT_TRUE(byte_string_same2 == byte_string); CFX_ByteString byte_string1("he"); CFX_ByteString byte_string2("hellp"); CFX_ByteString byte_string3("hellod"); EXPECT_FALSE(byte_string == byte_string1); EXPECT_FALSE(byte_string == byte_string2); EXPECT_FALSE(byte_string == byte_string3); EXPECT_FALSE(byte_string1 == byte_string); EXPECT_FALSE(byte_string2 == byte_string); EXPECT_FALSE(byte_string3 == byte_string); CFX_ByteStringC null_string_c; CFX_ByteStringC empty_string_c(""); EXPECT_TRUE(null_string == null_string_c); EXPECT_TRUE(null_string == empty_string_c); EXPECT_TRUE(empty_string == null_string_c); EXPECT_TRUE(empty_string == empty_string_c); EXPECT_TRUE(deleted_string == null_string_c); EXPECT_TRUE(deleted_string == empty_string_c); EXPECT_TRUE(null_string_c == null_string); EXPECT_TRUE(empty_string_c == null_string); EXPECT_TRUE(null_string_c == empty_string); EXPECT_TRUE(empty_string_c == empty_string); EXPECT_TRUE(null_string_c == deleted_string); EXPECT_TRUE(empty_string_c == deleted_string); CFX_ByteStringC byte_string_c_same1("hello"); EXPECT_TRUE(byte_string == byte_string_c_same1); EXPECT_TRUE(byte_string_c_same1 == byte_string); CFX_ByteStringC byte_string_c1("he"); CFX_ByteStringC byte_string_c2("hellp"); CFX_ByteStringC byte_string_c3("hellod"); EXPECT_FALSE(byte_string == byte_string_c1); EXPECT_FALSE(byte_string == byte_string_c2); EXPECT_FALSE(byte_string == byte_string_c3); EXPECT_FALSE(byte_string_c1 == byte_string); EXPECT_FALSE(byte_string_c2 == byte_string); EXPECT_FALSE(byte_string_c3 == byte_string); const char* c_null_string = nullptr; const char* c_empty_string = ""; EXPECT_TRUE(null_string == c_null_string); EXPECT_TRUE(null_string == c_empty_string); EXPECT_TRUE(empty_string == c_null_string); EXPECT_TRUE(empty_string == c_empty_string); EXPECT_TRUE(deleted_string == c_null_string); EXPECT_TRUE(deleted_string == c_empty_string); EXPECT_TRUE(c_null_string == null_string); EXPECT_TRUE(c_empty_string == null_string); EXPECT_TRUE(c_null_string == empty_string); EXPECT_TRUE(c_empty_string == empty_string); EXPECT_TRUE(c_null_string == deleted_string); EXPECT_TRUE(c_empty_string == deleted_string); const char* c_string_same1 = "hello"; EXPECT_TRUE(byte_string == c_string_same1); EXPECT_TRUE(c_string_same1 == byte_string); const char* c_string1 = "he"; const char* c_string2 = "hellp"; const char* c_string3 = "hellod"; EXPECT_FALSE(byte_string == c_string1); EXPECT_FALSE(byte_string == c_string2); EXPECT_FALSE(byte_string == c_string3); EXPECT_FALSE(c_string1 == byte_string); EXPECT_FALSE(c_string2 == byte_string); EXPECT_FALSE(c_string3 == byte_string); }
estring::estring(const char* str, std::string encoding) : encoding(encoding.empty() ? Encoding::guess(byte_string((const byte_t*)str)) : Encoding::byName(encoding)), _string((const byte_t*)str) { }