/src/libqxp/src/lib/QXPHeader.cpp
Line | Count | Source |
1 | | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* |
3 | | * This file is part of the libqxp project. |
4 | | * |
5 | | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | | */ |
9 | | |
10 | | #include "QXPHeader.h" |
11 | | |
12 | | #include "libqxp_utils.h" |
13 | | |
14 | | namespace libqxp |
15 | | { |
16 | | |
17 | | QXPHeader::QXPHeader(const boost::optional<QXPDocument::Type> &fileType) |
18 | 19.3k | : m_proc(0) |
19 | 19.3k | , m_version(QXPVersion::UNKNOWN) |
20 | 19.3k | , m_language(0) |
21 | 19.3k | , m_fileType(fileType) |
22 | 19.3k | { |
23 | 19.3k | } |
24 | | |
25 | | bool QXPHeader::isLittleEndian() const |
26 | 141k | { |
27 | 141k | return m_proc == 'I'; |
28 | 141k | } |
29 | | |
30 | | bool QXPHeader::isBigEndian() const |
31 | 120k | { |
32 | 120k | return !isLittleEndian(); |
33 | 120k | } |
34 | | |
35 | | unsigned QXPHeader::version() const |
36 | 2.01M | { |
37 | 2.01M | return m_version; |
38 | 2.01M | } |
39 | | |
40 | | const char *QXPHeader::encoding() const |
41 | 7.33k | { |
42 | 7.33k | switch (m_language) |
43 | 7.33k | { |
44 | 5.59k | default: |
45 | 5.59k | QXP_DEBUG_MSG(("Unknown language %u\n", m_language)); |
46 | 5.59k | QXP_FALLTHROUGH; // pick a default |
47 | 7.33k | case 0x33: |
48 | 7.33k | return isLittleEndian() ? "cp1252" : "macroman"; |
49 | 7.33k | } |
50 | 7.33k | } |
51 | | |
52 | | } |
53 | | |
54 | | /* vim:set shiftwidth=2 softtabstop=2 expandtab: */ |