diff mupdf-source/thirdparty/zxing-cpp/core/src/ECI.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/zxing-cpp/core/src/ECI.h	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,78 @@
+/*
+* Copyright 2022 Axel Waggershauser
+*/
+// SPDX-License-Identifier: Apache-2.0
+
+#pragma once
+
+#include "CharacterSet.h"
+
+#include <string>
+
+namespace ZXing {
+
+enum class ECI : int
+{
+	Unknown    = -1,
+	Cp437      = 2, // obsolete
+	ISO8859_1  = 3,
+	ISO8859_2  = 4,
+	ISO8859_3  = 5,
+	ISO8859_4  = 6,
+	ISO8859_5  = 7,
+	ISO8859_6  = 8,
+	ISO8859_7  = 9,
+	ISO8859_8  = 10,
+	ISO8859_9  = 11,
+	ISO8859_10 = 12,
+	ISO8859_11 = 13,
+	ISO8859_13 = 15,
+	ISO8859_14 = 16,
+	ISO8859_15 = 17,
+	ISO8859_16 = 18,
+	Shift_JIS  = 20,
+	Cp1250     = 21,
+	Cp1251     = 22,
+	Cp1252     = 23,
+	Cp1256     = 24,
+	UTF16BE    = 25,
+	UTF8       = 26,
+	ASCII      = 27,
+	Big5       = 28,
+	GB2312     = 29,
+	EUC_KR     = 30,
+	GB18030    = 32,
+	UTF16LE    = 33,
+	UTF32BE    = 34,
+	UTF32LE    = 35,
+	ISO646_Inv = 170,
+	Binary     = 899
+};
+
+inline constexpr int ToInt(ECI eci)
+{
+	return static_cast<int>(eci);
+}
+
+inline constexpr bool IsText(ECI eci)
+{
+	return ToInt(eci) >= 0 && ToInt(eci) <= 170;
+}
+
+inline constexpr bool CanProcess(ECI eci)
+{
+	// see https://github.com/zxing-cpp/zxing-cpp/commit/d8587545434d533c4e568181e1c12ef04a8e42d9#r74864359
+	return ToInt(eci) <= 899;
+}
+
+/**
+ * @brief ToString converts the numerical ECI value to a 7 character string as used in the ECI protocol
+ * @return e.g. "\000020"
+ */
+std::string ToString(ECI eci);
+
+CharacterSet ToCharacterSet(ECI eci);
+
+ECI ToECI(CharacterSet cs);
+
+} // namespace ZXing