Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: I182a639748760393f9e6b0724259201588aeaae3bb10
commit
8bcecd86fa
|
|
@ -43,13 +43,6 @@ isEmpty(ALL_ANDROID_ABIS): ALL_ANDROID_ABIS = arm64-v8a armeabi-v7a x86_64 x86
|
|||
|
||||
CONFIG += $$ANDROID_PLATFORM
|
||||
|
||||
QMAKE_PCH_OUTPUT_EXT = .gch
|
||||
|
||||
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE}
|
||||
QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
|
||||
|
||||
NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST
|
||||
QMAKE_CC = $$NDK_LLVM_PATH/bin/clang
|
||||
QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++
|
||||
|
|
|
|||
|
|
@ -198,9 +198,8 @@ UnixMakefileGenerator::init()
|
|||
QString headerSuffix;
|
||||
if (project->isActiveConfig("clang_pch_style"))
|
||||
headerSuffix = project->first("QMAKE_PCH_OUTPUT_EXT").toQString();
|
||||
else
|
||||
pchBaseName += project->first("QMAKE_PCH_OUTPUT_EXT").toQString();
|
||||
|
||||
pchBaseName += project->first("QMAKE_PCH_OUTPUT_EXT").toQString();
|
||||
pchBaseName += Option::dir_sep;
|
||||
|
||||
ProString language = project->first(ProKey("QMAKE_LANGUAGE_" + compiler));
|
||||
|
|
@ -319,8 +318,7 @@ QStringList
|
|||
if(!project->isEmpty("PRECOMPILED_DIR"))
|
||||
header_prefix = project->first("PRECOMPILED_DIR").toQString();
|
||||
header_prefix += project->first("QMAKE_ORIG_TARGET").toQString();
|
||||
if (!project->isActiveConfig("clang_pch_style"))
|
||||
header_prefix += project->first("QMAKE_PCH_OUTPUT_EXT").toQString();
|
||||
header_prefix += project->first("QMAKE_PCH_OUTPUT_EXT").toQString();
|
||||
if (project->isActiveConfig("icc_pch_style")) {
|
||||
// icc style
|
||||
ProStringList pchArchs = project->values("QMAKE_PCH_ARCHS");
|
||||
|
|
|
|||
|
|
@ -1006,8 +1006,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||
if(!project->isEmpty("PRECOMPILED_DIR"))
|
||||
precomph_out_dir = project->first("PRECOMPILED_DIR");
|
||||
precomph_out_dir += project->first("QMAKE_ORIG_TARGET");
|
||||
if (!project->isActiveConfig("clang_pch_style"))
|
||||
precomph_out_dir += project->first("QMAKE_PCH_OUTPUT_EXT");
|
||||
precomph_out_dir += project->first("QMAKE_PCH_OUTPUT_EXT");
|
||||
|
||||
if (project->isActiveConfig("icc_pch_style")) {
|
||||
// icc style
|
||||
|
|
@ -1126,8 +1125,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||
if(!project->isEmpty("PRECOMPILED_DIR"))
|
||||
pchOutput = project->first("PRECOMPILED_DIR");
|
||||
pchOutput += pchBaseName;
|
||||
if (!project->isActiveConfig("clang_pch_style"))
|
||||
pchOutput += project->first("QMAKE_PCH_OUTPUT_EXT");
|
||||
pchOutput += project->first("QMAKE_PCH_OUTPUT_EXT");
|
||||
|
||||
if (!project->isActiveConfig("icc_pch_style")) {
|
||||
// gcc style (including clang_pch_style)
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
This is a copy of the library for binary-decimal and decimal-binary
|
||||
conversion routines for IEEE doubles, available from
|
||||
|
||||
https://github.com/google/double-conversion
|
||||
|
||||
commit 2fb03de56faa32bbba5e02222528e7b760f71d77
|
||||
|
||||
See the LICENSE file for license information.
|
||||
|
|
@ -38,11 +38,6 @@
|
|||
#include <double-conversion/strtod.h>
|
||||
#include <double-conversion/utils.h>
|
||||
|
||||
// Fix warning C4244: 'argument': conversion from 'const uc16' to 'char', possible loss of data
|
||||
#ifdef _MSC_VER
|
||||
__pragma(warning(disable: 4244))
|
||||
#endif
|
||||
|
||||
namespace double_conversion {
|
||||
|
||||
const DoubleToStringConverter& DoubleToStringConverter::EcmaScriptConverter() {
|
||||
|
|
@ -255,6 +250,12 @@ bool DoubleToStringConverter::ToExponential(
|
|||
const int kDecimalRepCapacity = kMaxExponentialDigits + 2;
|
||||
ASSERT(kDecimalRepCapacity > kBase10MaximalLength);
|
||||
char decimal_rep[kDecimalRepCapacity];
|
||||
#ifndef NDEBUG
|
||||
// Problem: there is an assert in StringBuilder::AddSubstring() that
|
||||
// will pass this buffer to strlen(), and this buffer is not generally
|
||||
// null-terminated.
|
||||
memset(decimal_rep, 0, sizeof(decimal_rep));
|
||||
#endif
|
||||
int decimal_rep_length;
|
||||
|
||||
if (requested_digits == -1) {
|
||||
|
|
@ -534,7 +535,7 @@ static double SignedZero(bool sign) {
|
|||
// because it constant-propagated the radix and concluded that the last
|
||||
// condition was always true. By moving it into a separate function the
|
||||
// compiler wouldn't warn anymore.
|
||||
#if _MSC_VER
|
||||
#ifdef _MSC_VER
|
||||
#pragma optimize("",off)
|
||||
static bool IsDecimalDigitForRadix(int c, int radix) {
|
||||
return '0' <= c && c <= '9' && (c - '0') < radix;
|
||||
|
|
@ -558,7 +559,7 @@ static bool IsCharacterDigitForRadix(int c, int radix, char a_character) {
|
|||
|
||||
// Returns true, when the iterator is equal to end.
|
||||
template<class Iterator>
|
||||
static bool Advance (Iterator* it, char separator, int base, Iterator& end) {
|
||||
static bool Advance (Iterator* it, uc16 separator, int base, Iterator& end) {
|
||||
if (separator == StringToDoubleConverter::kNoSeparator) {
|
||||
++(*it);
|
||||
return *it == end;
|
||||
|
|
@ -586,7 +587,7 @@ static bool Advance (Iterator* it, char separator, int base, Iterator& end) {
|
|||
template<class Iterator>
|
||||
static bool IsHexFloatString(Iterator start,
|
||||
Iterator end,
|
||||
char separator,
|
||||
uc16 separator,
|
||||
bool allow_trailing_junk) {
|
||||
ASSERT(start != end);
|
||||
|
||||
|
|
@ -603,8 +604,8 @@ static bool IsHexFloatString(Iterator start,
|
|||
saw_digit = true;
|
||||
if (Advance(¤t, separator, 16, end)) return false;
|
||||
}
|
||||
if (!saw_digit) return false; // Only the '.', but no digits.
|
||||
}
|
||||
if (!saw_digit) return false;
|
||||
if (*current != 'p' && *current != 'P') return false;
|
||||
if (Advance(¤t, separator, 16, end)) return false;
|
||||
if (*current == '+' || *current == '-') {
|
||||
|
|
@ -627,7 +628,7 @@ template <int radix_log_2, class Iterator>
|
|||
static double RadixStringToIeee(Iterator* current,
|
||||
Iterator end,
|
||||
bool sign,
|
||||
char separator,
|
||||
uc16 separator,
|
||||
bool parse_as_hex_float,
|
||||
bool allow_trailing_junk,
|
||||
double junk_string_value,
|
||||
|
|
@ -762,7 +763,11 @@ static double RadixStringToIeee(Iterator* current,
|
|||
}
|
||||
int written_exponent = 0;
|
||||
while (IsDecimalDigitForRadix(**current, 10)) {
|
||||
written_exponent = 10 * written_exponent + **current - '0';
|
||||
// No need to read exponents if they are too big. That could potentially overflow
|
||||
// the `written_exponent` variable.
|
||||
if (abs(written_exponent) <= 100 * Double::kMaxExponent) {
|
||||
written_exponent = 10 * written_exponent + **current - '0';
|
||||
}
|
||||
if (Advance(current, separator, radix, end)) break;
|
||||
}
|
||||
if (is_negative) written_exponent = -written_exponent;
|
||||
|
|
@ -898,10 +903,11 @@ double StringToDoubleConverter::StringToIeee(
|
|||
(*current == 'x' || *current == 'X')) {
|
||||
++current;
|
||||
|
||||
if (current == end) return junk_string_value_; // "0x"
|
||||
|
||||
bool parse_as_hex_float = (flags_ & ALLOW_HEX_FLOATS) &&
|
||||
IsHexFloatString(current, end, separator_, allow_trailing_junk);
|
||||
|
||||
if (current == end) return junk_string_value_; // "0x"
|
||||
if (!parse_as_hex_float && !isDigit(*current, 16)) {
|
||||
return junk_string_value_;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
INCLUDEPATH += $$PWD/.. $$PWD/include $$PWD/include/double-conversion
|
||||
INCLUDEPATH += $$PWD/.. $$PWD/include
|
||||
SOURCES += \
|
||||
$$PWD/bignum.cc \
|
||||
$$PWD/bignum-dtoa.cc \
|
||||
|
|
@ -20,5 +20,3 @@ HEADERS += \
|
|||
$$PWD/ieee.h \
|
||||
$$PWD/strtod.h \
|
||||
$$PWD/include/double-conversion/utils.h
|
||||
|
||||
OTHER_FILES += README
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ class Double {
|
|||
static const uint64_t kHiddenBit = UINT64_2PART_C(0x00100000, 00000000);
|
||||
static const int kPhysicalSignificandSize = 52; // Excludes the hidden bit.
|
||||
static const int kSignificandSize = 53;
|
||||
static const int kExponentBias = 0x3FF + kPhysicalSignificandSize;
|
||||
static const int kMaxExponent = 0x7FF - kExponentBias;
|
||||
|
||||
Double() : d64_(0) {}
|
||||
explicit Double(double d) : d64_(double_to_uint64(d)) {}
|
||||
|
|
@ -222,9 +224,7 @@ class Double {
|
|||
}
|
||||
|
||||
private:
|
||||
static const int kExponentBias = 0x3FF + kPhysicalSignificandSize;
|
||||
static const int kDenormalExponent = -kExponentBias + 1;
|
||||
static const int kMaxExponent = 0x7FF - kExponentBias;
|
||||
static const uint64_t kInfinity = UINT64_2PART_C(0x7FF00000, 00000000);
|
||||
static const uint64_t kNaN = UINT64_2PART_C(0x7FF80000, 00000000);
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,13 @@ inline void abort_noreturn() { abort(); }
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef DOUBLE_CONVERSION_UNUSED
|
||||
#ifdef __GNUC__
|
||||
#define DOUBLE_CONVERSION_UNUSED __attribute__((unused))
|
||||
#else
|
||||
#define DOUBLE_CONVERSION_UNUSED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Double operations detection based on target architecture.
|
||||
// Linux uses a 80bit wide floating point stack on x86. This induces double
|
||||
|
|
@ -91,10 +98,11 @@ int main(int argc, char** argv) {
|
|||
defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
|
||||
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
|
||||
defined(__SH4__) || defined(__alpha__) || \
|
||||
defined(_MIPS_ARCH_MIPS32R2) || \
|
||||
defined(_MIPS_ARCH_MIPS32R2) || defined(__ARMEB__) ||\
|
||||
defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \
|
||||
defined(__riscv) || defined(__EMSCRIPTEN__) || \
|
||||
defined(__or1k__)
|
||||
defined(__riscv) || \
|
||||
defined(__or1k__) || defined(__arc__) || \
|
||||
defined(__EMSCRIPTEN__)
|
||||
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
|
||||
#elif defined(__mc68000__) || \
|
||||
defined(__pnacl__) || defined(__native_client__)
|
||||
|
|
@ -343,6 +351,7 @@ inline Dest BitCast(const Source& source) {
|
|||
static_assert(sizeof(Dest) == sizeof(Source),
|
||||
"source and destination size mismatch");
|
||||
#else
|
||||
DOUBLE_CONVERSION_UNUSED
|
||||
typedef char VerifySizesAreEqual[sizeof(Dest) == sizeof(Source) ? 1 : -1];
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
"QtUsage": "Used in Qt Core. Configure with -system-doubleconversion or -no-doubleconversion to avoid.",
|
||||
|
||||
"Homepage": "https://github.com/google/double-conversion",
|
||||
"Version": "3.1.1",
|
||||
"DownloadLocation": "https://github.com/google/double-conversion/commit/4199ef3d456ed0549e5665cf4186f0ee6210db3b",
|
||||
"Version": "3.1.5",
|
||||
"DownloadLocation": "https://github.com/google/double-conversion/commit/5fa81e88ef24e735b4283b8f7454dc59693ac1fc",
|
||||
"License": "BSD 3-clause \"New\" or \"Revised\" License",
|
||||
"LicenseId": "BSD-3-Clause",
|
||||
"LicenseFile": "LICENSE",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#define JPEG_LIB_VERSION 80
|
||||
|
||||
#define LIBJPEG_TURBO_VERSION 2.0.2
|
||||
#define LIBJPEG_TURBO_VERSION 2.0.3
|
||||
|
||||
#define LIBJPEG_TURBO_VERSION_NUMBER 2000002
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#define PACKAGE_NAME "libjpeg-turbo"
|
||||
|
||||
#define VERSION "2.0.0"
|
||||
#define VERSION "2.0.3"
|
||||
|
||||
#if SIZE_MAX == 0xffffffff
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
"Description": "The Independent JPEG Group's JPEG software",
|
||||
"Homepage": "http://libjpeg-turbo.virtualgl.org/",
|
||||
"Version": "2.0.2",
|
||||
"Version": "2.0.3",
|
||||
"License": "Independent JPEG Group License",
|
||||
"LicenseId": "IJG",
|
||||
"LicenseFile": "LICENSE",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,41 @@
|
|||
2.0.3
|
||||
=====
|
||||
|
||||
### Significant changes relative to 2.0.2:
|
||||
|
||||
1. Fixed "using JNI after critical get" errors that occurred on Android
|
||||
platforms when passing invalid arguments to certain methods in the TurboJPEG
|
||||
Java API.
|
||||
|
||||
2. Fixed a regression in the SIMD feature detection code, introduced by
|
||||
the AVX2 SIMD extensions (2.0 beta1[1]), that was known to cause an illegal
|
||||
instruction exception, in rare cases, on CPUs that lack support for CPUID leaf
|
||||
07H (or on which the maximum CPUID leaf has been limited by way of a BIOS
|
||||
setting.)
|
||||
|
||||
3. The 4:4:0 (h1v2) fancy (smooth) chroma upsampling algorithm in the
|
||||
decompressor now uses a similar bias pattern to that of the 4:2:2 (h2v1) fancy
|
||||
chroma upsampling algorithm, rounding up or down the upsampled result for
|
||||
alternate pixels rather than always rounding down. This ensures that,
|
||||
regardless of whether a 4:2:2 JPEG image is rotated or transposed prior to
|
||||
decompression (in the frequency domain) or after decompression (in the spatial
|
||||
domain), the final image will be similar.
|
||||
|
||||
4. Fixed an integer overflow and subsequent segfault that occurred when
|
||||
attempting to compress or decompress images with more than 1 billion pixels
|
||||
using the TurboJPEG API.
|
||||
|
||||
5. Fixed a regression introduced by 2.0 beta1[15] whereby attempting to
|
||||
generate a progressive JPEG image on an SSE2-capable CPU using a scan script
|
||||
containing one or more scans with lengths divisible by 16 would result in an
|
||||
error ("Missing Huffman code table entry") and an invalid JPEG image.
|
||||
|
||||
6. Fixed an issue whereby `tjDecodeYUV()` and `tjDecodeYUVPlanes()` would throw
|
||||
an error ("Invalid progressive parameters") or a warning ("Inconsistent
|
||||
progression sequence") if passed a TurboJPEG instance that was previously used
|
||||
to decompress a progressive JPEG image.
|
||||
|
||||
|
||||
2.0.2
|
||||
=====
|
||||
|
||||
|
|
|
|||
|
|
@ -135,12 +135,11 @@ without recompiling. libjpeg-turbo does not claim to support all of the
|
|||
libjpeg v7+ features, nor to produce identical output to libjpeg v7+ in all
|
||||
cases (see below.)
|
||||
|
||||
By passing an argument of `--with-jpeg7` or `--with-jpeg8` to `configure`, or
|
||||
an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you can build a
|
||||
version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so that
|
||||
programs that are built against libjpeg v7 or v8 can be run with libjpeg-turbo.
|
||||
The following section describes which libjpeg v7+ features are supported and
|
||||
which aren't.
|
||||
By passing an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you
|
||||
can build a version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so
|
||||
that programs that are built against libjpeg v7 or v8 can be run with
|
||||
libjpeg-turbo. The following section describes which libjpeg v7+ features are
|
||||
supported and which aren't.
|
||||
|
||||
### Support for libjpeg v7 and v8 Features
|
||||
|
||||
|
|
@ -247,9 +246,8 @@ don't, and it allows those functions to be provided in the "official"
|
|||
libjpeg-turbo binaries.
|
||||
|
||||
Those who are concerned about maintaining strict conformance with the libjpeg
|
||||
v6b or v7 API can pass an argument of `--without-mem-srcdst` to `configure` or
|
||||
an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to building
|
||||
libjpeg-turbo. This will restore the pre-1.3 behavior, in which
|
||||
v6b or v7 API can pass an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to
|
||||
building libjpeg-turbo. This will restore the pre-1.3 behavior, in which
|
||||
`jpeg_mem_src()` and `jpeg_mem_dest()` are only included when emulating the
|
||||
libjpeg v8 API/ABI.
|
||||
|
||||
|
|
@ -344,3 +342,15 @@ quality of 98-100. Thus, libjpeg-turbo must use the non-SIMD quantization
|
|||
function in those cases. This causes performance to drop by as much as 40%.
|
||||
It is therefore strongly advised that you use the slow integer forward DCT
|
||||
whenever encoding images with a JPEG quality of 98 or higher.
|
||||
|
||||
|
||||
Memory Debugger Pitfalls
|
||||
========================
|
||||
|
||||
Valgrind and Memory Sanitizer (MSan) can generate false positives
|
||||
(specifically, incorrect reports of uninitialized memory accesses) when used
|
||||
with libjpeg-turbo's SIMD extensions. It is generally recommended that the
|
||||
SIMD extensions be disabled, either by passing an argument of `-DWITH_SIMD=0`
|
||||
to `cmake` when configuring the build or by setting the environment variable
|
||||
`JSIMD_FORCENONE` to `1` at run time, when testing libjpeg-turbo with Valgrind,
|
||||
MSan, or other memory debuggers.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2014-2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2014-2016, 2018-2019, D. R. Commander.
|
||||
* Copyright (C) 2015, Matthieu Darbois.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
|
|
@ -356,6 +356,8 @@ dump_buffer(working_state *state)
|
|||
put_buffer = (put_buffer << size) | code; \
|
||||
}
|
||||
|
||||
#if SIZEOF_SIZE_T != 8 && !defined(_WIN64)
|
||||
|
||||
#define CHECKBUF15() { \
|
||||
if (put_bits > 15) { \
|
||||
EMIT_BYTE() \
|
||||
|
|
@ -363,6 +365,8 @@ dump_buffer(working_state *state)
|
|||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define CHECKBUF31() { \
|
||||
if (put_bits > 31) { \
|
||||
EMIT_BYTE() \
|
||||
|
|
|
|||
|
|
@ -492,8 +492,8 @@ prepare_for_pass(j_compress_ptr cinfo)
|
|||
*/
|
||||
master->pass_type = output_pass;
|
||||
master->pass_number++;
|
||||
/*FALLTHROUGH*/
|
||||
#endif
|
||||
/*FALLTHROUGH*/
|
||||
case output_pass:
|
||||
/* Do a data-output pass. */
|
||||
/* We need not repeat per-scan setup if prior optimization pass did it. */
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2016, 2018-2019, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
|
|
@ -589,7 +589,11 @@ decode_mcu_slow(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
|||
if (entropy->dc_needed[blkn]) {
|
||||
/* Convert DC difference to actual value, update last_dc_val */
|
||||
int ci = cinfo->MCU_membership[blkn];
|
||||
s += state.last_dc_val[ci];
|
||||
/* This is really just
|
||||
* s += state.last_dc_val[ci];
|
||||
* It is written this way in order to shut up UBSan.
|
||||
*/
|
||||
s = (int)((unsigned int)s + (unsigned int)state.last_dc_val[ci]);
|
||||
state.last_dc_val[ci] = s;
|
||||
if (block) {
|
||||
/* Output the DC coefficient (assumes jpeg_natural_order[0] = 0) */
|
||||
|
|
@ -684,7 +688,7 @@ decode_mcu_fast(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
|||
|
||||
if (entropy->dc_needed[blkn]) {
|
||||
int ci = cinfo->MCU_membership[blkn];
|
||||
s += state.last_dc_val[ci];
|
||||
s = (int)((unsigned int)s + (unsigned int)state.last_dc_val[ci]);
|
||||
state.last_dc_val[ci] = s;
|
||||
if (block)
|
||||
(*block)[0] = (JCOEF)s;
|
||||
|
|
|
|||
|
|
@ -429,8 +429,6 @@ h2v2_merged_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
|||
#define PACK_TWO_PIXELS_LE(l, r) ((r << 16) | l)
|
||||
#define PACK_TWO_PIXELS_BE(l, r) ((l << 16) | r)
|
||||
|
||||
#define PACK_NEED_ALIGNMENT(ptr) (((size_t)(ptr)) & 3)
|
||||
|
||||
#define WRITE_TWO_PIXELS_LE(addr, pixels) { \
|
||||
((INT16 *)(addr))[0] = (INT16)(pixels); \
|
||||
((INT16 *)(addr))[1] = (INT16)((pixels) >> 16); \
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
* Copyright (C) 2010, 2015-2016, D. R. Commander.
|
||||
* Copyright (C) 2014, MIPS Technologies, Inc., California.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* Copyright (C) 2019, Arm Limited.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
|
|
@ -315,9 +316,9 @@ h1v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
|||
JSAMPARRAY output_data = *output_data_ptr;
|
||||
JSAMPROW inptr0, inptr1, outptr;
|
||||
#if BITS_IN_JSAMPLE == 8
|
||||
int thiscolsum;
|
||||
int thiscolsum, bias;
|
||||
#else
|
||||
JLONG thiscolsum;
|
||||
JLONG thiscolsum, bias;
|
||||
#endif
|
||||
JDIMENSION colctr;
|
||||
int inrow, outrow, v;
|
||||
|
|
@ -327,15 +328,18 @@ h1v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
|||
for (v = 0; v < 2; v++) {
|
||||
/* inptr0 points to nearest input row, inptr1 points to next nearest */
|
||||
inptr0 = input_data[inrow];
|
||||
if (v == 0) /* next nearest is row above */
|
||||
if (v == 0) { /* next nearest is row above */
|
||||
inptr1 = input_data[inrow - 1];
|
||||
else /* next nearest is row below */
|
||||
bias = 1;
|
||||
} else { /* next nearest is row below */
|
||||
inptr1 = input_data[inrow + 1];
|
||||
bias = 2;
|
||||
}
|
||||
outptr = output_data[outrow++];
|
||||
|
||||
for (colctr = 0; colctr < compptr->downsampled_width; colctr++) {
|
||||
thiscolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum + 1) >> 2);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum + bias) >> 2);
|
||||
}
|
||||
}
|
||||
inrow++;
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ struct MD_CTX_tag {
|
|||
#endif
|
||||
|
||||
/* For resolving of inline spans. */
|
||||
MD_MARKCHAIN mark_chains[11];
|
||||
MD_MARKCHAIN mark_chains[12];
|
||||
#define PTR_CHAIN ctx->mark_chains[0]
|
||||
#define TABLECELLBOUNDARIES ctx->mark_chains[1]
|
||||
#define ASTERISK_OPENERS_extraword_mod3_0 ctx->mark_chains[2]
|
||||
|
|
@ -139,8 +139,9 @@ struct MD_CTX_tag {
|
|||
#define UNDERSCORE_OPENERS ctx->mark_chains[8]
|
||||
#define TILDE_OPENERS ctx->mark_chains[9]
|
||||
#define BRACKET_OPENERS ctx->mark_chains[10]
|
||||
#define DOLLAR_OPENERS ctx->mark_chains[11]
|
||||
#define OPENERS_CHAIN_FIRST 2
|
||||
#define OPENERS_CHAIN_LAST 10
|
||||
#define OPENERS_CHAIN_LAST 11
|
||||
|
||||
int n_table_cell_boundaries;
|
||||
|
||||
|
|
@ -1128,7 +1129,7 @@ md_is_html_comment(MD_CTX* ctx, const MD_LINE* lines, int n_lines, OFF beg, OFF
|
|||
if(off+1 < lines[0].end && CH(off) == _T('-') && CH(off+1) == _T('>'))
|
||||
return FALSE;
|
||||
|
||||
/* HTML comment must not contyain "--", so we scan just for "--" instead
|
||||
/* HTML comment must not contain "--", so we scan just for "--" instead
|
||||
* of "-->" and verify manually that '>' follows. */
|
||||
if(md_scan_for_html_closer(ctx, _T("--"), 2,
|
||||
lines, n_lines, off, max_end, p_end, &ctx->html_comment_horizon))
|
||||
|
|
@ -1686,7 +1687,7 @@ md_build_ref_def_hashtable(MD_CTX* ctx)
|
|||
}
|
||||
|
||||
/* Make the bucket capable of holding more ref. defs. */
|
||||
list = (MD_REF_DEF_LIST*) malloc(sizeof(MD_REF_DEF_LIST) + 4 * sizeof(MD_REF_DEF));
|
||||
list = (MD_REF_DEF_LIST*) malloc(sizeof(MD_REF_DEF_LIST) + 4 * sizeof(MD_REF_DEF*));
|
||||
if(list == NULL) {
|
||||
MD_LOG("malloc() failed.");
|
||||
goto abort;
|
||||
|
|
@ -1703,7 +1704,7 @@ md_build_ref_def_hashtable(MD_CTX* ctx)
|
|||
list = (MD_REF_DEF_LIST*) bucket;
|
||||
if(list->n_ref_defs >= list->alloc_ref_defs) {
|
||||
MD_REF_DEF_LIST* list_tmp = (MD_REF_DEF_LIST*) realloc(list,
|
||||
sizeof(MD_REF_DEF_LIST) + 2 * list->alloc_ref_defs * sizeof(MD_REF_DEF));
|
||||
sizeof(MD_REF_DEF_LIST) + 2 * list->alloc_ref_defs * sizeof(MD_REF_DEF*));
|
||||
if(list_tmp == NULL) {
|
||||
MD_LOG("realloc() failed.");
|
||||
goto abort;
|
||||
|
|
@ -2683,6 +2684,9 @@ md_build_mark_char_map(MD_CTX* ctx)
|
|||
if(ctx->parser.flags & MD_FLAG_STRIKETHROUGH)
|
||||
ctx->mark_char_map['~'] = 1;
|
||||
|
||||
if(ctx->parser.flags & MD_FLAG_LATEXMATHSPANS)
|
||||
ctx->mark_char_map['$'] = 1;
|
||||
|
||||
if(ctx->parser.flags & MD_FLAG_PERMISSIVEEMAILAUTOLINKS)
|
||||
ctx->mark_char_map['@'] = 1;
|
||||
|
||||
|
|
@ -3251,6 +3255,21 @@ md_collect_marks(MD_CTX* ctx, const MD_LINE* lines, int n_lines, int table_mode)
|
|||
continue;
|
||||
}
|
||||
|
||||
/* A potential equation start/end */
|
||||
if(ch == _T('$')) {
|
||||
/* We can have at most two consecutive $ signs,
|
||||
* where two dollar signs signify a display equation. */
|
||||
OFF tmp = off+1;
|
||||
|
||||
while(tmp < line_end && CH(tmp) == _T('$'))
|
||||
tmp++;
|
||||
|
||||
if (tmp - off <= 2)
|
||||
PUSH_MARK(ch, off, tmp, MD_MARK_POTENTIAL_OPENER | MD_MARK_POTENTIAL_CLOSER);
|
||||
off = tmp;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Turn non-trivial whitespace into single space. */
|
||||
if(ISWHITESPACE_(ch)) {
|
||||
OFF tmp = off+1;
|
||||
|
|
@ -3630,6 +3649,36 @@ md_analyze_tilde(MD_CTX* ctx, int mark_index)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
md_analyze_dollar(MD_CTX* ctx, int mark_index)
|
||||
{
|
||||
/* This should mimic the way inline equations work in LaTeX, so there
|
||||
* can only ever be one item in the chain (i.e. the dollars can't be
|
||||
* nested). This is basically the same as the md_analyze_tilde function,
|
||||
* except that we require matching openers and closers to be of the same
|
||||
* length.
|
||||
*
|
||||
* E.g.: $abc$$def$$ => abc (display equation) def (end equation) */
|
||||
if(DOLLAR_OPENERS.head >= 0) {
|
||||
/* If the potential closer has a non-matching number of $, discard */
|
||||
MD_MARK* open = &ctx->marks[DOLLAR_OPENERS.head];
|
||||
MD_MARK* close = &ctx->marks[mark_index];
|
||||
|
||||
int opener_index = DOLLAR_OPENERS.head;
|
||||
md_rollback(ctx, opener_index, mark_index, MD_ROLLBACK_ALL);
|
||||
if (open->end - open->beg == close->end - close->beg) {
|
||||
/* We are the matching closer */
|
||||
md_resolve_range(ctx, &DOLLAR_OPENERS, opener_index, mark_index);
|
||||
} else {
|
||||
/* We don't match the opener, so discard old opener and insert as opener */
|
||||
md_mark_chain_append(ctx, &DOLLAR_OPENERS, mark_index);
|
||||
}
|
||||
} else {
|
||||
/* No unmatched openers, so we are opener */
|
||||
md_mark_chain_append(ctx, &DOLLAR_OPENERS, mark_index);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
md_analyze_permissive_url_autolink(MD_CTX* ctx, int mark_index)
|
||||
{
|
||||
|
|
@ -3785,6 +3834,7 @@ md_analyze_marks(MD_CTX* ctx, const MD_LINE* lines, int n_lines,
|
|||
case '_': /* Pass through. */
|
||||
case '*': md_analyze_emph(ctx, i); break;
|
||||
case '~': md_analyze_tilde(ctx, i); break;
|
||||
case '$': md_analyze_dollar(ctx, i); break;
|
||||
case '.': /* Pass through. */
|
||||
case ':': md_analyze_permissive_url_autolink(ctx, i); break;
|
||||
case '@': md_analyze_permissive_email_autolink(ctx, i); break;
|
||||
|
|
@ -3841,7 +3891,7 @@ static void
|
|||
md_analyze_link_contents(MD_CTX* ctx, const MD_LINE* lines, int n_lines,
|
||||
int mark_beg, int mark_end)
|
||||
{
|
||||
md_analyze_marks(ctx, lines, n_lines, mark_beg, mark_end, _T("*_~@:."));
|
||||
md_analyze_marks(ctx, lines, n_lines, mark_beg, mark_end, _T("*_~$@:."));
|
||||
ASTERISK_OPENERS_extraword_mod3_0.head = -1;
|
||||
ASTERISK_OPENERS_extraword_mod3_0.tail = -1;
|
||||
ASTERISK_OPENERS_extraword_mod3_1.head = -1;
|
||||
|
|
@ -3858,6 +3908,8 @@ md_analyze_link_contents(MD_CTX* ctx, const MD_LINE* lines, int n_lines,
|
|||
UNDERSCORE_OPENERS.tail = -1;
|
||||
TILDE_OPENERS.head = -1;
|
||||
TILDE_OPENERS.tail = -1;
|
||||
DOLLAR_OPENERS.head = -1;
|
||||
DOLLAR_OPENERS.tail = -1;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
@ -3974,6 +4026,16 @@ md_process_inlines(MD_CTX* ctx, const MD_LINE* lines, int n_lines)
|
|||
MD_LEAVE_SPAN(MD_SPAN_DEL, NULL);
|
||||
break;
|
||||
|
||||
case '$':
|
||||
if(mark->flags & MD_MARK_OPENER) {
|
||||
MD_ENTER_SPAN((mark->end - off) % 2 ? MD_SPAN_LATEXMATH : MD_SPAN_LATEXMATH_DISPLAY, NULL);
|
||||
text_type = MD_TEXT_LATEXMATH;
|
||||
} else {
|
||||
MD_LEAVE_SPAN((mark->end - off) % 2 ? MD_SPAN_LATEXMATH : MD_SPAN_LATEXMATH_DISPLAY, NULL);
|
||||
text_type = MD_TEXT_NORMAL;
|
||||
}
|
||||
break;
|
||||
|
||||
case '[': /* Link, image. */
|
||||
case '!':
|
||||
case ']':
|
||||
|
|
@ -4072,12 +4134,12 @@ md_process_inlines(MD_CTX* ctx, const MD_LINE* lines, int n_lines)
|
|||
if(off >= end)
|
||||
break;
|
||||
|
||||
if(text_type == MD_TEXT_CODE) {
|
||||
if(text_type == MD_TEXT_CODE || text_type == MD_TEXT_LATEXMATH) {
|
||||
OFF tmp;
|
||||
|
||||
MD_ASSERT(prev_mark != NULL);
|
||||
MD_ASSERT(prev_mark->ch == '`' && (prev_mark->flags & MD_MARK_OPENER));
|
||||
MD_ASSERT(mark->ch == '`' && (mark->flags & MD_MARK_CLOSER));
|
||||
MD_ASSERT(ISANYOF2_(prev_mark->ch, '`', '$') && (prev_mark->flags & MD_MARK_OPENER));
|
||||
MD_ASSERT(ISANYOF2_(mark->ch, '`', '$') && (mark->flags & MD_MARK_CLOSER));
|
||||
|
||||
/* Inside a code span, trailing line whitespace has to be
|
||||
* outputted. */
|
||||
|
|
@ -4085,12 +4147,11 @@ md_process_inlines(MD_CTX* ctx, const MD_LINE* lines, int n_lines)
|
|||
while(off < ctx->size && ISBLANK(off))
|
||||
off++;
|
||||
if(off > tmp)
|
||||
MD_TEXT(MD_TEXT_CODE, STR(tmp), off-tmp);
|
||||
MD_TEXT(text_type, STR(tmp), off-tmp);
|
||||
|
||||
/* and new lines are transformed into single spaces. */
|
||||
if(prev_mark->end < off && off < mark->beg)
|
||||
MD_TEXT(MD_TEXT_CODE, _T(" "), 1);
|
||||
|
||||
MD_TEXT(text_type, _T(" "), 1);
|
||||
} else if(text_type == MD_TEXT_HTML) {
|
||||
/* Inside raw HTML, we output the new line verbatim, including
|
||||
* any trailing spaces. */
|
||||
|
|
@ -5425,7 +5486,10 @@ md_is_container_mark(MD_CTX* ctx, unsigned indent, OFF beg, OFF* p_end, MD_CONTA
|
|||
p_container->start = p_container->start * 10 + CH(off) - _T('0');
|
||||
off++;
|
||||
}
|
||||
if(off+1 < ctx->size && (CH(off) == _T('.') || CH(off) == _T(')')) && (ISBLANK(off+1) || ISNEWLINE(off+1))) {
|
||||
if(off > beg && off+1 < ctx->size &&
|
||||
(CH(off) == _T('.') || CH(off) == _T(')')) &&
|
||||
(ISBLANK(off+1) || ISNEWLINE(off+1)))
|
||||
{
|
||||
p_container->ch = CH(off);
|
||||
p_container->is_loose = FALSE;
|
||||
p_container->is_task = FALSE;
|
||||
|
|
@ -5700,7 +5764,7 @@ md_analyze_line(MD_CTX* ctx, OFF beg, OFF* p_end,
|
|||
md_is_container_mark(ctx, line->indent, off, &off, &container))
|
||||
{
|
||||
if(pivot_line->type == MD_LINE_TEXT && n_parents == ctx->n_containers &&
|
||||
(off >= ctx->size || ISNEWLINE(off)))
|
||||
(off >= ctx->size || ISNEWLINE(off)) && container.ch != _T('>'))
|
||||
{
|
||||
/* Noop. List mark followed by a blank line cannot interrupt a paragraph. */
|
||||
} else if(pivot_line->type == MD_LINE_TEXT && n_parents == ctx->n_containers &&
|
||||
|
|
|
|||
|
|
@ -129,7 +129,13 @@ typedef enum MD_SPANTYPE {
|
|||
/* <del>...</del>
|
||||
* Note: Recognized only when MD_FLAG_STRIKETHROUGH is enabled.
|
||||
*/
|
||||
MD_SPAN_DEL
|
||||
MD_SPAN_DEL,
|
||||
|
||||
/* For recognizing inline ($) and display ($$) equations
|
||||
* Note: Recognized only when MD_FLAG_LATEXMATHSPANS is enabled.
|
||||
*/
|
||||
MD_SPAN_LATEXMATH,
|
||||
MD_SPAN_LATEXMATH_DISPLAY
|
||||
} MD_SPANTYPE;
|
||||
|
||||
/* Text is the actual textual contents of span. */
|
||||
|
|
@ -168,7 +174,11 @@ typedef enum MD_TEXTTYPE {
|
|||
/* Text is a raw HTML. If it is contents of a raw HTML block (i.e. not
|
||||
* an inline raw HTML), then MD_TEXT_BR and MD_TEXT_SOFTBR are not used.
|
||||
* The text contains verbatim '\n' for the new lines. */
|
||||
MD_TEXT_HTML
|
||||
MD_TEXT_HTML,
|
||||
|
||||
/* Text is inside an equation. This is processed the same way as inlined code
|
||||
* spans (`code`). */
|
||||
MD_TEXT_LATEXMATH
|
||||
} MD_TEXTTYPE;
|
||||
|
||||
|
||||
|
|
@ -275,6 +285,7 @@ typedef struct MD_SPAN_IMG_DETAIL {
|
|||
#define MD_FLAG_STRIKETHROUGH 0x0200 /* Enable strikethrough extension. */
|
||||
#define MD_FLAG_PERMISSIVEWWWAUTOLINKS 0x0400 /* Enable WWW autolinks (even without any scheme prefix, if they begin with 'www.') */
|
||||
#define MD_FLAG_TASKLISTS 0x0800 /* Enable task list extension. */
|
||||
#define MD_FLAG_LATEXMATHSPANS 0x1000 /* Enable $ and $$ containing LaTeX equations. */
|
||||
|
||||
#define MD_FLAG_PERMISSIVEAUTOLINKS (MD_FLAG_PERMISSIVEEMAILAUTOLINKS | MD_FLAG_PERMISSIVEURLAUTOLINKS | MD_FLAG_PERMISSIVEWWWAUTOLINKS)
|
||||
#define MD_FLAG_NOHTML (MD_FLAG_NOHTMLBLOCKS | MD_FLAG_NOHTMLSPANS)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"License": "MIT License",
|
||||
"LicenseId": "MIT",
|
||||
"LicenseFile": "LICENSE.md",
|
||||
"Version": "0.3.3",
|
||||
"DownloadLocation": "https://github.com/mity/md4c/releases/tag/release-0.3.3",
|
||||
"Version": "0.3.4",
|
||||
"DownloadLocation": "https://github.com/mity/md4c/releases/tag/release-0.3.4",
|
||||
"Copyright": "Copyright © 2016-2019 Martin Mitáš"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,191 @@
|
|||
if (NOT ${PROJECT_NAME}-MultiAbiBuild)
|
||||
|
||||
set(ANDROID_ABIS armeabi-v7a arm64-v8a x86 x86_64)
|
||||
|
||||
# Match Android's sysroots
|
||||
set(ANDROID_SYSROOT_armeabi-v7a arm-linux-androideabi)
|
||||
set(ANDROID_SYSROOT_arm64-v8a aarch64-linux-android)
|
||||
set(ANDROID_SYSROOT_x86 i686-linux-android)
|
||||
set(ANDROID_SYSROOT_x86_64 x86_64-linux-android)
|
||||
|
||||
foreach(abi IN LISTS ANDROID_ABIS)
|
||||
set(abi_initial_value OFF)
|
||||
if (abi STREQUAL ${ANDROID_ABI})
|
||||
set(abi_initial_value ON)
|
||||
endif()
|
||||
find_library(Qt5Core_${abi}_Probe Qt5Core_${abi})
|
||||
if (Qt5Core_${abi}_Probe)
|
||||
option(ANDROID_BUILD_ABI_${abi} "Enable the build for Android ${abi}" ${abi_initial_value})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Make sure to delete the "android-build" directory, which contains all the
|
||||
# build artefacts, and also the androiddeployqt/gradle artefacts
|
||||
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
APPEND PROPERTY ADDITIONAL_CLEAN_FILES ${CMAKE_BINARY_DIR}/android-build)
|
||||
|
||||
if (CMAKE_VERSION VERSION_LESS 3.15)
|
||||
message(STATUS "-----------------------------------------------------------------------------------------------------------")
|
||||
message(STATUS "CMake version 3.15 is required to clean the <build_dir>/android-build when issuing the \"clean\" target.\n\n"
|
||||
"For this CMake version please use the \"clean-android-build\" support target additionally to the \"clean\" target.")
|
||||
message(STATUS "-----------------------------------------------------------------------------------------------------------")
|
||||
|
||||
add_custom_target(clean-android-build
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/android-build
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
# Write the android_<project_name>_deployment_settings.json file
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/android_deployment_settings.json.in
|
||||
[=[{
|
||||
"_description": "This file is created by CMake to be read by androiddeployqt and should not be modified by hand.",
|
||||
"application-binary": "@QT_ANDROID_APPLICATION_BINARY@",
|
||||
"architectures": {
|
||||
@QT_ANDROID_ARCHITECTURES@
|
||||
},
|
||||
@QT_ANDROID_DEPLOYMENT_DEPENDENCIES@
|
||||
@QT_ANDROID_EXTRA_PLUGINS@
|
||||
@QT_ANDROID_PACKAGE_SOURCE_DIR@
|
||||
@QT_ANDROID_VERSION_CODE@
|
||||
@QT_ANDROID_VERSION_NAME@
|
||||
@QT_ANDROID_EXTRA_LIBS@
|
||||
@QT_QML_IMPORT_PATH@
|
||||
"ndk": "@ANDROID_NDK@",
|
||||
"ndk-host": "@ANDROID_HOST_TAG@",
|
||||
"qml-root-path": "@CMAKE_CURRENT_SOURCE_DIR@",
|
||||
"qt": "@QT_DIR@",
|
||||
"sdk": "@ANDROID_SDK@",
|
||||
"stdcpp-path": "@ANDROID_TOOLCHAIN_ROOT@/sysroot/usr/lib/",
|
||||
"tool-prefix": "llvm",
|
||||
"toolchain-prefix": "llvm",
|
||||
"useLLVM": true
|
||||
}]=])
|
||||
|
||||
if (NOT QT_ANDROID_APPLICATION_BINARY)
|
||||
set(QT_ANDROID_APPLICATION_BINARY ${PROJECT_NAME})
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID_SDK)
|
||||
get_filename_component(ANDROID_SDK ${ANDROID_NDK}/../ ABSOLUTE)
|
||||
endif()
|
||||
|
||||
find_program(ANDROID_DEPLOY_QT androiddeployqt)
|
||||
get_filename_component(QT_DIR ${ANDROID_DEPLOY_QT}/../../ ABSOLUTE)
|
||||
|
||||
unset(QT_ANDROID_ARCHITECTURES)
|
||||
foreach(abi IN LISTS ANDROID_ABIS)
|
||||
if (ANDROID_BUILD_ABI_${abi})
|
||||
list(APPEND QT_ANDROID_ARCHITECTURES " \"${abi}\" : \"${ANDROID_SYSROOT_${abi}}\"")
|
||||
endif()
|
||||
endforeach()
|
||||
string(REPLACE ";" ",\n" QT_ANDROID_ARCHITECTURES "${QT_ANDROID_ARCHITECTURES}")
|
||||
|
||||
macro(generate_json_variable_list var_list json_key)
|
||||
if (${var_list})
|
||||
set(QT_${var_list} "\"${json_key}\": \"")
|
||||
string(REPLACE ";" "," joined_var_list "${${var_list}}")
|
||||
string(APPEND QT_${var_list} "${joined_var_list}\",")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(generate_json_variable var json_key)
|
||||
if (${var})
|
||||
set(QT_${var} "\"${json_key}\": \"${${var}}\",")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
generate_json_variable_list(ANDROID_DEPLOYMENT_DEPENDENCIES "deployment-dependencies")
|
||||
generate_json_variable_list(ANDROID_EXTRA_PLUGINS "android-extra-plugins")
|
||||
generate_json_variable(ANDROID_PACKAGE_SOURCE_DIR "android-package-source-directory")
|
||||
generate_json_variable(ANDROID_VERSION_CODE "android-version-code")
|
||||
generate_json_variable(ANDROID_VERSION_NAME "android-version-name")
|
||||
generate_json_variable_list(ANDROID_EXTRA_LIBS "android-extra-libs")
|
||||
generate_json_variable_list(QML_IMPORT_PATH "qml-import-paths")
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_BINARY_DIR}/android_deployment_settings.json.in"
|
||||
"${CMAKE_BINARY_DIR}/android_deployment_settings.json" @ONLY)
|
||||
|
||||
# Create "apk" and "aab" targets
|
||||
if (DEFINED ENV{JAVA_HOME})
|
||||
set(JAVA_HOME $ENV{JAVA_HOME} CACHE INTERNAL "Saved JAVA_HOME variable")
|
||||
endif()
|
||||
if (JAVA_HOME)
|
||||
set(android_deploy_qt_jdk "--jdk ${JAVA_HOME}")
|
||||
endif()
|
||||
|
||||
if (ANDROID_SDK_PLATFORM)
|
||||
set(android_deploy_qt_platform "--android-platform ${ANDROID_SDK_PLATFORM}")
|
||||
endif()
|
||||
|
||||
add_custom_target(apk
|
||||
COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=${JAVA_HOME} ${ANDROID_DEPLOY_QT}
|
||||
--input "${CMAKE_BINARY_DIR}/android_deployment_settings.json"
|
||||
--output "${CMAKE_BINARY_DIR}/android-build"
|
||||
--apk "${CMAKE_BINARY_DIR}/android-build/${PROJECT_NAME}.apk"
|
||||
${android_deploy_qt_platform}
|
||||
${android_deploy_qt_jdk}
|
||||
VERBATIM)
|
||||
|
||||
add_custom_target(aab
|
||||
COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=${JAVA_HOME} ${ANDROID_DEPLOY_QT}
|
||||
--input "${CMAKE_BINARY_DIR}/android_deployment_settings.json"
|
||||
--output "${CMAKE_BINARY_DIR}/android-build"
|
||||
--apk "${CMAKE_BINARY_DIR}/android-build/${PROJECT_NAME}.apk"
|
||||
--aab
|
||||
${android_deploy_qt_platform}
|
||||
${android_deploy_qt_jdk}
|
||||
VERBATIM)
|
||||
|
||||
include(ExternalProject)
|
||||
macro (setup_library library_name android_abi)
|
||||
# Use Qt Creator's 4.12 settings file if present
|
||||
unset(QTC_SETTINGS_PARAMETER)
|
||||
if (EXISTS ${CMAKE_BINARY_DIR}/qtcsettings.cmake)
|
||||
set(QTC_SETTINGS_PARAMETER -C ${CMAKE_BINARY_DIR}/qtcsettings.cmake)
|
||||
endif()
|
||||
|
||||
# Build all the given ABI as an external project
|
||||
ExternalProject_Add(${library_name}-builder
|
||||
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
PREFIX MultiAbi
|
||||
BUILD_ALWAYS YES
|
||||
DOWNLOAD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
UPDATE_COMMAND ""
|
||||
PATCH_COMMAND ""
|
||||
CMAKE_ARGS
|
||||
${QTC_SETTINGS_PARAMETER}
|
||||
-D ANDROID_ABI=${android_abi}
|
||||
-D CMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}
|
||||
-D CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
||||
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-D ANDROID_PLATFORM=${ANDROID_PLATFORM}
|
||||
-D ANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
|
||||
-D CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
-D CMAKE_FIND_ROOT_PATH_MODE_PROGRAM=${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}
|
||||
-D CMAKE_FIND_ROOT_PATH_MODE_LIBRARY=${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY}
|
||||
-D CMAKE_FIND_ROOT_PATH_MODE_INCLUDE=${CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}
|
||||
-D CMAKE_FIND_ROOT_PATH_MODE_PACKAGE=${CMAKE_FIND_ROOT_PATH_MODE_PACKAGE}
|
||||
-D CMAKE_SHARED_LIBRARY_SUFFIX_CXX=_${android_abi}.so
|
||||
-D CMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/android-build/libs/${android_abi}
|
||||
-D ${PROJECT_NAME}-MultiAbiBuild=ON
|
||||
)
|
||||
endmacro()
|
||||
|
||||
foreach(abi IN LISTS ANDROID_ABIS)
|
||||
if (NOT abi STREQUAL ${ANDROID_ABI})
|
||||
if (ANDROID_BUILD_ABI_${abi})
|
||||
setup_library(${PROJECT_NAME}-${abi} ${abi} ${CMAKE_PREFIX_PATH})
|
||||
endif()
|
||||
else()
|
||||
# For the default abi just use the regular cmake run, to have
|
||||
# nice IDE integration and so on
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX_CXX "_${ANDROID_ABI}.so")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/android-build/libs/${ANDROID_ABI})
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
# unset the variable, just not to issue an unused variable warning
|
||||
unset(${PROJECT_NAME}-MultiAbiBuild)
|
||||
endif()
|
||||
|
|
@ -172,4 +172,8 @@ get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
|||
|
||||
set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\")
|
||||
|
||||
if (ANDROID_PLATFORM)
|
||||
include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5AndroidSupport.cmake\")
|
||||
endif()
|
||||
|
||||
_qt5_Core_check_file_exists(${_Qt5CTestMacros})
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ get_filename_component(_qt5_root_dir \"${CMAKE_CURRENT_LIST_DIR}/../../../..\" A
|
|||
file(GLOB qtmodules ${_qt5_root_dir} "${_qt5_root_dir}/*")
|
||||
foreach(qtmodule ${qtmodules})
|
||||
if(IS_DIRECTORY ${qtmodule})
|
||||
list(APPEND _qt5_module_paths ${qtmodule})
|
||||
list(APPEND _qt5_module_paths "${qtmodule}" "${qtmodule}/lib/cmake")
|
||||
endif()
|
||||
endforeach()
|
||||
!!ELSE
|
||||
|
|
|
|||
|
|
@ -99,6 +99,12 @@ cmake_umbrella_config_module_location_for_install.output = $$DESTDIR/cmake/insta
|
|||
cmake_umbrella_config_version_file.input = $$PWD/../../mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in
|
||||
cmake_umbrella_config_version_file.output = $$DESTDIR/cmake/Qt5/Qt5ConfigVersion.cmake
|
||||
|
||||
android {
|
||||
cmake_android_support.input = $$PWD/Qt5AndroidSupport.cmake
|
||||
cmake_android_support.output = $$DESTDIR/cmake/Qt5Core/Qt5AndroidSupport.cmake
|
||||
cmake_android_support.CONFIG = verbatim
|
||||
}
|
||||
|
||||
load(cmake_functions)
|
||||
|
||||
defineTest(pathIsAbsolute) {
|
||||
|
|
@ -144,6 +150,11 @@ QMAKE_SUBSTITUTES += \
|
|||
cmake_extras_mkspec_dir \
|
||||
cmake_extras_mkspec_dir_for_install
|
||||
|
||||
android {
|
||||
QMAKE_SUBSTITUTES += cmake_android_support
|
||||
ctest_qt5_module_files.files += $$cmake_android_support.output
|
||||
}
|
||||
|
||||
ctest_qt5_module_files.files += $$ctest_macros_file.output $$cmake_extras_mkspec_dir_for_install.output
|
||||
|
||||
ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core
|
||||
|
|
|
|||
|
|
@ -312,3 +312,11 @@ int j = *i; // Undefined behavior!
|
|||
but with QVector this is likely to crash.
|
||||
*/
|
||||
//! [24]
|
||||
|
||||
//! [25]
|
||||
QVector<int> vector{1, 2, 3, 4, 4, 5};
|
||||
QSet<int> set(vector.begin(), vector.end());
|
||||
/*
|
||||
Will generate a QSet containing 1, 2, 4, 5.
|
||||
*/
|
||||
//! [25]
|
||||
|
|
|
|||
|
|
@ -66,6 +66,12 @@
|
|||
Qt also offers a \l{foreach} keyword that make it very
|
||||
easy to iterate over all the items stored in a container.
|
||||
|
||||
\note Since Qt 5.14, range constructors are available for most of the
|
||||
container classes. QMultiMap is a notable exception. Their use is
|
||||
encouraged in place of the various from/to methods. For example:
|
||||
|
||||
\snippet code/doc_src_containers.cpp 25
|
||||
|
||||
\section1 The Container Classes
|
||||
|
||||
Qt provides the following sequential containers: QList,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
\note Since Qt 5.14, range constructors are available for Qt's generic
|
||||
\l{container classes} and should be used in place of this method.
|
||||
|
|
@ -1123,67 +1123,62 @@ static bool isDirPath(const QString &dirPath, bool *existed)
|
|||
return fileAttrib & FILE_ATTRIBUTE_DIRECTORY;
|
||||
}
|
||||
|
||||
// NOTE: if \a shouldMkdirFirst is false, we assume the caller did try to mkdir
|
||||
// before calling this function.
|
||||
static bool createDirectoryWithParents(const QString &nativeName, bool shouldMkdirFirst = true)
|
||||
{
|
||||
const auto isUNCRoot = [](const QString &nativeName) {
|
||||
return nativeName.startsWith(QLatin1String("\\\\")) && nativeName.count(QDir::separator()) <= 3;
|
||||
};
|
||||
const auto isDriveName = [](const QString &nativeName) {
|
||||
return nativeName.size() == 2 && nativeName.at(1) == QLatin1Char(':');
|
||||
};
|
||||
const auto isDir = [](const QString &nativeName) {
|
||||
bool exists = false;
|
||||
return isDirPath(nativeName, &exists) && exists;
|
||||
};
|
||||
// Do not try to mkdir a UNC root path or a drive letter.
|
||||
if (isUNCRoot(nativeName) || isDriveName(nativeName))
|
||||
return false;
|
||||
|
||||
if (shouldMkdirFirst) {
|
||||
if (mkDir(nativeName))
|
||||
return true;
|
||||
}
|
||||
|
||||
const int backSlash = nativeName.lastIndexOf(QDir::separator());
|
||||
if (backSlash < 1)
|
||||
return false;
|
||||
|
||||
const QString parentNativeName = nativeName.left(backSlash);
|
||||
if (!createDirectoryWithParents(parentNativeName))
|
||||
return false;
|
||||
|
||||
// try again
|
||||
if (mkDir(nativeName))
|
||||
return true;
|
||||
return isDir(nativeName);
|
||||
}
|
||||
|
||||
//static
|
||||
bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents)
|
||||
{
|
||||
QString dirName = entry.filePath();
|
||||
Q_CHECK_FILE_NAME(dirName, false);
|
||||
|
||||
if (createParents) {
|
||||
dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName));
|
||||
// We spefically search for / so \ would break it..
|
||||
int oldslash = -1;
|
||||
if (dirName.startsWith(QLatin1String("\\\\"))) {
|
||||
// Don't try to create the root path of a UNC path;
|
||||
// CreateDirectory() will just return ERROR_INVALID_NAME.
|
||||
for (int i = 0; i < dirName.size(); ++i) {
|
||||
if (dirName.at(i) != QDir::separator()) {
|
||||
oldslash = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (oldslash != -1)
|
||||
oldslash = dirName.indexOf(QDir::separator(), oldslash);
|
||||
} else if (dirName.size() > 2
|
||||
&& dirName.at(1) == QLatin1Char(':')) {
|
||||
// Don't try to call mkdir with just a drive letter
|
||||
oldslash = 2;
|
||||
}
|
||||
for (int slash=0; slash != -1; oldslash = slash) {
|
||||
slash = dirName.indexOf(QDir::separator(), oldslash+1);
|
||||
if (slash == -1) {
|
||||
if (oldslash == dirName.length())
|
||||
break;
|
||||
slash = dirName.length();
|
||||
}
|
||||
if (slash) {
|
||||
DWORD lastError;
|
||||
QString chunk = dirName.left(slash);
|
||||
if (!mkDir(chunk, &lastError)) {
|
||||
if (lastError == ERROR_ALREADY_EXISTS || lastError == ERROR_ACCESS_DENIED) {
|
||||
bool existed = false;
|
||||
if (isDirPath(chunk, &existed) && existed)
|
||||
continue;
|
||||
#ifdef Q_OS_WINRT
|
||||
static QThreadStorage<QString> dataLocation;
|
||||
if (!dataLocation.hasLocalData())
|
||||
dataLocation.setLocalData(QDir::toNativeSeparators(QStandardPaths::writableLocation(QStandardPaths::DataLocation)));
|
||||
static QThreadStorage<QString> tempLocation;
|
||||
if (!tempLocation.hasLocalData())
|
||||
tempLocation.setLocalData(QDir::toNativeSeparators(QStandardPaths::writableLocation(QStandardPaths::TempLocation)));
|
||||
// We try to create something outside the sandbox, which is forbidden
|
||||
// However we could still try to pass into the sandbox
|
||||
if (dataLocation.localData().startsWith(chunk) || tempLocation.localData().startsWith(chunk))
|
||||
continue;
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName));
|
||||
|
||||
// try to mkdir this directory
|
||||
DWORD lastError;
|
||||
if (mkDir(dirName, &lastError))
|
||||
return true;
|
||||
}
|
||||
return mkDir(entry.filePath());
|
||||
// mkpath should return true, if the directory already exists, mkdir false.
|
||||
if (!createParents)
|
||||
return false;
|
||||
if (lastError == ERROR_ALREADY_EXISTS)
|
||||
return isDirPath(dirName, nullptr);
|
||||
|
||||
return createDirectoryWithParents(dirName, false);
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ supported by Qt (by the QNetworkCookieJar class).",
|
|||
|
||||
"Homepage": "Consult https://github.com/publicsuffix/list for the sha1 but download from ...",
|
||||
"Homepage": "http://publicsuffix.org/",
|
||||
"Version": "d6331e2b65fffbe9fe299dae1689db8de8fd6190, fetched on 2019-02-20",
|
||||
"Version": "3bd641472776a5df4a8c6407da4a4846282cba94, fetched on 2019-10-23",
|
||||
"License": "Mozilla Public License 2.0",
|
||||
"LicenseFile": "PSL-LICENSE.txt",
|
||||
"LicenseId": "MPL-2.0",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -279,9 +279,12 @@ namespace Qt {
|
|||
using namespace QTextStreamFunctions;
|
||||
}
|
||||
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_CLANG("-Wheader-hygiene")
|
||||
// We use 'using namespace' as that doesn't cause
|
||||
// conflicting definitions compiler errors.
|
||||
using namespace QTextStreamFunctions;
|
||||
QT_WARNING_POP
|
||||
#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) && !defined(Q_QDOC)
|
||||
|
||||
inline QTextStreamManipulator qSetFieldWidth(int width)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
|
|
@ -443,6 +443,9 @@ public:
|
|||
WesternBalochi = 364,
|
||||
Cebuano = 365,
|
||||
Erzya = 366,
|
||||
Chickasaw = 367,
|
||||
Muscogee = 368,
|
||||
Silesian = 369,
|
||||
|
||||
Afan = Oromo,
|
||||
Bhutani = Dzongkha,
|
||||
|
|
@ -459,7 +462,7 @@ public:
|
|||
Twi = Akan,
|
||||
Uigur = Uighur,
|
||||
|
||||
LastLanguage = Erzya
|
||||
LastLanguage = Silesian
|
||||
};
|
||||
|
||||
enum Script {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
\note For the current keyboard input locale take a look at
|
||||
QInputMethod::locale().
|
||||
|
||||
QLocale's data is based on Common Locale Data Repository v35.1.
|
||||
QLocale's data is based on Common Locale Data Repository v36.
|
||||
|
||||
\sa QString::arg(), QString::toInt(), QString::toDouble(),
|
||||
QInputMethod::locale()
|
||||
|
|
@ -172,6 +172,7 @@
|
|||
\value Chechen
|
||||
\value Cherokee
|
||||
\value Chewa Obsolete, please use Nyanja
|
||||
\value Chickasaw Since Qt 5.14
|
||||
\value Chiga
|
||||
\value Chinese
|
||||
\value Church
|
||||
|
|
@ -333,6 +334,7 @@
|
|||
\value Morisyen
|
||||
\value Mru Since Qt 5.7
|
||||
\value Mundang
|
||||
\value Muscogee Since Qt 5.14
|
||||
\value Nama
|
||||
\value NauruLanguage
|
||||
\value Navaho
|
||||
|
|
@ -406,6 +408,7 @@
|
|||
\value SichuanYi
|
||||
\value Sicilian Since Qt 5.12
|
||||
\value Sidamo
|
||||
\value Silesian Since Qt 5.14
|
||||
\value Sindhi
|
||||
\value Sinhala
|
||||
\value SkoltSami Since Qt 5.5
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -29,11 +29,11 @@
|
|||
world's languages, with the largest and most extensive standard repository of locale data
|
||||
available.",
|
||||
"Homepage": "http://cldr.unicode.org/",
|
||||
"Version": "v35.1",
|
||||
"Version": "v36",
|
||||
"License": "// as specified in https://spdx.org/licenses/Unicode-DFS-2016.html",
|
||||
"License": "Unicode License Agreement - Data Files and Software (2016)",
|
||||
"LicenseId": "Unicode-DFS-2016",
|
||||
"LicenseFile": "UNICODE_LICENSE.txt",
|
||||
"Copyright": "Copyright (C) 1991-2018 Unicode, Inc."
|
||||
"Copyright": "Copyright (C) 1991-2019 Unicode, Inc."
|
||||
}
|
||||
]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -59,8 +59,8 @@ QT_BEGIN_NAMESPACE
|
|||
// GENERATED PART STARTS HERE
|
||||
|
||||
/*
|
||||
This part of the file was generated on 2019-05-27 from the
|
||||
Common Locale Data Repository v35.1
|
||||
This part of the file was generated on 2019-10-24 from the
|
||||
Common Locale Data Repository v36
|
||||
|
||||
http://www.unicode.org/cldr/
|
||||
|
||||
|
|
@ -334,6 +334,7 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 55, 44, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Inuktitut/Canadian Aboriginal/Canada
|
||||
{ 55, 7, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Inuktitut/Latin/Canada
|
||||
{ 57, 7, 104,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Irish/Latin/Ireland
|
||||
{ 57, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Irish/Latin/United Kingdom
|
||||
{ 58, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/Italy
|
||||
{ 58, 7, 184,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/San Marino
|
||||
{ 58, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/Switzerland
|
||||
|
|
@ -374,11 +375,11 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 85, 7, 203,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands
|
||||
{ 86, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Occitan/Latin/France
|
||||
{ 87, 26, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Oriya/Oriya/India
|
||||
{ 88, 1, 1,{ 2684,63 },{ 2684,63 },{ 185,27 },{ 2684,63 },{ 2684,63 },{ 185,27 }}, // Pashto/Arabic/Afghanistan
|
||||
{ 88, 1, 163,{ 2684,63 },{ 2684,63 },{ 185,27 },{ 2684,63 },{ 2684,63 },{ 185,27 }}, // Pashto/Arabic/Pakistan
|
||||
{ 89, 1, 102,{ 2747,67 },{ 2747,67 },{ 2814,24 },{ 2747,67 },{ 2747,67 },{ 2814,24 }}, // Persian/Arabic/Iran
|
||||
{ 89, 1, 1,{ 2747,67 },{ 2747,67 },{ 2838,24 },{ 2747,67 },{ 2862,57 },{ 2814,24 }}, // Persian/Arabic/Afghanistan
|
||||
{ 90, 7, 172,{ 2919,84 },{ 2919,84 },{ 185,27 },{ 2919,84 },{ 2919,84 },{ 185,27 }}, // Polish/Latin/Poland
|
||||
{ 88, 1, 1,{ 2684,63 },{ 2684,63 },{ 2747,27 },{ 2684,63 },{ 2684,63 },{ 2747,27 }}, // Pashto/Arabic/Afghanistan
|
||||
{ 88, 1, 163,{ 2684,63 },{ 2684,63 },{ 2747,27 },{ 2684,63 },{ 2684,63 },{ 2747,27 }}, // Pashto/Arabic/Pakistan
|
||||
{ 89, 1, 102,{ 2774,67 },{ 2774,67 },{ 2841,24 },{ 2774,67 },{ 2774,67 },{ 2841,24 }}, // Persian/Arabic/Iran
|
||||
{ 89, 1, 1,{ 2774,67 },{ 2774,67 },{ 2865,24 },{ 2774,67 },{ 2889,57 },{ 2841,24 }}, // Persian/Arabic/Afghanistan
|
||||
{ 90, 7, 172,{ 2946,84 },{ 2946,84 },{ 185,27 },{ 2946,84 },{ 2946,84 },{ 185,27 }}, // Polish/Latin/Poland
|
||||
{ 91, 7, 30,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Brazil
|
||||
{ 91, 7, 6,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Angola
|
||||
{ 91, 7, 39,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Cape Verde
|
||||
|
|
@ -391,30 +392,30 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 91, 7, 173,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Portugal
|
||||
{ 91, 7, 185,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Sao Tome And Principe
|
||||
{ 91, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Switzerland
|
||||
{ 92, 4, 100,{ 3003,78 },{ 3003,78 },{ 185,27 },{ 3003,78 },{ 3003,78 },{ 185,27 }}, // Punjabi/Gurmukhi/India
|
||||
{ 92, 4, 100,{ 3030,78 },{ 3030,78 },{ 185,27 },{ 3030,78 },{ 3030,78 },{ 185,27 }}, // Punjabi/Gurmukhi/India
|
||||
{ 92, 1, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Punjabi/Arabic/Pakistan
|
||||
{ 93, 7, 169,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Peru
|
||||
{ 93, 7, 26,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Bolivia
|
||||
{ 93, 7, 63,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Ecuador
|
||||
{ 94, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Romansh/Latin/Switzerland
|
||||
{ 95, 7, 177,{ 3081,86 },{ 3081,86 },{ 185,27 },{ 3081,86 },{ 3081,86 },{ 185,27 }}, // Romanian/Latin/Romania
|
||||
{ 95, 7, 141,{ 3081,86 },{ 3081,86 },{ 185,27 },{ 3081,86 },{ 3081,86 },{ 185,27 }}, // Romanian/Latin/Moldova
|
||||
{ 96, 2, 178,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Russia
|
||||
{ 96, 2, 20,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Belarus
|
||||
{ 96, 2, 110,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Kazakhstan
|
||||
{ 96, 2, 116,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Kyrgyzstan
|
||||
{ 96, 2, 141,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Moldova
|
||||
{ 96, 2, 222,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Ukraine
|
||||
{ 95, 7, 177,{ 3108,86 },{ 3108,86 },{ 185,27 },{ 3108,86 },{ 3108,86 },{ 185,27 }}, // Romanian/Latin/Romania
|
||||
{ 95, 7, 141,{ 3108,86 },{ 3108,86 },{ 185,27 },{ 3108,86 },{ 3108,86 },{ 185,27 }}, // Romanian/Latin/Moldova
|
||||
{ 96, 2, 178,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Russia
|
||||
{ 96, 2, 20,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Belarus
|
||||
{ 96, 2, 110,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Kazakhstan
|
||||
{ 96, 2, 116,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Kyrgyzstan
|
||||
{ 96, 2, 141,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Moldova
|
||||
{ 96, 2, 222,{ 3194,81 },{ 3194,81 },{ 185,27 },{ 3194,81 },{ 3194,81 },{ 185,27 }}, // Russian/Cyrillic/Ukraine
|
||||
{ 98, 7, 41,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sango/Latin/Central African Republic
|
||||
{ 99, 13, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sanskrit/Devanagari/India
|
||||
{ 100, 2, 243,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Serbia
|
||||
{ 100, 7, 27,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Bosnia And Herzegowina
|
||||
{ 100, 7, 242,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Montenegro
|
||||
{ 100, 7, 243,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Serbia
|
||||
{ 100, 2, 27,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Bosnia And Herzegowina
|
||||
{ 100, 2, 242,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Montenegro
|
||||
{ 100, 2, 257,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Kosovo
|
||||
{ 100, 7, 257,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Kosovo
|
||||
{ 100, 2, 243,{ 3275,81 },{ 3275,81 },{ 185,27 },{ 3275,81 },{ 3275,81 },{ 185,27 }}, // Serbian/Cyrillic/Serbia
|
||||
{ 100, 2, 27,{ 3275,81 },{ 3275,81 },{ 185,27 },{ 3275,81 },{ 3275,81 },{ 185,27 }}, // Serbian/Cyrillic/Bosnia And Herzegowina
|
||||
{ 100, 2, 242,{ 3275,81 },{ 3275,81 },{ 185,27 },{ 3275,81 },{ 3275,81 },{ 185,27 }}, // Serbian/Cyrillic/Montenegro
|
||||
{ 100, 2, 257,{ 3275,81 },{ 3275,81 },{ 185,27 },{ 3275,81 },{ 3275,81 },{ 185,27 }}, // Serbian/Cyrillic/Kosovo
|
||||
{ 100, 7, 27,{ 3356,81 },{ 3356,81 },{ 185,27 },{ 3356,81 },{ 3356,81 },{ 185,27 }}, // Serbian/Latin/Bosnia And Herzegowina
|
||||
{ 100, 7, 242,{ 3356,81 },{ 3356,81 },{ 185,27 },{ 3356,81 },{ 3356,81 },{ 185,27 }}, // Serbian/Latin/Montenegro
|
||||
{ 100, 7, 243,{ 3356,81 },{ 3356,81 },{ 185,27 },{ 3356,81 },{ 3356,81 },{ 185,27 }}, // Serbian/Latin/Serbia
|
||||
{ 100, 7, 257,{ 3356,81 },{ 3356,81 },{ 185,27 },{ 3356,81 },{ 3356,81 },{ 185,27 }}, // Serbian/Latin/Kosovo
|
||||
{ 101, 2, 81,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ossetic/Cyrillic/Georgia
|
||||
{ 101, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ossetic/Cyrillic/Russia
|
||||
{ 102, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Southern Sotho/Latin/South Africa
|
||||
|
|
@ -457,35 +458,36 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 111, 7, 238,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Canary Islands
|
||||
{ 111, 7, 246,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Latin America
|
||||
{ 111, 7, 250,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Ceuta And Melilla
|
||||
{ 112, 7, 101,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sundanese/Latin/Indonesia
|
||||
{ 113, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Tanzania
|
||||
{ 113, 7, 49,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Congo Kinshasa
|
||||
{ 113, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Kenya
|
||||
{ 113, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Uganda
|
||||
{ 114, 7, 205,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Sweden
|
||||
{ 114, 7, 73,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Finland
|
||||
{ 114, 7, 248,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Aland Islands
|
||||
{ 114, 7, 205,{ 3437,84 },{ 3437,84 },{ 185,27 },{ 3521,84 },{ 3521,84 },{ 185,27 }}, // Swedish/Latin/Sweden
|
||||
{ 114, 7, 73,{ 3437,84 },{ 3437,84 },{ 185,27 },{ 3521,84 },{ 3521,84 },{ 185,27 }}, // Swedish/Latin/Finland
|
||||
{ 114, 7, 248,{ 3437,84 },{ 3437,84 },{ 185,27 },{ 3521,84 },{ 3521,84 },{ 185,27 }}, // Swedish/Latin/Aland Islands
|
||||
{ 115, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sardinian/Latin/Italy
|
||||
{ 116, 2, 209,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tajik/Cyrillic/Tajikistan
|
||||
{ 117, 27, 100,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/India
|
||||
{ 117, 27, 130,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Malaysia
|
||||
{ 117, 27, 190,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Singapore
|
||||
{ 117, 27, 198,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Sri Lanka
|
||||
{ 116, 2, 209,{ 3605,81 },{ 3605,81 },{ 185,27 },{ 3605,81 },{ 3605,81 },{ 185,27 }}, // Tajik/Cyrillic/Tajikistan
|
||||
{ 117, 27, 100,{ 3686,64 },{ 3750,94 },{ 185,27 },{ 3686,64 },{ 3750,94 },{ 185,27 }}, // Tamil/Tamil/India
|
||||
{ 117, 27, 130,{ 3686,64 },{ 3750,94 },{ 185,27 },{ 3686,64 },{ 3750,94 },{ 185,27 }}, // Tamil/Tamil/Malaysia
|
||||
{ 117, 27, 190,{ 3686,64 },{ 3750,94 },{ 185,27 },{ 3686,64 },{ 3750,94 },{ 185,27 }}, // Tamil/Tamil/Singapore
|
||||
{ 117, 27, 198,{ 3686,64 },{ 3750,94 },{ 185,27 },{ 3686,64 },{ 3750,94 },{ 185,27 }}, // Tamil/Tamil/Sri Lanka
|
||||
{ 118, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tatar/Cyrillic/Russia
|
||||
{ 119, 28, 100,{ 3736,89 },{ 3736,89 },{ 185,27 },{ 3736,89 },{ 3736,89 },{ 185,27 }}, // Telugu/Telugu/India
|
||||
{ 120, 30, 211,{ 3825,99 },{ 3825,99 },{ 185,27 },{ 3825,99 },{ 3825,99 },{ 185,27 }}, // Thai/Thai/Thailand
|
||||
{ 119, 28, 100,{ 3844,89 },{ 3844,89 },{ 185,27 },{ 3844,89 },{ 3844,89 },{ 185,27 }}, // Telugu/Telugu/India
|
||||
{ 120, 30, 211,{ 3933,99 },{ 3933,99 },{ 185,27 },{ 3933,99 },{ 3933,99 },{ 185,27 }}, // Thai/Thai/Thailand
|
||||
{ 121, 31, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tibetan/Tibetan/China
|
||||
{ 121, 31, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tibetan/Tibetan/India
|
||||
{ 122, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tigrinya/Ethiopic/Ethiopia
|
||||
{ 122, 14, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tigrinya/Ethiopic/Eritrea
|
||||
{ 123, 7, 214,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tongan/Latin/Tonga
|
||||
{ 124, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tsonga/Latin/South Africa
|
||||
{ 125, 7, 217,{ 3924,81 },{ 3924,81 },{ 185,27 },{ 3924,81 },{ 3924,81 },{ 185,27 }}, // Turkish/Latin/Turkey
|
||||
{ 125, 7, 56,{ 3924,81 },{ 3924,81 },{ 185,27 },{ 3924,81 },{ 3924,81 },{ 185,27 }}, // Turkish/Latin/Cyprus
|
||||
{ 125, 7, 217,{ 4032,81 },{ 4032,81 },{ 185,27 },{ 4032,81 },{ 4032,81 },{ 185,27 }}, // Turkish/Latin/Turkey
|
||||
{ 125, 7, 56,{ 4032,81 },{ 4032,81 },{ 185,27 },{ 4032,81 },{ 4032,81 },{ 185,27 }}, // Turkish/Latin/Cyprus
|
||||
{ 126, 7, 218,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Turkmen/Latin/Turkmenistan
|
||||
{ 128, 1, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uighur/Arabic/China
|
||||
{ 129, 2, 222,{ 4005,50 },{ 4055,81 },{ 185,27 },{ 4136,58 },{ 4055,81 },{ 185,27 }}, // Ukrainian/Cyrillic/Ukraine
|
||||
{ 130, 1, 163,{ 4194,67 },{ 4194,67 },{ 185,27 },{ 4194,67 },{ 4194,67 },{ 185,27 }}, // Urdu/Arabic/Pakistan
|
||||
{ 130, 1, 100,{ 4194,67 },{ 4194,67 },{ 185,27 },{ 4194,67 },{ 4194,67 },{ 185,27 }}, // Urdu/Arabic/India
|
||||
{ 129, 2, 222,{ 4113,50 },{ 4163,81 },{ 185,27 },{ 4244,58 },{ 4163,81 },{ 185,27 }}, // Ukrainian/Cyrillic/Ukraine
|
||||
{ 130, 1, 163,{ 4302,67 },{ 4302,67 },{ 185,27 },{ 4302,67 },{ 4302,67 },{ 185,27 }}, // Urdu/Arabic/Pakistan
|
||||
{ 130, 1, 100,{ 4302,67 },{ 4302,67 },{ 185,27 },{ 4302,67 },{ 4302,67 },{ 185,27 }}, // Urdu/Arabic/India
|
||||
{ 131, 7, 228,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Latin/Uzbekistan
|
||||
{ 131, 1, 1,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Arabic/Afghanistan
|
||||
{ 131, 2, 228,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Cyrillic/Uzbekistan
|
||||
|
|
@ -500,7 +502,7 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 140, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Zulu/Latin/South Africa
|
||||
{ 141, 7, 161,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Norwegian Nynorsk/Latin/Norway
|
||||
{ 142, 7, 27,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bosnian/Latin/Bosnia And Herzegowina
|
||||
{ 142, 2, 27,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Bosnian/Cyrillic/Bosnia And Herzegowina
|
||||
{ 142, 2, 27,{ 3275,81 },{ 3275,81 },{ 185,27 },{ 3275,81 },{ 3275,81 },{ 185,27 }}, // Bosnian/Cyrillic/Bosnia And Herzegowina
|
||||
{ 143, 29, 131,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Divehi/Thaana/Maldives
|
||||
{ 144, 7, 251,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Manx/Latin/Isle Of Man
|
||||
{ 145, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Cornish/Latin/United Kingdom
|
||||
|
|
@ -518,8 +520,8 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 158, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Jju/Latin/Nigeria
|
||||
{ 159, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Friulian/Latin/Italy
|
||||
{ 160, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Venda/Latin/South Africa
|
||||
{ 161, 7, 83,{ 4261,48 },{ 4309,87 },{ 185,27 },{ 4261,48 },{ 4309,87 },{ 185,27 }}, // Ewe/Latin/Ghana
|
||||
{ 161, 7, 212,{ 4261,48 },{ 4309,87 },{ 185,27 },{ 4261,48 },{ 4309,87 },{ 185,27 }}, // Ewe/Latin/Togo
|
||||
{ 161, 7, 83,{ 4369,48 },{ 4417,87 },{ 185,27 },{ 4369,48 },{ 4417,87 },{ 185,27 }}, // Ewe/Latin/Ghana
|
||||
{ 161, 7, 212,{ 4369,48 },{ 4417,87 },{ 185,27 },{ 4369,48 },{ 4417,87 },{ 185,27 }}, // Ewe/Latin/Togo
|
||||
{ 162, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Walamo/Ethiopic/Ethiopia
|
||||
{ 163, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hawaiian/Latin/United States
|
||||
{ 164, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tyap/Latin/Nigeria
|
||||
|
|
@ -624,14 +626,15 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 258, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kako/Latin/Cameroon
|
||||
{ 259, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Meta/Latin/Cameroon
|
||||
{ 260, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ngiemboon/Latin/Cameroon
|
||||
{ 261, 7, 197,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Aragonese/Latin/Spain
|
||||
{ 290, 11, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Manipuri/Bengali/India
|
||||
{ 309, 100, 232,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tai Dam/Tai Viet/Vietnam
|
||||
{ 312, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Akoose/Latin/Cameroon
|
||||
{ 313, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lakota/Latin/United States
|
||||
{ 314, 9, 145,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Standard Moroccan Tamazight/Tifinagh/Morocco
|
||||
{ 315, 7, 43,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mapuche/Latin/Chile
|
||||
{ 316, 1, 103,{ 4396,102 },{ 4396,102 },{ 185,27 },{ 4396,102 },{ 4396,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iraq
|
||||
{ 316, 1, 102,{ 4396,102 },{ 4396,102 },{ 185,27 },{ 4396,102 },{ 4396,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iran
|
||||
{ 316, 1, 103,{ 4504,102 },{ 4504,102 },{ 185,27 },{ 4504,102 },{ 4504,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iraq
|
||||
{ 316, 1, 102,{ 4504,102 },{ 4504,102 },{ 185,27 },{ 4504,102 },{ 4504,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iran
|
||||
{ 317, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lower Sorbian/Latin/Germany
|
||||
{ 318, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Upper Sorbian/Latin/Germany
|
||||
{ 319, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kenyang/Latin/Cameroon
|
||||
|
|
@ -649,6 +652,7 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 349, 1, 103,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Luri/Arabic/Iraq
|
||||
{ 357, 6, 97,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Cantonese/Traditional Han/Hong Kong
|
||||
{ 357, 5, 44,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Cantonese/Simplified Han/China
|
||||
{ 358, 138, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Osage/Osage/United States
|
||||
{ 360, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ido/Latin/World
|
||||
{ 361, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lojban/Latin/World
|
||||
{ 362, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sicilian/Latin/Italy
|
||||
|
|
@ -656,6 +660,9 @@ static const QCalendarLocale locale_data[] = {
|
|||
{ 364, 1, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Western Balochi/Arabic/Pakistan
|
||||
{ 365, 7, 170,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Cebuano/Latin/Philippines
|
||||
{ 366, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Erzya/Cyrillic/Russia
|
||||
{ 367, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Chickasaw/Latin/United States
|
||||
{ 368, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Muscogee/Latin/United States
|
||||
{ 369, 7, 172,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Silesian/Latin/Poland
|
||||
{ 0, 0, 0,{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0}}, // trailing zeros
|
||||
};
|
||||
|
||||
|
|
@ -797,94 +804,100 @@ static const ushort months_data[] = {
|
|||
0x3b, 0x967, 0x968, 0x3b, 0x648, 0x631, 0x6cc, 0x3b, 0x63a, 0x648, 0x6cc, 0x6cc, 0x3b, 0x63a, 0x628, 0x631, 0x6af, 0x648, 0x644, 0x6cc,
|
||||
0x3b, 0x686, 0x646, 0x6af, 0x627, 0x69a, 0x3b, 0x632, 0x645, 0x631, 0x6cc, 0x3b, 0x648, 0x696, 0x6cc, 0x3b, 0x62a, 0x644, 0x647, 0x3b,
|
||||
0x644, 0x693, 0x645, 0x3b, 0x644, 0x6cc, 0x646, 0x62f, 0x6cd, 0x3b, 0x645, 0x631, 0x63a, 0x648, 0x645, 0x6cc, 0x3b, 0x633, 0x644, 0x648,
|
||||
0x627, 0x63a, 0x647, 0x3b, 0x6a9, 0x628, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x6cc, 0x646, 0x3b, 0x627, 0x631, 0x62f, 0x6cc, 0x628,
|
||||
0x647, 0x634, 0x62a, 0x3b, 0x62e, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631, 0x3b, 0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b,
|
||||
0x634, 0x647, 0x631, 0x6cc, 0x648, 0x631, 0x3b, 0x645, 0x647, 0x631, 0x3b, 0x622, 0x628, 0x627, 0x646, 0x3b, 0x622, 0x630, 0x631, 0x3b,
|
||||
0x62f, 0x6cc, 0x3b, 0x628, 0x647, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f, 0x3b, 0x641, 0x3b, 0x627, 0x3b, 0x62e, 0x3b,
|
||||
0x62a, 0x3b, 0x645, 0x3b, 0x634, 0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x622, 0x3b, 0x62f, 0x3b, 0x628, 0x3b, 0x627, 0x3b, 0x62d, 0x3b,
|
||||
0x62b, 0x3b, 0x62c, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x645, 0x3b, 0x639, 0x3b, 0x642, 0x3b, 0x62c, 0x3b, 0x62f, 0x3b,
|
||||
0x62d, 0x3b, 0x62d, 0x645, 0x644, 0x3b, 0x62b, 0x648, 0x631, 0x3b, 0x62c, 0x648, 0x632, 0x627, 0x3b, 0x633, 0x631, 0x637, 0x627, 0x646,
|
||||
0x3b, 0x627, 0x633, 0x62f, 0x3b, 0x633, 0x646, 0x628, 0x644, 0x647, 0x654, 0x3b, 0x645, 0x6cc, 0x632, 0x627, 0x646, 0x3b, 0x639, 0x642,
|
||||
0x631, 0x628, 0x3b, 0x642, 0x648, 0x633, 0x3b, 0x62c, 0x62f, 0x6cc, 0x3b, 0x62f, 0x644, 0x648, 0x3b, 0x62d, 0x648, 0x62a, 0x3b, 0x46,
|
||||
0x61, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x7a, 0x74,
|
||||
0x3b, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b,
|
||||
0x53, 0x7a, 0x61, 0x68, 0x72, 0x69, 0x77, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b,
|
||||
0x100, 0x73, 0x61, 0x72, 0x3b, 0x44, 0xe9, 0x69, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61,
|
||||
0x6e, 0x64, 0x3b, 0xa2b, 0xa3e, 0xa30, 0xa35, 0xa30, 0xa21, 0xa40, 0xa28, 0x3b, 0xa14, 0xa30, 0xa21, 0xa3e, 0xa08, 0xa2c, 0xa39, 0xa48,
|
||||
0xa38, 0xa3c, 0xa1f, 0x3b, 0xa16, 0xa4b, 0xa21, 0xa30, 0xa21, 0x3b, 0xa1f, 0xa3f, 0xa30, 0x3b, 0xa2e, 0xa4b, 0xa30, 0xa21, 0xa3e, 0xa26,
|
||||
0x3b, 0xa38, 0xa3c, 0xa30, 0xa3e, 0xa07, 0xa35, 0xa30, 0x3b, 0xa2e, 0xa47, 0xa39, 0xa30, 0x3b, 0xa05, 0xa2c, 0xa3e, 0xa28, 0x3b, 0xa05,
|
||||
0xa1c, 0xa3c, 0xa3e, 0xa30, 0x3b, 0xa21, 0xa47, 0xa05, 0x3b, 0xa2c, 0xa3e, 0xa39, 0xa2e, 0xa28, 0x3b, 0xa10, 0xa38, 0xa2b, 0xa70, 0xa21,
|
||||
0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73,
|
||||
0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x41, 0x2d, 0x4d, 0x6f, 0x72,
|
||||
0x64, 0x61, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41,
|
||||
0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b,
|
||||
0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440, 0x434, 0x438, 0x43d, 0x3b, 0x43e, 0x440, 0x434,
|
||||
0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x442, 0x438, 0x440, 0x3b, 0x43c,
|
||||
0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x438, 0x432, 0x435, 0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b,
|
||||
0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d,
|
||||
0x3b, 0x44d, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x424, 0x430, 0x440, 0x430, 0x432, 0x430, 0x434, 0x438, 0x43d, 0x3b, 0x41e, 0x440,
|
||||
0x434, 0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x41a, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x422, 0x438, 0x440, 0x3b,
|
||||
0x41c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x428, 0x430, 0x445, 0x440, 0x438, 0x432, 0x430, 0x440, 0x3b, 0x41c, 0x435, 0x445, 0x440,
|
||||
0x3b, 0x410, 0x431, 0x430, 0x43d, 0x3b, 0x410, 0x437, 0x430, 0x440, 0x3b, 0x414, 0x435, 0x458, 0x3b, 0x411, 0x430, 0x445, 0x43c, 0x430,
|
||||
0x43d, 0x3b, 0x415, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x46, 0x61, 0x72, 0x61, 0x76, 0x61, 0x64, 0x69, 0x6e, 0x3b, 0x4f,
|
||||
0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x4b, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72,
|
||||
0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x160, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68,
|
||||
0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x6a, 0x3b, 0x42, 0x61, 0x68, 0x6d,
|
||||
0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b,
|
||||
0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b,
|
||||
0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72,
|
||||
0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b, 0x100, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b,
|
||||
0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72,
|
||||
0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72,
|
||||
0x64, 0x101, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x73, 0x68, 0x61, 0x68, 0x72,
|
||||
0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, 0x101, 0x62, 0x101, 0x6e, 0x3b, 0x101, 0x7a, 0x61, 0x72, 0x3b,
|
||||
0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x65, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0xb83, 0xbaa,
|
||||
0xbb0, 0xbcd, 0x2e, 0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0x2e, 0x3b, 0xb95, 0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xba4, 0xbbf, 0xbb0,
|
||||
0xbcd, 0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xbb7, 0xbbe, 0xbb0, 0xbbf, 0x2e, 0x3b, 0xbae, 0xbc6, 0xbb9, 0xbcd, 0x2e, 0x3b,
|
||||
0xb85, 0xbaa, 0xbbe, 0x2e, 0x3b, 0xb85, 0xb9a, 0xbbe, 0x2e, 0x3b, 0xba4, 0xbc7, 0x3b, 0xbaa, 0xbb9, 0xbcd, 0x2e, 0x3b, 0xb8e, 0xb83,
|
||||
0x2e, 0x3b, 0xb83, 0xbaa, 0xbb0, 0xbcd, 0xbb5, 0xbbe, 0xba4, 0xbbf, 0xba9, 0xbcd, 0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0xbaa, 0xbc6,
|
||||
0xbb9, 0xbc6, 0xbb7, 0xbcd, 0xba4, 0xbcd, 0x3b, 0xb95, 0xbca, 0xbb0, 0xbcd, 0xba4, 0xbbe, 0xba4, 0xbcd, 0x3b, 0xba4, 0xbbf, 0xbb0, 0xbcd,
|
||||
0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0xba4, 0xbbe, 0xba4, 0xbcd, 0x3b, 0xbb7, 0xbbe, 0xbb0, 0xbbf, 0xbb5, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xbae,
|
||||
0xbc6, 0xbb9, 0xbcd, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xb85, 0xb9a, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xba4, 0xbc7,
|
||||
0x3b, 0xbaa, 0xbb9, 0xbcd, 0xbae, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xb8e, 0xb83, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xc2b, 0xc3e, 0xc35, 0xc30,
|
||||
0xc4d, 0xc21, 0xc3f, 0xc28, 0xc4d, 0x3b, 0xc0a, 0xc21, 0xc3e, 0xc2c, 0xc39, 0xc37, 0xc4d, 0xc1f, 0xc4d, 0x3b, 0xc16, 0xc4b, 0xc30, 0xc4d,
|
||||
0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc1f, 0xc3f, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46, 0xc30, 0xc4d, 0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc36,
|
||||
0xc36, 0xc3f, 0xc35, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46, 0xc39, 0xc30, 0xc4d, 0x3b, 0xc05, 0xc2c, 0xc28, 0xc4d, 0x3b, 0xc05, 0xc1c, 0xc30,
|
||||
0xc4d, 0x3b, 0xc21, 0xc47, 0x3b, 0xc2c, 0xc3e, 0xc39, 0xc4d, 0x200c, 0xc2e, 0xc3e, 0xc28, 0xc4d, 0x3b, 0xc0e, 0xc38, 0xc4d, 0x200c, 0xc2b,
|
||||
0xc3e, 0xc02, 0xc21, 0xc4d, 0x3b, 0xe1f, 0xe32, 0xe23, 0xe4c, 0xe27, 0xe32, 0xe23, 0xe4c, 0xe14, 0xe34, 0xe19, 0x3b, 0xe2d, 0xe2d, 0xe23,
|
||||
0xe4c, 0xe14, 0xe34, 0xe40, 0xe1a, 0xe40, 0xe2e, 0xe0a, 0xe15, 0xe4c, 0x3b, 0xe04, 0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14, 0x3b, 0xe40,
|
||||
0xe15, 0xe2d, 0xe23, 0xe4c, 0x3b, 0xe21, 0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14, 0x3b, 0xe0a, 0xe32, 0xe2b, 0xe23, 0xe34, 0xe27, 0xe32,
|
||||
0xe23, 0xe4c, 0x3b, 0xe40, 0xe21, 0xe2e, 0xe23, 0xe4c, 0x3b, 0xe2d, 0xe30, 0xe1a, 0xe32, 0xe19, 0x3b, 0xe2d, 0xe30, 0xe0b, 0xe32, 0xe23,
|
||||
0xe4c, 0x3b, 0xe40, 0xe14, 0xe22, 0xe4c, 0x3b, 0xe1a, 0xe32, 0xe2e, 0xe4c, 0xe21, 0xe32, 0xe19, 0x3b, 0xe40, 0xe2d, 0xe2a, 0xe1f, 0xe32,
|
||||
0xe19, 0xe14, 0xe4c, 0x3b, 0x46, 0x65, 0x72, 0x76, 0x65, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65,
|
||||
0x68, 0x65, 0x15f, 0x74, 0x3b, 0x48, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64,
|
||||
0x61, 0x64, 0x3b, 0x15e, 0x65, 0x68, 0x72, 0x69, 0x76, 0x65, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61,
|
||||
0x6e, 0x3b, 0x41, 0x7a, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x65, 0x68, 0x6d, 0x65, 0x6e, 0x3b, 0x45, 0x73,
|
||||
0x66, 0x65, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x3b, 0x43e, 0x440, 0x434, 0x3b, 0x445, 0x43e, 0x440, 0x3b, 0x442, 0x456, 0x440,
|
||||
0x3b, 0x43c, 0x43e, 0x440, 0x3b, 0x448, 0x430, 0x445, 0x3b, 0x43c, 0x435, 0x445, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437,
|
||||
0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x3b, 0x435, 0x441, 0x444, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430,
|
||||
0x440, 0x434, 0x456, 0x43d, 0x3b, 0x43e, 0x440, 0x434, 0x456, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434,
|
||||
0x430, 0x434, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x456, 0x432,
|
||||
0x435, 0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435,
|
||||
0x439, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x435, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x444, 0x430, 0x440, 0x2e,
|
||||
0x3b, 0x43e, 0x440, 0x434, 0x2e, 0x3b, 0x445, 0x43e, 0x440, 0x2e, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x2e, 0x3b,
|
||||
0x448, 0x430, 0x445, 0x2e, 0x3b, 0x43c, 0x435, 0x445, 0x2e, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b,
|
||||
0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x2e, 0x3b, 0x435, 0x441, 0x444, 0x2e, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x646,
|
||||
0x3b, 0x622, 0x631, 0x688, 0x628, 0x627, 0x626, 0x634, 0x3b, 0x62e, 0x62f, 0x627, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631, 0x3b,
|
||||
0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x634, 0x6c1, 0x631, 0x6cc, 0x648, 0x627, 0x631, 0x3b, 0x645, 0x6c1, 0x631, 0x3b, 0x627, 0x628,
|
||||
0x627, 0x646, 0x3b, 0x622, 0x632, 0x631, 0x3b, 0x688, 0x6d2, 0x3b, 0x628, 0x6c1, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f,
|
||||
0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d,
|
||||
0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c,
|
||||
0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a,
|
||||
0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61, 0x66, 0x254, 0x66, 0x69, 0x1ebd, 0x3b, 0x64, 0x61, 0x6d, 0x25b,
|
||||
0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61,
|
||||
0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64,
|
||||
0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x62e, 0x627, 0x6a9, 0x6d5,
|
||||
0x644, 0x6ce, 0x648, 0x6d5, 0x3b, 0x628, 0x627, 0x646, 0x6d5, 0x645, 0x6d5, 0x695, 0x3b, 0x62c, 0x6c6, 0x632, 0x6d5, 0x631, 0x62f, 0x627,
|
||||
0x646, 0x3b, 0x67e, 0x648, 0x648, 0x634, 0x67e, 0x6d5, 0x695, 0x3b, 0x6af, 0x6d5, 0x644, 0x627, 0x648, 0x6ce, 0x698, 0x3b, 0x62e, 0x6d5,
|
||||
0x631, 0x645, 0x627, 0x646, 0x627, 0x646, 0x3b, 0x695, 0x6d5, 0x632, 0x628, 0x6d5, 0x631, 0x3b, 0x62e, 0x6d5, 0x632, 0x6d5, 0x6b5, 0x648,
|
||||
0x6d5, 0x631, 0x3b, 0x633, 0x6d5, 0x631, 0x645, 0x627, 0x648, 0x6d5, 0x632, 0x3b, 0x628, 0x6d5, 0x641, 0x631, 0x627, 0x646, 0x628, 0x627,
|
||||
0x631, 0x3b, 0x695, 0x6ce, 0x628, 0x6d5, 0x646, 0x62f, 0x627, 0x646, 0x3b, 0x631, 0x6d5, 0x634, 0x6d5, 0x645, 0x6ce, 0x3b
|
||||
0x627, 0x63a, 0x647, 0x3b, 0x6a9, 0x628, 0x3b, 0x6f1, 0x3b, 0x6f2, 0x3b, 0x6f3, 0x3b, 0x6f4, 0x3b, 0x6f5, 0x3b, 0x6f6, 0x3b, 0x6f7,
|
||||
0x3b, 0x6f8, 0x3b, 0x6f9, 0x3b, 0x6f1, 0x6f0, 0x3b, 0x6f1, 0x6f1, 0x3b, 0x6f1, 0x6f2, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x6cc,
|
||||
0x646, 0x3b, 0x627, 0x631, 0x62f, 0x6cc, 0x628, 0x647, 0x634, 0x62a, 0x3b, 0x62e, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631,
|
||||
0x3b, 0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x634, 0x647, 0x631, 0x6cc, 0x648, 0x631, 0x3b, 0x645, 0x647, 0x631, 0x3b, 0x622, 0x628,
|
||||
0x627, 0x646, 0x3b, 0x622, 0x630, 0x631, 0x3b, 0x62f, 0x6cc, 0x3b, 0x628, 0x647, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f,
|
||||
0x3b, 0x641, 0x3b, 0x627, 0x3b, 0x62e, 0x3b, 0x62a, 0x3b, 0x645, 0x3b, 0x634, 0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x622, 0x3b, 0x62f,
|
||||
0x3b, 0x628, 0x3b, 0x627, 0x3b, 0x62d, 0x3b, 0x62b, 0x3b, 0x62c, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x645, 0x3b, 0x639,
|
||||
0x3b, 0x642, 0x3b, 0x62c, 0x3b, 0x62f, 0x3b, 0x62d, 0x3b, 0x62d, 0x645, 0x644, 0x3b, 0x62b, 0x648, 0x631, 0x3b, 0x62c, 0x648, 0x632,
|
||||
0x627, 0x3b, 0x633, 0x631, 0x637, 0x627, 0x646, 0x3b, 0x627, 0x633, 0x62f, 0x3b, 0x633, 0x646, 0x628, 0x644, 0x647, 0x654, 0x3b, 0x645,
|
||||
0x6cc, 0x632, 0x627, 0x646, 0x3b, 0x639, 0x642, 0x631, 0x628, 0x3b, 0x642, 0x648, 0x633, 0x3b, 0x62c, 0x62f, 0x6cc, 0x3b, 0x62f, 0x644,
|
||||
0x648, 0x3b, 0x62d, 0x648, 0x62a, 0x3b, 0x46, 0x61, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69,
|
||||
0x62, 0x65, 0x68, 0x65, 0x73, 0x7a, 0x74, 0x3b, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b,
|
||||
0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x53, 0x7a, 0x61, 0x68, 0x72, 0x69, 0x77, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68,
|
||||
0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b, 0x100, 0x73, 0x61, 0x72, 0x3b, 0x44, 0xe9, 0x69, 0x3b, 0x42, 0x61, 0x68, 0x6d,
|
||||
0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0xa2b, 0xa3e, 0xa30, 0xa35, 0xa30, 0xa21, 0xa40, 0xa28, 0x3b, 0xa14,
|
||||
0xa30, 0xa21, 0xa3e, 0xa08, 0xa2c, 0xa39, 0xa48, 0xa38, 0xa3c, 0xa1f, 0x3b, 0xa16, 0xa4b, 0xa21, 0xa30, 0xa21, 0x3b, 0xa1f, 0xa3f, 0xa30,
|
||||
0x3b, 0xa2e, 0xa4b, 0xa30, 0xa21, 0xa3e, 0xa26, 0x3b, 0xa38, 0xa3c, 0xa30, 0xa3e, 0xa07, 0xa35, 0xa30, 0x3b, 0xa2e, 0xa47, 0xa39, 0xa30,
|
||||
0x3b, 0xa05, 0xa2c, 0xa3e, 0xa28, 0x3b, 0xa05, 0xa1c, 0xa3c, 0xa3e, 0xa30, 0x3b, 0xa21, 0xa47, 0xa05, 0x3b, 0xa2c, 0xa3e, 0xa39, 0xa2e,
|
||||
0xa28, 0x3b, 0xa10, 0xa38, 0xa2b, 0xa70, 0xa21, 0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72,
|
||||
0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69,
|
||||
0x72, 0x3b, 0x41, 0x2d, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72,
|
||||
0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b,
|
||||
0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440,
|
||||
0x434, 0x438, 0x43d, 0x3b, 0x43e, 0x440, 0x434, 0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434, 0x430,
|
||||
0x434, 0x3b, 0x442, 0x438, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x438, 0x432, 0x435,
|
||||
0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439,
|
||||
0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x44d, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x424, 0x430, 0x440, 0x430, 0x432,
|
||||
0x430, 0x434, 0x438, 0x43d, 0x3b, 0x41e, 0x440, 0x434, 0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x41a, 0x43e, 0x440, 0x434,
|
||||
0x430, 0x434, 0x3b, 0x422, 0x438, 0x440, 0x3b, 0x41c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x428, 0x430, 0x445, 0x440, 0x438, 0x432,
|
||||
0x430, 0x440, 0x3b, 0x41c, 0x435, 0x445, 0x440, 0x3b, 0x410, 0x431, 0x430, 0x43d, 0x3b, 0x410, 0x437, 0x430, 0x440, 0x3b, 0x414, 0x435,
|
||||
0x458, 0x3b, 0x411, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x415, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x46, 0x61, 0x72, 0x61,
|
||||
0x76, 0x61, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x4b, 0x6f, 0x72,
|
||||
0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x160, 0x61, 0x68, 0x72, 0x69,
|
||||
0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44,
|
||||
0x65, 0x6a, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x46, 0x61, 0x72,
|
||||
0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x4b,
|
||||
0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x53, 0x68,
|
||||
0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b, 0x100, 0x7a,
|
||||
0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64,
|
||||
0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73,
|
||||
0x68, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0x101,
|
||||
0x64, 0x3b, 0x73, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, 0x101, 0x62, 0x101,
|
||||
0x6e, 0x3b, 0x101, 0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x65, 0x73,
|
||||
0x66, 0x61, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440, 0x434, 0x438, 0x43d, 0x3b, 0x443, 0x440, 0x434, 0x438, 0x431,
|
||||
0x438, 0x4b3, 0x438, 0x448, 0x442, 0x3b, 0x445, 0x443, 0x440, 0x434, 0x43e, 0x434, 0x3b, 0x442, 0x438, 0x440, 0x3b, 0x43c, 0x443, 0x440,
|
||||
0x434, 0x43e, 0x434, 0x3b, 0x448, 0x430, 0x4b3, 0x440, 0x438, 0x432, 0x430, 0x440, 0x3b, 0x43c, 0x435, 0x4b3, 0x440, 0x3b, 0x43e, 0x431,
|
||||
0x43e, 0x43d, 0x3b, 0x43e, 0x437, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x4b3, 0x43c, 0x430, 0x43d, 0x3b, 0x438,
|
||||
0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0xb83, 0xbaa, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0x2e, 0x3b, 0xb95,
|
||||
0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xba4, 0xbbf, 0xbb0, 0xbcd, 0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xbb7, 0xbbe, 0xbb0, 0xbbf,
|
||||
0x2e, 0x3b, 0xbae, 0xbc6, 0xbb9, 0xbcd, 0x2e, 0x3b, 0xb85, 0xbaa, 0xbbe, 0x2e, 0x3b, 0xb85, 0xb9a, 0xbbe, 0x2e, 0x3b, 0xba4, 0xbc7,
|
||||
0x3b, 0xbaa, 0xbb9, 0xbcd, 0x2e, 0x3b, 0xb8e, 0xb83, 0x2e, 0x3b, 0xb83, 0xbaa, 0xbb0, 0xbcd, 0xbb5, 0xbbe, 0xba4, 0xbbf, 0xba9, 0xbcd,
|
||||
0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0xbaa, 0xbc6, 0xbb9, 0xbc6, 0xbb7, 0xbcd, 0xba4, 0xbcd, 0x3b, 0xb95, 0xbca, 0xbb0, 0xbcd, 0xba4,
|
||||
0xbbe, 0xba4, 0xbcd, 0x3b, 0xba4, 0xbbf, 0xbb0, 0xbcd, 0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0xba4, 0xbbe, 0xba4, 0xbcd, 0x3b, 0xbb7, 0xbbe,
|
||||
0xbb0, 0xbbf, 0xbb5, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xbae, 0xbc6, 0xbb9, 0xbcd, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b,
|
||||
0xb85, 0xb9a, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xba4, 0xbc7, 0x3b, 0xbaa, 0xbb9, 0xbcd, 0xbae, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xb8e, 0xb83, 0xbaa,
|
||||
0xbbe, 0xba9, 0xbcd, 0x3b, 0xc2b, 0xc3e, 0xc35, 0xc30, 0xc4d, 0xc21, 0xc3f, 0xc28, 0xc4d, 0x3b, 0xc0a, 0xc21, 0xc3e, 0xc2c, 0xc39, 0xc37,
|
||||
0xc4d, 0xc1f, 0xc4d, 0x3b, 0xc16, 0xc4b, 0xc30, 0xc4d, 0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc1f, 0xc3f, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46,
|
||||
0xc30, 0xc4d, 0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc36, 0xc36, 0xc3f, 0xc35, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46, 0xc39, 0xc30, 0xc4d, 0x3b,
|
||||
0xc05, 0xc2c, 0xc28, 0xc4d, 0x3b, 0xc05, 0xc1c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc47, 0x3b, 0xc2c, 0xc3e, 0xc39, 0xc4d, 0x200c, 0xc2e, 0xc3e,
|
||||
0xc28, 0xc4d, 0x3b, 0xc0e, 0xc38, 0xc4d, 0x200c, 0xc2b, 0xc3e, 0xc02, 0xc21, 0xc4d, 0x3b, 0xe1f, 0xe32, 0xe23, 0xe4c, 0xe27, 0xe32, 0xe23,
|
||||
0xe4c, 0xe14, 0xe34, 0xe19, 0x3b, 0xe2d, 0xe2d, 0xe23, 0xe4c, 0xe14, 0xe34, 0xe40, 0xe1a, 0xe40, 0xe2e, 0xe0a, 0xe15, 0xe4c, 0x3b, 0xe04,
|
||||
0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14, 0x3b, 0xe40, 0xe15, 0xe2d, 0xe23, 0xe4c, 0x3b, 0xe21, 0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14,
|
||||
0x3b, 0xe0a, 0xe32, 0xe2b, 0xe23, 0xe34, 0xe27, 0xe32, 0xe23, 0xe4c, 0x3b, 0xe40, 0xe21, 0xe2e, 0xe23, 0xe4c, 0x3b, 0xe2d, 0xe30, 0xe1a,
|
||||
0xe32, 0xe19, 0x3b, 0xe2d, 0xe30, 0xe0b, 0xe32, 0xe23, 0xe4c, 0x3b, 0xe40, 0xe14, 0xe22, 0xe4c, 0x3b, 0xe1a, 0xe32, 0xe2e, 0xe4c, 0xe21,
|
||||
0xe32, 0xe19, 0x3b, 0xe40, 0xe2d, 0xe2a, 0xe1f, 0xe32, 0xe19, 0xe14, 0xe4c, 0x3b, 0x46, 0x65, 0x72, 0x76, 0x65, 0x72, 0x64, 0x69,
|
||||
0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x15f, 0x74, 0x3b, 0x48, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b,
|
||||
0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x15e, 0x65, 0x68, 0x72, 0x69, 0x76, 0x65, 0x72, 0x3b,
|
||||
0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42,
|
||||
0x65, 0x68, 0x6d, 0x65, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x65, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x3b, 0x43e, 0x440, 0x434,
|
||||
0x3b, 0x445, 0x43e, 0x440, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x3b, 0x448, 0x430, 0x445, 0x3b, 0x43c, 0x435, 0x445,
|
||||
0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x3b, 0x435,
|
||||
0x441, 0x444, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440, 0x434, 0x456, 0x43d, 0x3b, 0x43e, 0x440, 0x434, 0x456, 0x431, 0x435, 0x445,
|
||||
0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x434, 0x430,
|
||||
0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x456, 0x432, 0x435, 0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b, 0x430, 0x431, 0x430, 0x43d,
|
||||
0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x435, 0x441, 0x444,
|
||||
0x430, 0x43d, 0x434, 0x3b, 0x444, 0x430, 0x440, 0x2e, 0x3b, 0x43e, 0x440, 0x434, 0x2e, 0x3b, 0x445, 0x43e, 0x440, 0x2e, 0x3b, 0x442,
|
||||
0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x2e, 0x3b, 0x448, 0x430, 0x445, 0x2e, 0x3b, 0x43c, 0x435, 0x445, 0x2e, 0x3b, 0x430, 0x431,
|
||||
0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x2e, 0x3b, 0x435, 0x441, 0x444,
|
||||
0x2e, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x646, 0x3b, 0x622, 0x631, 0x688, 0x628, 0x627, 0x626, 0x634, 0x3b, 0x62e, 0x62f, 0x627,
|
||||
0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631, 0x3b, 0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x634, 0x6c1, 0x631, 0x6cc, 0x648, 0x627,
|
||||
0x631, 0x3b, 0x645, 0x6c1, 0x631, 0x3b, 0x627, 0x628, 0x627, 0x646, 0x3b, 0x622, 0x632, 0x631, 0x3b, 0x688, 0x6d2, 0x3b, 0x628, 0x6c1,
|
||||
0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74, 0x65, 0x64,
|
||||
0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64, 0x65, 0x61,
|
||||
0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64, 0x7a, 0x6f,
|
||||
0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61, 0x66, 0x254,
|
||||
0x66, 0x69, 0x1ebd, 0x3b, 0x64, 0x61, 0x6d, 0x25b, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d, 0x6c, 0x254,
|
||||
0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e, 0x79, 0x254,
|
||||
0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b, 0x64, 0x7a,
|
||||
0x6f, 0x6d, 0x65, 0x3b, 0x62e, 0x627, 0x6a9, 0x6d5, 0x644, 0x6ce, 0x648, 0x6d5, 0x3b, 0x628, 0x627, 0x646, 0x6d5, 0x645, 0x6d5, 0x695,
|
||||
0x3b, 0x62c, 0x6c6, 0x632, 0x6d5, 0x631, 0x62f, 0x627, 0x646, 0x3b, 0x67e, 0x648, 0x648, 0x634, 0x67e, 0x6d5, 0x695, 0x3b, 0x6af, 0x6d5,
|
||||
0x644, 0x627, 0x648, 0x6ce, 0x698, 0x3b, 0x62e, 0x6d5, 0x631, 0x645, 0x627, 0x646, 0x627, 0x646, 0x3b, 0x695, 0x6d5, 0x632, 0x628, 0x6d5,
|
||||
0x631, 0x3b, 0x62e, 0x6d5, 0x632, 0x6d5, 0x6b5, 0x648, 0x6d5, 0x631, 0x3b, 0x633, 0x6d5, 0x631, 0x645, 0x627, 0x648, 0x6d5, 0x632, 0x3b,
|
||||
0x628, 0x6d5, 0x641, 0x631, 0x627, 0x646, 0x628, 0x627, 0x631, 0x3b, 0x695, 0x6ce, 0x628, 0x6d5, 0x646, 0x62f, 0x627, 0x646, 0x3b, 0x631,
|
||||
0x6d5, 0x634, 0x6d5, 0x645, 0x6ce, 0x3b
|
||||
};
|
||||
// GENERATED PART ENDS HERE
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -2015,6 +2015,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 21
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromSet(), toVector(), QVector::toList()
|
||||
*/
|
||||
|
||||
|
|
@ -2026,6 +2028,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 22
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toSet(), fromVector(), QVector::fromList()
|
||||
*/
|
||||
|
||||
|
|
@ -2038,6 +2042,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 23
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromVector(), toSet(), QSet::toList()
|
||||
*/
|
||||
|
||||
|
|
@ -2051,6 +2057,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 24
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toVector(), fromSet(), QSet::fromList()
|
||||
*/
|
||||
|
||||
|
|
@ -2063,6 +2071,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 25
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toStdList(), QVector::fromStdVector()
|
||||
*/
|
||||
|
||||
|
|
@ -2073,6 +2083,8 @@ void **QListData::erase(void **xi)
|
|||
|
||||
\snippet code/src_corelib_tools_qlistdata.cpp 26
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromStdList(), QVector::toStdVector()
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1005,6 +1005,8 @@
|
|||
|
||||
\snippet code/doc_src_qset.cpp 13
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromList(), QList::fromSet()
|
||||
*/
|
||||
|
||||
|
|
@ -1015,6 +1017,8 @@
|
|||
|
||||
This is the same as toList().
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromList(), QList::fromSet()
|
||||
*/
|
||||
|
||||
|
|
@ -1030,6 +1034,8 @@
|
|||
|
||||
\snippet code/doc_src_qset.cpp 14
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toList(), QList::toSet()
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1359,6 +1359,8 @@
|
|||
|
||||
\snippet code/src_corelib_tools_qvector.cpp 14
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromList(), QList::fromVector()
|
||||
*/
|
||||
|
||||
|
|
@ -1370,6 +1372,8 @@
|
|||
|
||||
\snippet code/src_corelib_tools_qvector.cpp 15
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toList(), QList::toVector()
|
||||
*/
|
||||
|
||||
|
|
@ -1382,6 +1386,8 @@
|
|||
|
||||
\snippet code/src_corelib_tools_qvector.cpp 16
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa toStdVector(), QList::fromStdList()
|
||||
*/
|
||||
|
||||
|
|
@ -1392,6 +1398,8 @@
|
|||
|
||||
\snippet code/src_corelib_tools_qvector.cpp 17
|
||||
|
||||
\include containers-range-constructor.qdocinc
|
||||
|
||||
\sa fromStdVector(), QList::toStdList()
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ public:
|
|||
signed char format = 0;
|
||||
uchar *data = nullptr;
|
||||
private:
|
||||
Q_DISABLE_COPY(Glyph);
|
||||
Q_DISABLE_COPY(Glyph)
|
||||
};
|
||||
|
||||
virtual ~QFontEngine();
|
||||
|
|
|
|||
|
|
@ -3420,7 +3420,7 @@ QString QTextDocument::toMarkdown(QTextDocument::MarkdownFeatures features) cons
|
|||
#if QT_CONFIG(textmarkdownreader)
|
||||
void QTextDocument::setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features)
|
||||
{
|
||||
QTextMarkdownImporter(static_cast<QTextMarkdownImporter::Features>(int(features))).import(this, markdown);
|
||||
QTextMarkdownImporter(features).import(this, markdown);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -152,7 +152,6 @@ public:
|
|||
#endif
|
||||
|
||||
#if QT_CONFIG(textmarkdownwriter) || QT_CONFIG(textmarkdownreader)
|
||||
// Must be in sync with QTextMarkdownImporter::Features, should be in sync with #define MD_FLAG_* in md4c
|
||||
enum MarkdownFeature {
|
||||
MarkdownNoHTML = 0x0020 | 0x0040,
|
||||
MarkdownDialectCommonMark = 0,
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ struct QScriptItem
|
|||
Q_DECL_CONSTEXPR QFixed height() const noexcept { return ascent + descent; }
|
||||
private:
|
||||
friend class QVector<QScriptItem>;
|
||||
QScriptItem() {}; // for QVector, don't use
|
||||
QScriptItem() {} // for QVector, don't use
|
||||
};
|
||||
Q_DECLARE_TYPEINFO(QScriptItem, Q_PRIMITIVE_TYPE);
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,22 @@ static const QChar Space = QLatin1Char(' ');
|
|||
// TODO maybe eliminate the margins after all views recognize BlockQuoteLevel, CSS can format it, etc.
|
||||
static const int BlockQuoteIndent = 40; // pixels, same as in QTextHtmlParserNode::initializeProperties
|
||||
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureCollapseWhitespace) == MD_FLAG_COLLAPSEWHITESPACE);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeaturePermissiveATXHeaders) == MD_FLAG_PERMISSIVEATXHEADERS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeaturePermissiveURLAutoLinks) == MD_FLAG_PERMISSIVEURLAUTOLINKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeaturePermissiveMailAutoLinks) == MD_FLAG_PERMISSIVEEMAILAUTOLINKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureNoIndentedCodeBlocks) == MD_FLAG_NOINDENTEDCODEBLOCKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureNoHTMLBlocks) == MD_FLAG_NOHTMLBLOCKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureNoHTMLSpans) == MD_FLAG_NOHTMLSPANS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureTables) == MD_FLAG_TABLES);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureStrikeThrough) == MD_FLAG_STRIKETHROUGH);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeaturePermissiveWWWAutoLinks) == MD_FLAG_PERMISSIVEWWWAUTOLINKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeaturePermissiveAutoLinks) == MD_FLAG_PERMISSIVEAUTOLINKS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureTasklists) == MD_FLAG_TASKLISTS);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::FeatureNoHTML) == MD_FLAG_NOHTML);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::DialectCommonMark) == MD_DIALECT_COMMONMARK);
|
||||
Q_STATIC_ASSERT(int(QTextMarkdownImporter::DialectGitHub) == MD_DIALECT_GITHUB);
|
||||
|
||||
// --------------------------------------------------------
|
||||
// MD4C callback function wrappers
|
||||
|
||||
|
|
@ -122,6 +138,11 @@ QTextMarkdownImporter::QTextMarkdownImporter(QTextMarkdownImporter::Features fea
|
|||
{
|
||||
}
|
||||
|
||||
QTextMarkdownImporter::QTextMarkdownImporter(QTextDocument::MarkdownFeatures features)
|
||||
: QTextMarkdownImporter(static_cast<QTextMarkdownImporter::Features>(int(features)))
|
||||
{
|
||||
}
|
||||
|
||||
void QTextMarkdownImporter::import(QTextDocument *doc, const QString &markdown)
|
||||
{
|
||||
MD_PARSER callbacks = {
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
#include <QtGui/qfont.h>
|
||||
#include <QtGui/qtguiglobal.h>
|
||||
#include <QtGui/qpalette.h>
|
||||
#include <QtGui/qtextdocument.h>
|
||||
#include <QtGui/qtextlist.h>
|
||||
#include <QtCore/qstack.h>
|
||||
|
||||
|
|
@ -67,27 +68,28 @@ class Q_GUI_EXPORT QTextMarkdownImporter
|
|||
{
|
||||
public:
|
||||
enum Feature {
|
||||
// Must be kept in sync with MD_FLAG_* in md4c.h
|
||||
FeatureCollapseWhitespace = 0x0001, // MD_FLAG_COLLAPSEWHITESPACE
|
||||
FeaturePermissiveATXHeaders = 0x0002, // MD_FLAG_PERMISSIVEATXHEADERS
|
||||
FeaturePermissiveURLAutoLinks = 0x0004, // MD_FLAG_PERMISSIVEURLAUTOLINKS
|
||||
FeaturePermissiveMailAutoLinks = 0x0008, // MD_FLAG_PERMISSIVEEMAILAUTOLINKS
|
||||
FeatureNoIndentedCodeBlocks = 0x0010, // MD_FLAG_NOINDENTEDCODEBLOCKS
|
||||
FeatureNoHTMLBlocks = 0x0020, // MD_FLAG_NOHTMLBLOCKS
|
||||
FeatureNoHTMLSpans = 0x0040, // MD_FLAG_NOHTMLSPANS
|
||||
FeatureTables = 0x0100, // MD_FLAG_TABLES
|
||||
FeatureStrikeThrough = 0x0200, // MD_FLAG_STRIKETHROUGH
|
||||
FeaturePermissiveWWWAutoLinks = 0x0400, // MD_FLAG_PERMISSIVEWWWAUTOLINKS
|
||||
FeatureTasklists = 0x0800, // MD_FLAG_TASKLISTS
|
||||
FeatureCollapseWhitespace = 0x0001,
|
||||
FeaturePermissiveATXHeaders = 0x0002,
|
||||
FeaturePermissiveURLAutoLinks = 0x0004,
|
||||
FeaturePermissiveMailAutoLinks = 0x0008,
|
||||
FeatureNoIndentedCodeBlocks = 0x0010,
|
||||
FeatureNoHTMLBlocks = 0x0020,
|
||||
FeatureNoHTMLSpans = 0x0040,
|
||||
FeatureTables = 0x0100,
|
||||
FeatureStrikeThrough = 0x0200,
|
||||
FeaturePermissiveWWWAutoLinks = 0x0400,
|
||||
FeatureTasklists = 0x0800,
|
||||
// composite flags
|
||||
FeaturePermissiveAutoLinks = FeaturePermissiveMailAutoLinks | FeaturePermissiveURLAutoLinks | FeaturePermissiveWWWAutoLinks, // MD_FLAG_PERMISSIVEAUTOLINKS
|
||||
FeatureNoHTML = FeatureNoHTMLBlocks | FeatureNoHTMLSpans, // MD_FLAG_NOHTML
|
||||
DialectCommonMark = 0, // MD_DIALECT_COMMONMARK
|
||||
DialectGitHub = FeaturePermissiveAutoLinks | FeatureTables | FeatureStrikeThrough | FeatureTasklists // MD_DIALECT_GITHUB
|
||||
FeaturePermissiveAutoLinks = FeaturePermissiveMailAutoLinks
|
||||
| FeaturePermissiveURLAutoLinks | FeaturePermissiveWWWAutoLinks,
|
||||
FeatureNoHTML = QTextDocument::MarkdownNoHTML,
|
||||
DialectCommonMark = QTextDocument::MarkdownDialectCommonMark,
|
||||
DialectGitHub = QTextDocument::MarkdownDialectGitHub
|
||||
};
|
||||
Q_DECLARE_FLAGS(Features, Feature)
|
||||
|
||||
QTextMarkdownImporter(Features features);
|
||||
QTextMarkdownImporter(QTextDocument::MarkdownFeatures features);
|
||||
|
||||
void import(QTextDocument *doc, const QString &markdown);
|
||||
|
||||
|
|
|
|||
|
|
@ -466,6 +466,8 @@ QVariant QWindowsTheme::themeHint(ThemeHint hint) const
|
|||
result = int(scrollLines);
|
||||
return QVariant(result);
|
||||
}
|
||||
case MouseDoubleClickDistance:
|
||||
return GetSystemMetrics(SM_CXDOUBLECLK);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1274,7 +1274,7 @@ bool updateLibsXml(Options *options)
|
|||
QFileInfo extraLibInfo(extraLib);
|
||||
QString name = extraLibInfo.fileName().mid(sizeof("lib") - 1);
|
||||
name.chop(sizeof(".so") - 1);
|
||||
extraLibs += QLatin1String(" <item>%1;%2").arg(it.key(), name);
|
||||
extraLibs += QLatin1String(" <item>%1;%2</item>\n").arg(it.key(), name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -277,7 +277,7 @@ static void printHelp()
|
|||
" $PATH will be used.\n"
|
||||
" --activity <acitvity>: The Activity to run. If missing the first\n"
|
||||
" activity from AndroidManifest.qml file will be used.\n"
|
||||
" --timout <seconds>: Timeout to run the test.\n"
|
||||
" --timeout <seconds>: Timeout to run the test.\n"
|
||||
" Default is 5 minutes.\n"
|
||||
" --make <make cmd>: make command, needed to install the qt library.\n"
|
||||
" If make is missing make sure the --path is set.\n"
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ void WriteInitialization::acceptUI(DomUI *node)
|
|||
|
||||
const QString varConn = connection + QLatin1String("Connection");
|
||||
m_output << m_indent << varConn << " = QSqlDatabase::database("
|
||||
<< language::charliteral(connection, m_dindent) << ");\n";
|
||||
<< language::charliteral(connection, m_dindent) << ")" << language::eol;
|
||||
}
|
||||
|
||||
acceptWidget(node->elementWidget());
|
||||
|
|
@ -551,7 +551,7 @@ void WriteInitialization::acceptUI(DomUI *node)
|
|||
m_refreshInitialization += m_indent;
|
||||
m_refreshInitialization += QLatin1String("(void)");
|
||||
m_refreshInitialization += varName ;
|
||||
m_refreshInitialization += QLatin1String(";\n");
|
||||
m_refreshInitialization += language::eol;
|
||||
}
|
||||
|
||||
m_output << m_option.indent
|
||||
|
|
@ -682,7 +682,7 @@ void WriteInitialization::acceptWidget(DomWidget *node)
|
|||
m_output << "Qt" << language::qualifier
|
||||
<< language::dockWidgetArea(pstyle->elementNumber()) << ", ";
|
||||
}
|
||||
m_output << varName << ");\n";
|
||||
m_output << varName << ")" << language::eol;
|
||||
} else if (m_uic->customWidgetsInfo()->extends(className, QLatin1String("QStatusBar"))) {
|
||||
m_output << m_indent << parentWidget << language::derefPointer
|
||||
<< "setStatusBar(" << varName << ')' << language::eol;
|
||||
|
|
@ -881,7 +881,7 @@ void WriteInitialization::acceptLayout(DomLayout *node)
|
|||
if (!m_layoutChain.top() && !isGroupBox)
|
||||
m_output << m_driver->findOrInsertWidget(m_widgetChain.top());
|
||||
|
||||
m_output << ");\n";
|
||||
m_output << ")" << language::eol;
|
||||
|
||||
// Suppress margin on a read child layout
|
||||
const bool suppressMarginDefault = m_layoutChain.top();
|
||||
|
|
@ -979,7 +979,7 @@ void WriteInitialization::acceptSpacer(DomSpacer *node)
|
|||
{
|
||||
m_output << m_indent << m_driver->findOrInsertSpacer(node) << " = ";
|
||||
writeSpacerItem(node, m_output);
|
||||
m_output << ";\n";
|
||||
m_output << language::eol;
|
||||
}
|
||||
|
||||
static inline QString formLayoutRole(int column, int colspan)
|
||||
|
|
@ -1041,7 +1041,7 @@ void WriteInitialization::acceptLayoutItem(DomLayoutItem *node)
|
|||
if (layout->attributeClass().contains(QLatin1String("Box")) && !node->attributeAlignment().isEmpty())
|
||||
m_output << ", 0, " << language::enumValue(node->attributeAlignment());
|
||||
}
|
||||
m_output << ");\n\n";
|
||||
m_output << ")" << language::eol << "\n";
|
||||
}
|
||||
|
||||
void WriteInitialization::acceptActionGroup(DomActionGroup *node)
|
||||
|
|
@ -1053,7 +1053,7 @@ void WriteInitialization::acceptActionGroup(DomActionGroup *node)
|
|||
varName = m_driver->findOrInsertActionGroup(m_actionGroupChain.top());
|
||||
|
||||
m_output << m_indent << actionName << " = " << language::operatorNew
|
||||
<< "QActionGroup(" << varName << ");\n";
|
||||
<< "QActionGroup(" << varName << ")" << language::eol;
|
||||
writeProperties(actionName, QLatin1String("QActionGroup"), node->elementProperty());
|
||||
|
||||
m_actionGroupChain.push(node);
|
||||
|
|
@ -1536,7 +1536,7 @@ void WriteInitialization::writeProperties(const QString &varName,
|
|||
if (leftMargin != -1 || topMargin != -1 || rightMargin != -1 || bottomMargin != -1) {
|
||||
m_output << m_indent << varName << language::derefPointer << "setContentsMargins("
|
||||
<< leftMargin << ", " << topMargin << ", "
|
||||
<< rightMargin << ", " << bottomMargin << ");\n";
|
||||
<< rightMargin << ", " << bottomMargin << ")" << language::eol;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1566,9 +1566,9 @@ QString WriteInitialization::writeSizePolicy(const DomSizePolicy *sp)
|
|||
m_output << ')' << language::eol;
|
||||
|
||||
m_output << m_indent << spName << ".setHorizontalStretch("
|
||||
<< sp->elementHorStretch() << ");\n";
|
||||
<< sp->elementHorStretch() << ")" << language::eol;
|
||||
m_output << m_indent << spName << ".setVerticalStretch("
|
||||
<< sp->elementVerStretch() << ");\n";
|
||||
<< sp->elementVerStretch() << ")" << language::eol;
|
||||
return spName;
|
||||
}
|
||||
// Check for a font with the given properties in the FontPropertiesNameMap
|
||||
|
|
@ -1591,11 +1591,11 @@ QString WriteInitialization::writeFontProperties(const DomFont *f)
|
|||
<< language::eol;
|
||||
if (f->hasElementFamily() && !f->elementFamily().isEmpty()) {
|
||||
m_output << m_indent << fontName << ".setFamily("
|
||||
<< language::qstring(f->elementFamily(), m_dindent) << ");\n";
|
||||
<< language::qstring(f->elementFamily(), m_dindent) << ")" << language::eol;
|
||||
}
|
||||
if (f->hasElementPointSize() && f->elementPointSize() > 0) {
|
||||
m_output << m_indent << fontName << ".setPointSize(" << f->elementPointSize()
|
||||
<< ");\n";
|
||||
<< ")" << language::eol;
|
||||
}
|
||||
|
||||
if (f->hasElementBold()) {
|
||||
|
|
@ -1780,7 +1780,7 @@ QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
|
|||
if (iconHasStatePixmaps(i)) {
|
||||
// Theme + default state pixmaps:
|
||||
// Generate code to check the theme and default to state pixmaps
|
||||
m_output << m_indent << language::stackVariable("QIcon", iconName) << ";\n";
|
||||
m_output << m_indent << language::stackVariable("QIcon", iconName) << language::eol;
|
||||
const char themeNameStringVariableC[] = "iconThemeName";
|
||||
// Store theme name in a variable
|
||||
m_output << m_indent;
|
||||
|
|
@ -1853,7 +1853,7 @@ void WriteInitialization::writeColorGroup(DomColorGroup *colorGroup, const QStri
|
|||
m_output << m_indent << paletteName << ".setColor(" << group
|
||||
<< ", QPalette" << language::qualifier << language::paletteColorRole(i)
|
||||
<< ", " << domColor2QString(color)
|
||||
<< ");\n";
|
||||
<< ")" << language::eol;
|
||||
}
|
||||
|
||||
// new format
|
||||
|
|
@ -1871,7 +1871,7 @@ void WriteInitialization::writeColorGroup(DomColorGroup *colorGroup, const QStri
|
|||
m_output << m_indent << paletteName << ".setBrush("
|
||||
<< language::enumValue(group) << ", "
|
||||
<< "QPalette" << language::qualifier << roleName
|
||||
<< ", " << brushName << ");\n";
|
||||
<< ", " << brushName << ")" << language::eol;
|
||||
if (!versionAdded.isNull())
|
||||
m_output << "#endif\n";
|
||||
}
|
||||
|
|
@ -2086,12 +2086,12 @@ void WriteInitialization::initializeComboBox(DomWidget *w)
|
|||
m_output << iconValue << ", ";
|
||||
|
||||
if (needsTranslation(text->elementString())) {
|
||||
m_output << "QString());\n";
|
||||
m_output << "QString())" << language::eol;
|
||||
m_refreshOut << m_indent << varName << language::derefPointer
|
||||
<< "setItemText(" << i << ", " << trCall(text->elementString())
|
||||
<< ')' << language::eol;
|
||||
} else {
|
||||
m_output << noTrCall(text->elementString()) << ");\n";
|
||||
m_output << noTrCall(text->elementString()) << ")" << language::eol;
|
||||
}
|
||||
}
|
||||
m_refreshOut << "\n";
|
||||
|
|
@ -2582,7 +2582,7 @@ void WriteInitialization::acceptConnection(DomConnection *connection)
|
|||
|
||||
m_output << m_indent;
|
||||
language::formatConnection(m_output, theSignal, theSlot);
|
||||
m_output << ";\n";
|
||||
m_output << language::eol;
|
||||
}
|
||||
|
||||
static void generateMultiDirectiveBegin(QTextStream &outputStream, const QSet<QString> &directives)
|
||||
|
|
|
|||
|
|
@ -309,15 +309,17 @@ QString QCalendarMonthValidator::text() const
|
|||
|
||||
QString QCalendarMonthValidator::text(QDate date, QCalendar cal, int repeat) const
|
||||
{
|
||||
if (repeat <= 1) {
|
||||
return QString::number(date.month(cal));
|
||||
} else if (repeat == 2) {
|
||||
return formatNumber(date.month(cal), 2);
|
||||
} else if (repeat == 3) {
|
||||
return cal.standaloneMonthName(m_locale, date.month(cal), QLocale::ShortFormat);
|
||||
} else /*if (repeat >= 4)*/ {
|
||||
return cal.standaloneMonthName(m_locale, date.month(cal), QLocale::LongFormat);
|
||||
}
|
||||
const auto parts = cal.partsFromDate(date);
|
||||
// Numeric forms:
|
||||
if (repeat <= 1)
|
||||
return QString::number(parts.month);
|
||||
if (repeat == 2)
|
||||
return formatNumber(parts.month, 2);
|
||||
// Text forms:
|
||||
if (repeat == 3)
|
||||
return cal.standaloneMonthName(m_locale, parts.month, parts.year, QLocale::ShortFormat);
|
||||
/* repeat >= 4 */
|
||||
return cal.standaloneMonthName(m_locale, parts.month, parts.year, QLocale::LongFormat);
|
||||
}
|
||||
|
||||
//////////////////////////////////
|
||||
|
|
@ -923,6 +925,11 @@ public:
|
|||
QDate referenceDate() const;
|
||||
int columnForFirstOfMonth(QDate date) const;
|
||||
|
||||
QString monthName(const QLocale &locale, int month)
|
||||
{
|
||||
return m_calendar.standaloneMonthName(locale, month, m_shownYear, QLocale::LongFormat);
|
||||
}
|
||||
|
||||
int m_firstColumn;
|
||||
int m_firstRow;
|
||||
QCalendar m_calendar;
|
||||
|
|
@ -1786,8 +1793,8 @@ void QCalendarWidgetPrivate::createNavigationBar(QWidget *widget)
|
|||
monthButton->setAutoRaise(true);
|
||||
monthButton->setPopupMode(QToolButton::InstantPopup);
|
||||
monthMenu = new QMenu(monthButton);
|
||||
for (int i = 1; i <= 12; i++) {
|
||||
QString monthName(m_model->m_calendar.standaloneMonthName(q->locale(), i, QLocale::LongFormat));
|
||||
for (int i = 1, e = m_model->m_calendar.maximumMonthsInYear(); i <= e; i++) {
|
||||
QString monthName(m_model->monthName(q->locale(), i));
|
||||
QAction *act = monthMenu->addAction(monthName);
|
||||
act->setData(i);
|
||||
monthToAction[i] = act;
|
||||
|
|
@ -1876,7 +1883,7 @@ void QCalendarWidgetPrivate::updateMonthMenuNames()
|
|||
Q_Q(QCalendarWidget);
|
||||
|
||||
for (int i = 1; i <= 12; i++) {
|
||||
QString monthName(m_model->m_calendar.standaloneMonthName(q->locale(), i, QLocale::LongFormat));
|
||||
QString monthName(m_model->monthName(q->locale(), i));
|
||||
monthToAction[i]->setText(monthName);
|
||||
}
|
||||
}
|
||||
|
|
@ -1979,7 +1986,7 @@ void QCalendarWidgetPrivate::updateNavigationBar()
|
|||
{
|
||||
Q_Q(QCalendarWidget);
|
||||
|
||||
QString monthName = m_model->m_calendar.standaloneMonthName(q->locale(), m_model->m_shownMonth, QLocale::LongFormat);
|
||||
QString monthName = m_model->monthName(q->locale(), m_model->m_shownMonth);
|
||||
|
||||
monthButton->setText(monthName);
|
||||
yearEdit->setValue(m_model->m_shownYear);
|
||||
|
|
@ -2277,7 +2284,7 @@ QSize QCalendarWidget::minimumSizeHint() const
|
|||
QFontMetrics fm = d->monthButton->fontMetrics();
|
||||
int monthW = 0;
|
||||
for (int i = 1; i < 12; i++) {
|
||||
QString monthName = d->m_model->m_calendar.standaloneMonthName(locale(), i, QLocale::LongFormat);
|
||||
QString monthName = d->m_model->monthName(locale(), i);
|
||||
monthW = qMax(monthW, fm.boundingRect(monthName).width());
|
||||
}
|
||||
const int buttonDecoMargin = d->monthButton->sizeHint().width() - fm.boundingRect(d->monthButton->text()).width();
|
||||
|
|
|
|||
|
|
@ -3,4 +3,3 @@ TARGET = tst_qcollator
|
|||
QT = core-private testlib
|
||||
SOURCES = tst_qcollator.cpp
|
||||
DEFINES += QT_NO_CAST_TO_ASCII
|
||||
qtConfig(icu): DEFINES += QT_USE_ICU
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
|
|
@ -2459,9 +2459,9 @@ void tst_QLocale::timeFormat()
|
|||
QCOMPARE(c.timeFormat(QLocale::NarrowFormat), c.timeFormat(QLocale::ShortFormat));
|
||||
|
||||
const QLocale no("no_NO");
|
||||
QCOMPARE(no.timeFormat(QLocale::NarrowFormat), QLatin1String("HH.mm"));
|
||||
QCOMPARE(no.timeFormat(QLocale::ShortFormat), QLatin1String("HH.mm"));
|
||||
QCOMPARE(no.timeFormat(QLocale::LongFormat), QLatin1String("HH.mm.ss t"));
|
||||
QCOMPARE(no.timeFormat(QLocale::NarrowFormat), QLatin1String("HH:mm"));
|
||||
QCOMPARE(no.timeFormat(QLocale::ShortFormat), QLatin1String("HH:mm"));
|
||||
QCOMPARE(no.timeFormat(QLocale::LongFormat), QLatin1String("HH:mm:ss t"));
|
||||
|
||||
const QLocale id("id_ID");
|
||||
QCOMPARE(id.timeFormat(QLocale::ShortFormat), QLatin1String("HH.mm"));
|
||||
|
|
@ -2483,9 +2483,9 @@ void tst_QLocale::dateTimeFormat()
|
|||
QCOMPARE(c.dateTimeFormat(QLocale::NarrowFormat), c.dateTimeFormat(QLocale::ShortFormat));
|
||||
|
||||
const QLocale no("no_NO");
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy HH.mm"));
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy HH.mm"));
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy HH.mm.ss t"));
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy HH:mm"));
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy HH:mm"));
|
||||
QCOMPARE(no.dateTimeFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy HH:mm:ss t"));
|
||||
}
|
||||
|
||||
void tst_QLocale::monthName()
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ CONFIG += testcase
|
|||
TARGET = tst_qstring
|
||||
QT = core-private testlib
|
||||
SOURCES = tst_qstring.cpp
|
||||
DEFINES += QT_NO_CAST_TO_ASCII
|
||||
qtConfig(icu): DEFINES += QT_USE_ICU
|
||||
# DEFINES += QT_NO_CAST_TO_ASCII # actively #undef-ed by tst_qstring.cpp
|
||||
qtConfig(c++11): CONFIG += c++11
|
||||
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
# undef QT_ASCII_CAST_WARNINGS
|
||||
#endif
|
||||
|
||||
#include <private/qglobal_p.h> // for the icu feature test
|
||||
#include <QtTest/QtTest>
|
||||
#include <qregexp.h>
|
||||
#include <qregularexpression.h>
|
||||
|
|
@ -577,7 +578,7 @@ private slots:
|
|||
void repeated_data() const;
|
||||
void compareRef();
|
||||
void arg_locale();
|
||||
#ifdef QT_USE_ICU
|
||||
#if QT_CONFIG(icu)
|
||||
void toUpperLower_icu();
|
||||
#endif
|
||||
#if !defined(QT_NO_UNICODE_LITERAL)
|
||||
|
|
@ -2235,7 +2236,7 @@ void tst_QString::toUpper()
|
|||
upper += QChar(QChar::highSurrogate(0x10428));
|
||||
QCOMPARE(lower.toUpper(), upper);
|
||||
|
||||
#ifdef QT_USE_ICU
|
||||
#if QT_CONFIG(icu)
|
||||
// test doesn't work with ICU support, since QChar is unaware of any locale
|
||||
QEXPECT_FAIL("", "test doesn't work with ICU support, since QChar is unaware of any locale", Continue);
|
||||
QVERIFY(false);
|
||||
|
|
@ -2247,7 +2248,7 @@ void tst_QString::toUpper()
|
|||
if (upper.length() == 1)
|
||||
QVERIFY(upper == QString(1, QChar(i).toUpper()));
|
||||
}
|
||||
#endif
|
||||
#endif // icu
|
||||
}
|
||||
|
||||
void tst_QString::toLower()
|
||||
|
|
@ -2295,7 +2296,7 @@ void tst_QString::toLower()
|
|||
upper += QChar(QChar::highSurrogate(0x10400));
|
||||
QCOMPARE( upper.toLower(), lower);
|
||||
|
||||
#ifdef QT_USE_ICU
|
||||
#if QT_CONFIG(icu)
|
||||
// test doesn't work with ICU support, since QChar is unaware of any locale
|
||||
QEXPECT_FAIL("", "test doesn't work with ICU support, since QChar is unaware of any locale", Continue);
|
||||
QVERIFY(false);
|
||||
|
|
@ -2307,7 +2308,7 @@ void tst_QString::toLower()
|
|||
if (lower.length() == 1)
|
||||
QVERIFY(str.toLower() == QString(1, QChar(i).toLower()));
|
||||
}
|
||||
#endif
|
||||
#endif // icu
|
||||
}
|
||||
|
||||
void tst_QString::isUpper()
|
||||
|
|
@ -5623,7 +5624,7 @@ void tst_QString::localeAwareCompare()
|
|||
QStringRef r2(&s2, 0, s2.length());
|
||||
|
||||
if (!locale.isEmpty()) {
|
||||
#if defined (Q_OS_DARWIN) || defined(QT_USE_ICU)
|
||||
#if defined (Q_OS_DARWIN) || QT_CONFIG(icu)
|
||||
QSKIP("Setting the locale is not supported on OS X or ICU (you can set the C locale, but that won't affect localeAwareCompare)");
|
||||
#else
|
||||
const char *newLocale = setlocale(LC_ALL, locale.toLatin1());
|
||||
|
|
@ -5631,10 +5632,10 @@ void tst_QString::localeAwareCompare()
|
|||
setlocale(LC_ALL, "");
|
||||
QSKIP("Please install the proper locale on this machine to test properly");
|
||||
}
|
||||
#endif
|
||||
#endif // Darwin || icu
|
||||
}
|
||||
|
||||
#ifdef QT_USE_ICU
|
||||
#if QT_CONFIG(icu)
|
||||
// ### for c1, ICU disagrees with libc on how to compare
|
||||
QEXPECT_FAIL("c1", "ICU disagrees with test", Abort);
|
||||
#endif
|
||||
|
|
@ -6592,7 +6593,7 @@ void tst_QString::arg_locale()
|
|||
}
|
||||
|
||||
|
||||
#ifdef QT_USE_ICU
|
||||
#if QT_CONFIG(icu)
|
||||
// Qt has to be built with ICU support
|
||||
void tst_QString::toUpperLower_icu()
|
||||
{
|
||||
|
|
@ -6626,7 +6627,7 @@ void tst_QString::toUpperLower_icu()
|
|||
QCOMPARE(l.toLower(sup), sup);
|
||||
QCOMPARE(l.toLower(QString::fromLatin1("i")), QString::fromLatin1("i"));
|
||||
}
|
||||
#endif
|
||||
#endif // icu
|
||||
|
||||
#if !defined(QT_NO_UNICODE_LITERAL)
|
||||
// Only tested on c++0x compliant compiler or gcc
|
||||
|
|
|
|||
|
|
@ -102,14 +102,14 @@ int main(int argc, char **argv)
|
|||
}
|
||||
QFile file(argv[1]);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
fprintf("Failed to open input file (%s); see %s -usage", argv[1], argv[0]);
|
||||
fprintf(stderr, "Failed to open input file (%s); see %s -usage", argv[1], argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
QFile outFile(argv[2]);
|
||||
if (!outFile.open(QIODevice::WriteOnly)) {
|
||||
file.close()
|
||||
fprintf("Failed to open output file (%s); see %s -usage", argv[2], argv[0]);
|
||||
file.close();
|
||||
fprintf(stderr, "Failed to open output file (%s); see %s -usage", argv[2], argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python2
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2016 The Qt Company Ltd.
|
||||
## Copyright (C) 2019 The Qt Company Ltd.
|
||||
## Contact: https://www.qt.io/licensing/
|
||||
##
|
||||
## This file is part of the test suite of the Qt Toolkit.
|
||||
|
|
@ -181,6 +181,7 @@ windowsIdList = (
|
|||
(u'Pacific Standard Time (Mexico)', -28800),
|
||||
(u'Pakistan Standard Time', 18000),
|
||||
(u'Paraguay Standard Time', -14400),
|
||||
(u'Qyzylorda Standard Time', 18000), # a.k.a. Kyzylorda, in Kazakhstan
|
||||
(u'Romance Standard Time', 3600),
|
||||
(u'Russia Time Zone 3', 14400),
|
||||
(u'Russia Time Zone 10', 39600),
|
||||
|
|
@ -221,6 +222,7 @@ windowsIdList = (
|
|||
(u'UTC+13', 46800),
|
||||
(u'Venezuela Standard Time', -16200),
|
||||
(u'Vladivostok Standard Time', 36000),
|
||||
(u'Volgograd Standard Time', 14400),
|
||||
(u'W. Australia Standard Time', 28800),
|
||||
(u'W. Central Africa Standard Time', 3600),
|
||||
(u'W. Europe Standard Time', 3600),
|
||||
|
|
@ -386,7 +388,7 @@ ianaIdData = ByteArrayData()
|
|||
# Write Windows/IANA table
|
||||
newTempFile.write("// Windows ID Key, Country Enum, IANA ID Index\n")
|
||||
newTempFile.write("static const QZoneData zoneDataTable[] = {\n")
|
||||
for index in windowsIdDict:
|
||||
for index in sorted(windowsIdDict):
|
||||
data = windowsIdDict[index]
|
||||
newTempFile.write(" { %6d,%6d,%6d }, // %s / %s\n"
|
||||
% (data['windowsKey'],
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2016 The Qt Company Ltd.
|
||||
## Copyright (C) 2019 The Qt Company Ltd.
|
||||
## Contact: https://www.qt.io/licensing/
|
||||
##
|
||||
## This file is part of the test suite of the Qt Toolkit.
|
||||
|
|
@ -404,6 +404,9 @@ language_list = {
|
|||
364: ["Western Balochi", "bgn"],
|
||||
365: ["Cebuano", "ceb"],
|
||||
366: ["Erzya", "myv"],
|
||||
367: ["Chickasaw", "cic"],
|
||||
368: ["Muscogee", "mus"],
|
||||
369: ["Silesian", "szl"],
|
||||
}
|
||||
|
||||
language_aliases = {
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ def main():
|
|||
qtsrcdir = sys.argv[2]
|
||||
|
||||
if not (os.path.isdir(qtsrcdir)
|
||||
and all(os.path.isfile(os.path.join(qtsrcdir, 'src', 'corelib', 'tools', leaf))
|
||||
and all(os.path.isfile(os.path.join(qtsrcdir, 'src', 'corelib', 'text', leaf))
|
||||
for leaf in ('qlocale_data_p.h', 'qlocale.h', 'qlocale.qdoc'))):
|
||||
usage()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Unicode is used to generate the unicode data in src/corelib/tools.
|
||||
Unicode is used to generate the unicode data in src/corelib/text/.
|
||||
|
||||
To update:
|
||||
* Find the data (UAX #44, UCD; not the XML version) at
|
||||
|
|
@ -21,7 +21,7 @@ To update:
|
|||
* Build with the modified code, fix any compilation issues.
|
||||
* That may have updated qtbase/src/corelib/text/qunicodetables.cpp;
|
||||
if so the update matters; be sure to commit the changes to data/ at
|
||||
the same time and update tools/qt_attribution.json to match; use the
|
||||
the same time and update text/qt_attribution.json to match; use the
|
||||
UCD Revision number, rather than the Unicode standard number, as the
|
||||
Version, for all that qunicodetables.cpp uses the latter.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue