#include "xfa/fgas/layout/fgas_arabic.h"
#include <array>
#include <iterator>
#include "core/fxcrt/fx_unicode.h"
#include "core/fxcrt/stl_util.h"
#include "xfa/fgas/layout/cfgas_char.h"
namespace {
struct FX_ARBFORMTABLE { … };
struct FX_ARAALEF { … };
constexpr auto kFormTable = …;
constexpr uint16_t kFirstFormTableEntry = …;
constexpr uint16_t kLastFormTableEntry = …;
constexpr FX_ARAALEF kAlefTable[] = …;
constexpr auto kShaddaTable = …;
constexpr uint16_t kFirstShaddaTableEntry = …;
constexpr uint16_t kLastShaddaTableEntry = …;
const FX_ARBFORMTABLE* GetArabicFormTable(wchar_t unicode) { … }
const FX_ARBFORMTABLE* ParseChar(const CFGAS_Char* pTC,
wchar_t* wChar,
FX_CHARTYPE* eType) { … }
wchar_t GetArabicFromAlefTable(wchar_t alef) { … }
}
namespace pdfium {
wchar_t GetArabicFormChar(wchar_t wch, wchar_t prev, wchar_t next) { … }
wchar_t GetArabicFormChar(const CFGAS_Char* cur,
const CFGAS_Char* prev,
const CFGAS_Char* next) { … }
std::optional<wchar_t> GetArabicFromShaddaTable(wchar_t shadda) { … }
}