Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/source/fitz/bidi-imp.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 |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 #ifndef MUPDF_BIDI_IMP_H | |
| 2 #define MUPDF_BIDI_IMP_H | |
| 3 | |
| 4 /* For use with Bidi Reference Implementation | |
| 5 For more information see the associated file bidi-std.c | |
| 6 | |
| 7 Credits: | |
| 8 ------- | |
| 9 Written by: Asmus Freytag | |
| 10 Command line interface by: Rick McGowan | |
| 11 Verification (v24): Doug Felt | |
| 12 | |
| 13 Disclaimer and legal rights: | |
| 14 --------------------------- | |
| 15 Copyright (C) 1999-2009, ASMUS, Inc. All Rights Reserved. | |
| 16 Distributed under the Terms of Use in http://www.unicode.org/copyright.html. | |
| 17 | |
| 18 THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
| 19 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 20 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. | |
| 21 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE | |
| 22 BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, | |
| 23 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |
| 24 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |
| 25 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE SOFTWARE. | |
| 26 */ | |
| 27 | |
| 28 /* Bidirectional Character Types | |
| 29 * as defined by the Unicode Bidirectional Algorithm Table 3-7. | |
| 30 * The list of bidirectional character types here is not grouped the | |
| 31 * same way as the table 3-7, since the numeric values for the types | |
| 32 * are chosen to keep the state and action tables compact. | |
| 33 */ | |
| 34 enum | |
| 35 { | |
| 36 /* input types */ | |
| 37 /* ON MUST be zero, code relies on ON = N = 0 */ | |
| 38 BDI_ON = 0, /* Other Neutral */ | |
| 39 BDI_L, /* Left-to-right Letter */ | |
| 40 BDI_R, /* Right-to-left Letter */ | |
| 41 BDI_AN, /* Arabic Number */ | |
| 42 BDI_EN, /* European Number */ | |
| 43 BDI_AL, /* Arabic Letter (Right-to-left) */ | |
| 44 BDI_NSM, /* Non-spacing Mark */ | |
| 45 BDI_CS, /* Common Separator */ | |
| 46 BDI_ES, /* European Separator */ | |
| 47 BDI_ET, /* European Terminator (post/prefix e.g. $ and %) */ | |
| 48 | |
| 49 /* resolved types */ | |
| 50 BDI_BN, /* Boundary neutral (type of RLE etc after explicit levels)*/ | |
| 51 | |
| 52 /* input types, */ | |
| 53 BDI_S, /* Segment Separator (TAB) used only in L1 */ | |
| 54 BDI_WS, /* White space used only in L1 */ | |
| 55 BDI_B, /* Paragraph Separator (aka as PS) */ | |
| 56 | |
| 57 /* types for explicit controls */ | |
| 58 BDI_RLO, /* these are used only in X1-X9 */ | |
| 59 BDI_RLE, | |
| 60 BDI_LRO, | |
| 61 BDI_LRE, | |
| 62 BDI_PDF, | |
| 63 | |
| 64 /* resolved types, also resolved directions */ | |
| 65 BDI_N = BDI_ON /* alias, where ON, WS and S are treated the same */ | |
| 66 }; | |
| 67 | |
| 68 typedef int fz_bidi_level; /* Note: Max level is 125 */ | |
| 69 typedef uint8_t fz_bidi_chartype; | |
| 70 | |
| 71 enum | |
| 72 { | |
| 73 BIDI_LEVEL_MAX = 125 /* Updated for 6.3.0 */ | |
| 74 }; | |
| 75 | |
| 76 void fz_bidi_resolve_neutrals(fz_bidi_level baselevel, fz_bidi_chartype *pcls, const fz_bidi_level *plevel, size_t cch); | |
| 77 void fz_bidi_resolve_implicit(const fz_bidi_chartype *pcls, fz_bidi_level *plevel, size_t cch); | |
| 78 void fz_bidi_resolve_weak(fz_context *ctx, fz_bidi_level baselevel, fz_bidi_chartype *pcls, fz_bidi_level *plevel, size_t cch); | |
| 79 void fz_bidi_resolve_whitespace(fz_bidi_level baselevel, const fz_bidi_chartype *pcls, fz_bidi_level *plevel, size_t cch); | |
| 80 size_t fz_bidi_resolve_explicit(fz_bidi_level level, fz_bidi_chartype dir, fz_bidi_chartype *pcls, fz_bidi_level *plevel, size_t cch, fz_bidi_level nNest); | |
| 81 size_t fz_bidi_resolve_paragraphs(fz_bidi_chartype *types, size_t cch); | |
| 82 | |
| 83 #endif |
