Skip to content

Commit d004994

Browse files
committed
tidy
1 parent ee2f9f6 commit d004994

18 files changed

Lines changed: 304 additions & 309 deletions

src/odr/document_element.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,12 @@ SheetCell::SheetCell(const internal::abstract::Document *document,
229229
: TypedElement(document, element), m_sheet{sheet}, m_column{column},
230230
m_row{row} {}
231231

232+
Sheet SheetCell::sheet() const { return Sheet(m_document, m_sheet); }
233+
234+
std::uint32_t SheetCell::column() const { return m_column; }
235+
236+
std::uint32_t SheetCell::row() const { return m_row; }
237+
232238
bool SheetCell::is_covered() const {
233239
return exists_() ? m_element->is_covered(m_document) : false;
234240
}

src/odr/document_element.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#pragma once
22

3-
#include <cstdint>
43
#include <memory>
54
#include <optional>
65
#include <string>
@@ -87,6 +86,10 @@ enum class ElementType {
8786

8887
master_page,
8988

89+
sheet_column,
90+
sheet_row,
91+
sheet_cell,
92+
9093
text,
9194
line_break,
9295
page_break,
@@ -321,6 +324,9 @@ class SheetCell final : public TypedElement<internal::abstract::SheetCell> {
321324
internal::abstract::Sheet *sheet, std::uint32_t column,
322325
std::uint32_t row, internal::abstract::SheetCell *element);
323326

327+
[[nodiscard]] Sheet sheet() const;
328+
[[nodiscard]] std::uint32_t column() const;
329+
[[nodiscard]] std::uint32_t row() const;
324330
[[nodiscard]] bool is_covered() const;
325331
[[nodiscard]] TableDimensions span() const;
326332
[[nodiscard]] ValueType value_type() const;
@@ -530,7 +536,7 @@ class Image final : public TypedElement<internal::abstract::Image> {
530536
using TypedElement::TypedElement;
531537

532538
[[nodiscard]] bool is_internal() const;
533-
[[nodiscard]] std::optional<odr::File> file() const;
539+
[[nodiscard]] std::optional<File> file() const;
534540
[[nodiscard]] std::string href() const;
535541
};
536542

src/odr/internal/abstract/sheet_element.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Sheet : public virtual Element {
3535
class SheetCell : public virtual Element {
3636
public:
3737
[[nodiscard]] ElementType type(const Document *) const override {
38-
return ElementType::table_cell;
38+
return ElementType::sheet_cell;
3939
}
4040

4141
[[nodiscard]] virtual bool is_covered(const Document *) const = 0;

src/odr/internal/ooxml/ooxml_crypto.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
namespace {
1313
template <typename I, typename O> void to_little_endian(I in, O &out) {
14-
for (std::size_t i = 0; i < sizeof(in); ++i) {
14+
for (int i = 0; i < sizeof(in); ++i) {
1515
out[i] = in & 0xff;
1616
in >>= 8;
1717
}
1818
}
1919

2020
template <typename I, typename O> void to_big_endian(I in, O &out) {
21-
for (std::size_t i = sizeof(in) - 1; i >= 0; --i) {
21+
for (int i = sizeof(in) - 1; i >= 0; --i) {
2222
out[i] = in & 0xff;
2323
in >>= 8;
2424
}
@@ -50,12 +50,12 @@ ECMA376Standard::ECMA376Standard(const EncryptionHeader &encryption_header,
5050
ECMA376Standard::ECMA376Standard(const std::string &encryption_info) {
5151
const char *offset = encryption_info.data() + sizeof(VersionInfo);
5252

53-
StandardHeader standard_header;
53+
StandardHeader standard_header{};
5454
std::memcpy(&standard_header, offset, sizeof(standard_header));
5555
offset += sizeof(standard_header);
5656

5757
std::memcpy(&m_encryption_header, offset, sizeof(m_encryption_header));
58-
std::u16string csp_name_u16(
58+
const std::u16string csp_name_u16(
5959
reinterpret_cast<const char16_t *>(offset + sizeof(m_encryption_header)));
6060
const std::string csp_name = util::string::u16string_to_string(csp_name_u16);
6161
offset += standard_header.encryption_header_size;
@@ -88,15 +88,15 @@ ECMA376Standard::derive_key(const std::string &password) const noexcept {
8888
to_little_endian(i, ibytes);
8989
hash = internal::crypto::util::sha1(ibytes + hash);
9090
}
91-
to_little_endian((std::uint32_t)0, ibytes);
91+
to_little_endian(static_cast<std::uint32_t>(0), ibytes);
9292
hash = internal::crypto::util::sha1(hash + ibytes);
9393
}
9494

9595
std::string result;
9696
{
9797
const std::uint32_t cb_required_key_length =
9898
m_encryption_header.key_size / 8;
99-
const std::uint32_t cb_hash = 20;
99+
constexpr std::uint32_t cb_hash = 20;
100100

101101
std::string buf1(64, '\x36');
102102
buf1 = xor_bytes(hash, buf1.substr(0, cb_hash)) + buf1.substr(cb_hash);
@@ -128,7 +128,7 @@ bool ECMA376Standard::verify(const std::string &key) const noexcept {
128128
std::string ECMA376Standard::decrypt(const std::string &encrypted_package,
129129
const std::string &key) const noexcept {
130130
const std::uint64_t total_size =
131-
*(reinterpret_cast<const std::uint64_t *>(encrypted_package.data()));
131+
*reinterpret_cast<const std::uint64_t *>(encrypted_package.data());
132132
std::string result =
133133
internal::crypto::util::decrypt_aes_ecb(key, encrypted_package.substr(8))
134134
.substr(0, total_size);
@@ -139,22 +139,22 @@ std::string ECMA376Standard::decrypt(const std::string &encrypted_package,
139139
Util::Util(const std::string &encryption_info) {
140140
{
141141
// big endian is not supported
142-
const std::uint16_t num = 1;
143-
if (*(reinterpret_cast<const std::uint8_t *>(&num)) != 1) {
142+
constexpr std::uint16_t num = 1;
143+
if (*reinterpret_cast<const std::uint8_t *>(&num) != 1) {
144144
throw UnsupportedEndian();
145145
}
146146
}
147147

148-
VersionInfo version_info;
148+
VersionInfo version_info{};
149149
std::memcpy(&version_info, encryption_info.data(), sizeof(version_info));
150-
if (((version_info.major == 2) || (version_info.major == 3) ||
151-
(version_info.major == 4)) &&
152-
(version_info.minor == 2)) {
150+
if ((version_info.major == 2 || version_info.major == 3 ||
151+
version_info.major == 4) &&
152+
version_info.minor == 2) {
153153
impl = std::make_unique<ECMA376Standard>(encryption_info);
154-
} else if ((version_info.major == 4) && (version_info.minor == 4)) {
154+
} else if (version_info.major == 4 && version_info.minor == 4) {
155155
throw MsUnsupportedCryptoAlgorithm(); // agile
156-
} else if (((version_info.major == 3) || (version_info.major == 4)) &&
157-
(version_info.minor == 3)) {
156+
} else if ((version_info.major == 3 || version_info.major == 4) &&
157+
version_info.minor == 3) {
158158
throw MsUnsupportedCryptoAlgorithm(); // extensible
159159
} else {
160160
throw MsUnsupportedCryptoAlgorithm(); // unknown

src/odr/internal/ooxml/ooxml_crypto.hpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#pragma once
22

3-
#include <cstdint>
43
#include <memory>
54
#include <string>
65

@@ -63,31 +62,31 @@ class ECMA376Standard final : public Algorithm {
6362
explicit ECMA376Standard(const std::string &encryption_info);
6463

6564
[[nodiscard]] std::string
66-
derive_key(const std::string &password) const noexcept final;
67-
[[nodiscard]] bool verify(const std::string &key) const noexcept final;
65+
derive_key(const std::string &password) const noexcept override;
66+
[[nodiscard]] bool verify(const std::string &key) const noexcept override;
6867
[[nodiscard]] std::string
6968
decrypt(const std::string &encrypted_package,
70-
const std::string &key) const noexcept final;
69+
const std::string &key) const noexcept override;
7170

7271
private:
7372
static constexpr auto ITER_COUNT = 50000;
7473

75-
EncryptionHeader m_encryption_header;
76-
EncryptionVerifier m_encryption_verifier;
74+
EncryptionHeader m_encryption_header{};
75+
EncryptionVerifier m_encryption_verifier{};
7776
std::string m_encrypted_verifier_hash;
7877
};
7978

8079
class Util final : public Algorithm {
8180
public:
8281
explicit Util(const std::string &encryption_info);
83-
~Util() noexcept final;
82+
~Util() noexcept override;
8483

8584
[[nodiscard]] std::string
86-
derive_key(const std::string &password) const noexcept final;
87-
[[nodiscard]] bool verify(const std::string &key) const noexcept final;
85+
derive_key(const std::string &password) const noexcept override;
86+
[[nodiscard]] bool verify(const std::string &key) const noexcept override;
8887
[[nodiscard]] std::string
8988
decrypt(const std::string &encrypted_package,
90-
const std::string &key) const noexcept final;
89+
const std::string &key) const noexcept override;
9190

9291
private:
9392
std::unique_ptr<Algorithm> impl;

src/odr/internal/ooxml/ooxml_file.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313
#include <odr/internal/util/stream_util.hpp>
1414
#include <odr/internal/zip/zip_file.hpp>
1515

16-
namespace odr::internal::abstract {
17-
class Document;
18-
} // namespace odr::internal::abstract
19-
2016
namespace odr::internal::ooxml {
2117

2218
OfficeOpenXmlFile::OfficeOpenXmlFile(
@@ -65,20 +61,21 @@ OfficeOpenXmlFile::decrypt(const std::string &password) const {
6561
throw NotEncryptedError();
6662
}
6763

68-
std::string encryption_info = util::stream::read(
64+
const std::string encryption_info = util::stream::read(
6965
*m_filesystem->open(AbsPath("/EncryptionInfo"))->stream());
7066
// TODO cache Crypto::Util
71-
crypto::Util util(encryption_info);
72-
std::string key = util.derive_key(password);
67+
const crypto::Util util(encryption_info);
68+
const std::string key = util.derive_key(password);
7369
if (!util.verify(key)) {
7470
throw WrongPasswordError();
7571
}
7672

77-
std::string encrypted_package = util::stream::read(
73+
const std::string encrypted_package = util::stream::read(
7874
*m_filesystem->open(AbsPath("/EncryptedPackage"))->stream());
7975
std::string decrypted_package = util.decrypt(encrypted_package, key);
8076

81-
auto memory_file = std::make_shared<MemoryFile>(std::move(decrypted_package));
77+
const auto memory_file =
78+
std::make_shared<MemoryFile>(std::move(decrypted_package));
8279
auto decrypted = std::make_shared<OfficeOpenXmlFile>(*this);
8380
decrypted->m_filesystem =
8481
zip::ZipFile(memory_file).archive()->as_filesystem();

src/odr/internal/ooxml/ooxml_file.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ class OfficeOpenXmlFile final : public abstract::DocumentFile {
2222
explicit OfficeOpenXmlFile(
2323
std::shared_ptr<abstract::ReadableFilesystem> storage);
2424

25-
[[nodiscard]] std::shared_ptr<abstract::File> file() const noexcept final;
25+
[[nodiscard]] std::shared_ptr<abstract::File> file() const noexcept override;
2626

27-
[[nodiscard]] FileType file_type() const noexcept final;
28-
[[nodiscard]] FileMeta file_meta() const noexcept final;
29-
[[nodiscard]] DecoderEngine decoder_engine() const noexcept final;
27+
[[nodiscard]] FileType file_type() const noexcept override;
28+
[[nodiscard]] FileMeta file_meta() const noexcept override;
29+
[[nodiscard]] DecoderEngine decoder_engine() const noexcept override;
3030

31-
[[nodiscard]] DocumentType document_type() const final;
32-
[[nodiscard]] DocumentMeta document_meta() const final;
31+
[[nodiscard]] DocumentType document_type() const override;
32+
[[nodiscard]] DocumentMeta document_meta() const override;
3333

34-
[[nodiscard]] bool password_encrypted() const noexcept final;
35-
[[nodiscard]] EncryptionState encryption_state() const noexcept final;
36-
[[nodiscard]] std::shared_ptr<abstract::DecodedFile>
37-
decrypt(const std::string &password) const final;
34+
[[nodiscard]] bool password_encrypted() const noexcept override;
35+
[[nodiscard]] EncryptionState encryption_state() const noexcept override;
36+
[[nodiscard]] std::shared_ptr<DecodedFile>
37+
decrypt(const std::string &password) const override;
3838

39-
[[nodiscard]] std::shared_ptr<abstract::Document> document() const final;
39+
[[nodiscard]] std::shared_ptr<abstract::Document> document() const override;
4040

4141
private:
4242
std::shared_ptr<abstract::ReadableFilesystem> m_filesystem;

src/odr/internal/ooxml/ooxml_meta.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
#pragma once
22

3-
#include <memory>
4-
#include <stdexcept>
5-
63
namespace odr {
74
struct FileMeta;
85
}

0 commit comments

Comments
 (0)