![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/emscripten/tests/poppler/poppler/ |
Upload File : |
//======================================================================== // // CharCodeToUnicode.h // // Mapping from character codes to Unicode. // // Copyright 2001-2003 Glyph & Cog, LLC // //======================================================================== //======================================================================== // // Modified under the Poppler project - http://poppler.freedesktop.org // // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // // Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org> // Copyright (C) 2007 Koji Otani <sho@bbr.jp> // Copyright (C) 2008 Albert Astals Cid <aacid@kde.org> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git // //======================================================================== #ifndef CHARCODETOUNICODE_H #define CHARCODETOUNICODE_H #ifdef USE_GCC_PRAGMAS #pragma interface #endif #include "poppler-config.h" #include "CharTypes.h" #if MULTITHREADED #include "goo/GooMutex.h" #endif struct CharCodeToUnicodeString; //------------------------------------------------------------------------ class CharCodeToUnicode { friend class UnicodeToCharCode; public: // Read the CID-to-Unicode mapping for <collection> from the file // specified by <fileName>. Sets the initial reference count to 1. // Returns NULL on failure. static CharCodeToUnicode *parseCIDToUnicode(GooString *fileName, GooString *collection); // Create a Unicode-to-Unicode mapping from the file specified by // <fileName>. Sets the initial reference count to 1. Returns NULL // on failure. static CharCodeToUnicode *parseUnicodeToUnicode(GooString *fileName); // Create the CharCode-to-Unicode mapping for an 8-bit font. // <toUnicode> is an array of 256 Unicode indexes. Sets the initial // reference count to 1. static CharCodeToUnicode *make8BitToUnicode(Unicode *toUnicode); // Parse a ToUnicode CMap for an 8- or 16-bit font. static CharCodeToUnicode *parseCMap(GooString *buf, int nBits); static CharCodeToUnicode *parseCMapFromFile(GooString *fileName, int nBits); // Parse a ToUnicode CMap for an 8- or 16-bit font, merging it into // <this>. void mergeCMap(GooString *buf, int nBits); ~CharCodeToUnicode(); void incRefCnt(); void decRefCnt(); // Return true if this mapping matches the specified <tagA>. GBool match(GooString *tagA); // Set the mapping for <c>. void setMapping(CharCode c, Unicode *u, int len); // Map a CharCode to Unicode. int mapToUnicode(CharCode c, Unicode **u); int mapToCharCode(Unicode* u, CharCode *c, int usize); // Return the mapping's length, i.e., one more than the max char // code supported by the mapping. CharCode getLength() { return mapLen; } private: void parseCMap1(int (*getCharFunc)(void *), void *data, int nBits); void addMapping(CharCode code, char *uStr, int n, int offset); CharCodeToUnicode(GooString *tagA); CharCodeToUnicode(GooString *tagA, Unicode *mapA, CharCode mapLenA, GBool copyMap, CharCodeToUnicodeString *sMapA, int sMapLenA, int sMapSizeA); GooString *tag; Unicode *map; CharCode mapLen; CharCodeToUnicodeString *sMap; int sMapLen, sMapSize; int refCnt; #if MULTITHREADED GooMutex mutex; #endif }; //------------------------------------------------------------------------ class CharCodeToUnicodeCache { public: CharCodeToUnicodeCache(int sizeA); ~CharCodeToUnicodeCache(); // Get the CharCodeToUnicode object for <tag>. Increments its // reference count; there will be one reference for the cache plus // one for the caller of this function. Returns NULL on failure. CharCodeToUnicode *getCharCodeToUnicode(GooString *tag); // Insert <ctu> into the cache, in the most-recently-used position. void add(CharCodeToUnicode *ctu); private: CharCodeToUnicode **cache; int size; }; #endif