comparison mupdf-source/thirdparty/gumbo-parser/src/char_ref.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 // Copyright 2011 Google Inc. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // Author: jdtang@google.com (Jonathan Tang)
16 //
17 // Internal header for character reference handling; this should not be exposed
18 // transitively by any public API header. This is why the functions aren't
19 // namespaced.
20
21 #ifndef GUMBO_CHAR_REF_H_
22 #define GUMBO_CHAR_REF_H_
23
24 #include <stdbool.h>
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 struct GumboInternalParser;
31 struct GumboInternalUtf8Iterator;
32
33 // Value that indicates no character was produced.
34 extern const int kGumboNoChar;
35
36 // Certain named character references generate two codepoints, not one, and so
37 // the consume_char_ref subroutine needs to return this instead of an int. The
38 // first field will be kGumboNoChar if no character reference was found; the
39 // second field will be kGumboNoChar if that is the case or if the character
40 // reference returns only a single codepoint.
41 typedef struct {
42 int first;
43 int second;
44 } OneOrTwoCodepoints;
45
46 // Implements the "consume a character reference" section of the spec.
47 // This reads in characters from the input as necessary, and fills in a
48 // OneOrTwoCodepoints struct containing the characters read. It may add parse
49 // errors to the GumboParser's errors vector, if the spec calls for it. Pass a
50 // space for the "additional allowed char" when the spec says "with no
51 // additional allowed char". Returns false on parse error, true otherwise.
52 bool consume_char_ref(struct GumboInternalParser* parser,
53 struct GumboInternalUtf8Iterator* input, int additional_allowed_char,
54 bool is_in_attribute, OneOrTwoCodepoints* output);
55
56 #ifdef __cplusplus
57 }
58 #endif
59
60 #endif // GUMBO_CHAR_REF_H_