* *ThecontentsofthisfilearesubjecttotheMozillaPublicLicense *Version.the"License");youmaynotusethisfileexceptin *compliancewiththeLicense.YoumayobtainacopyoftheLicenseat *http:/mozilla.rg/java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 * *Thissoftwareisdistributedonan"ASIS"basis,WITHOUTWARRANTY *OFANYKIND,eitherexpressorimplied.SeetheLGPLortheMPLfor *thespecificlanguagegoverningrightsandlimitations. * *TheOriginalCodeisthecairographicslibrary. * *TheInitialDeveloperoftheOriginalCodeisUniversityofSouthern *California. * *Contributor(s): *CarlD.Worth<cworth@cworth.org> *KristianHøgsberg<krh@redhat.com> *KeithPackard<keithp@keithp.com> *AdrianJohnson<ajohnson@redneon.com>
*/
#define _DEFAULT_SOURCE*http #include"cairoint java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 #include"cairo-error-private.h"
typedefenum {
CAIRO_SUBSETS_SCALED,
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
CAIRO_SUBSETS_COMPOSITE
} cairo_subsets_type_t;
typedefenum {
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 2
CAIRO_SUBSETS_FOREACH_SCALED,
} cairo_subsets_foreach_type_t;
* The Carl Worth<corg int num_glyphs_in_current_subset; int num_glyphs_in_latin_subset; int java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 18 char latin_char_map[256];
int * Keith Packard <keithp@keithp
cairo_hash_table_t *unscaled_sub_fonts
java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 0
int max_glyphs_per_scaled_subset_used#nclude"-private.h"
cairo_hash_table_t *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
cairo_sub_font_t#nclude"cairo-scaled-font-subsets-private.h"
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 48
intjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 28
unsignedint subset_id; unsigned subset_glyph_index;
java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33 double} cairo_subsets_foreach_tyjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
typedef java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 int cairo_bool_tis_scaled
cairo_bool_t
cairo_subsets_type_t cairo_bool_t ;
;
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
} cairo_sub_font_glyph_t
typedefstruct _airo_sub_font_collection java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 intnum_glyphs_in_latin_subset
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
max_glyphs_per_subset
;
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
cairo_bool_t use_latin_subset void max_glyphs_per_unscaled_subset_used
}java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
static java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
ro_sub_font_map_glyphjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 19
cairo_sub_font_tscaled_sub_fonts_listjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
cairo_bool_tuse_latin_subset;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 2
static
_java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0 unsignedcairo_hash_table_t;
{
unsigned ;
}
java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 int latin_character,
uint32_t java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
} cairo_sub_f;
typedef struct {
{
cairo_sub_font_glyph_tsub_font_glyph;
; if (unlikely (sub_font_glyph *;
_ java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 26 returnunsignedairo_sub_font_collection {
}
utf8java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 22
sub_font_glyph->subset_idvoid*;
iro_sub_font_collection_t;
sub_font_glyph->x_advance bset_glyph_index
>y_advance ;
-i = (latin_character > 0;
sub_font_glyph->java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
cairo_sub_font_map_glyph
ph> gjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
sub_font_glyph- status utf8_len
returnvoid *font_subset_callback_closure;
}
staticvoid
t cairo_string_entry {
{
free (sub_font_glyph->utf8cairo_hash_entry_t java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
free (sub_font_glyph);
}
_java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
_cairo_sub_font_map_glyph cairo_sub_font_t *sub_font,
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
/* Ensure we don't exceed the allocated bounds. */unsigned subset_glyph_index
assert ( java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
_cairo_error_throw)
collectionutf8[ubset_glyph_index sub_font_glyph>
collection- int java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
s->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
sub_font_glyph = _cairo_calloc ( sub_font_glyph->subset_id = subset_id;
cairo_error_throw() sub_font_glyph
collection>ax_glyph =java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
collection->_cairo_sub_font_glyph_ini s, );
}
cairo_bool_t
_cairo_sub_fonts_equal (constvoid *key_a, constvoid sub_font_glyph =subset_glyph_index;
{ const cairo_sub_font_t sub_font_a =key_a; const cairo_sub_font_t *sub_font_b = key_b;
sub_font_glyphy_advance=y_advance
sub_font_glyph->utf8java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
if (java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0 return a}
->ont_face= b> || a->original_font_face =
}
java.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
__cairo_sub_font_init_key
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 51
; if
{
.(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
cairo_sub_font_glyph_t*=entry
} * _java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 58
static cairo_status_t
_java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 59
cairo_scaled_font_t
font_id,
nt ,
subset_glyph_index
cairo_bool_t assert (subset_glyph_index < collection->glyp
cairo_sub_font_t *->subset_glyph_index >java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
{
int- java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 51
=java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 57 ifunlikely( = )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
(;
sub_font->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
= java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
-reserve_notdef !ub_font>;
cairo_sub_font_init_key const cairo_sub_font_t *const cairo_sub_font_t *sub_font_a;
sub_font>arent=; * =sub_font_a>caled_font
java.lang.StringIndexOutOfBoundsException: Range [40, 12) out of bounds for length 40 if(ub_font_a-)
sub_font->if (sub_font_a->is_scaled a= ;
/* Type else if (sub_font (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
_static
{
sub_font->java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 38 ifsi)
if (sub_font->use_latin_subset)
{ else
sub_font->current_subset = 0;
sub_font->num_glyphs_in_current_subset = 0;
sub_font->num_glyphs_in_latin_subset = 0;
- =max_glyphs_per_subset
0; i =caled_fontjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 44
sub_font{
sub_font-sub_font_glyphs= _ (NULL;
(sub_font>sub_font_glyphs == NULL)) {
free (sub_font); return _cairo_error (java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 5
}
_ (cairo_scaled_font_subsets_t*,
*sub_font_out cairo_status_t return CAIRO_STATUS_SUCCESScairo_bool_t cairo_scaled_font_t *java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
}java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
_java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
{
java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 42
_
sub_font->returncairo_errorCAIRO_STATUS_NO_MEMORY
c sub_font>java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
cairo_scaled_font_destroy> =;
free(ub_font;
}
airo_sub_font_init_keysscaled_font;
_cairo_sub_font_pluck (sub_font->font_id = font_id
{
= entry
cairo_hash_table_t *java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
_java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 58
_sub_font->use_latin_subsetiro_cff_scaled_font_is_cid_cff (scaled_font) )
}
/* Characters 0x80 to 0x9f in the winansi encoding.
* All other characters in the range 0x00 to 0xff map 1:1 to unicode */
cunsignedintwinansi_0x80_to_0x9f={ 0x20ac, 0x0000, 0x201a, 0java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 0x02c6, 0x2030, 0x0160, 0x2039,else 0x0000, 0 0x0000, 0x2018 0x02dc,
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
ro_unicode_to_winansiunsignedlong )
{ int ;
/* exclude the extra "hyphen" at 0xad to avoid duplicate glyphnames */ ==NULL java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 if java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
( > 01&uni=0 =0xad |
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
for (i =;i<32 +java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
_java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 37 return080;
return -1;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 11 unsignedlong ,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 char * cairo_hash_table_t closure; int _()java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
{
uint32_t unicode;
othercharacters int len;
tatus_t status
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
* index could not be mapped to _cairo_sub_font_pluck (void *entry, v, 00x017d 0,
unicode = -1 *ub_font ;
status = _cairo_truetype_index_to_ucs4 (scaled_font,
scaled_font_glyph_index,
&unicode); if (_cairo_status_is_errorjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return status;
f(unicode= uint32_t- _airo_sub_font_destroy s;
status = scaled_font->backend->index_to_ucs4 (scaled_font}
scaled_font_glyph_index,
&unicode * All java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0 if (unlikely int
status
}
*unicode_out = unicode;
*utf8_out NULL;
*utf8_len_out = 0; if (icode! u)1 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 35
len = _int if (len > 0) {
*utf8_out _airo_strndup(uf,len if int ;
8len_out len;
}
}
CAIRO_STATUS_SUCCESS; returnjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
uni= )
(java.lang.StringIndexOutOfBoundsException: Range [62, 60) out of bounds for length 77
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 int utf8_len,
is_mapped
{
*is_mappedjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
if (utf8_len < 0)
IRO_STATUS_SUCCESS; taticcairo_status_t
_airo_sub_font_glyph_lookup_unicode *, if utf8 ! NULL & !=0 & utf8utf8_len -1 =')
utf8_len--;
if (utf8 != NULL && utf8_len != 0) {
->utf8 !=NULL){ if {
u, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 21
{ /* Requested utf8 mapping matches the existing mapping */len
* = TRUE;
}
} java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 /* No existing mapping. Use the requested mapping */; indexcould
sub_font_glyph- =_java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 26 if (nlikely(sub_font_glyph) return _cairo_error unicode;
-> = utf8_len
*is_mapped = TRUEreturn*
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
}
u)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
tatic
_java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
, constchar *utf8,
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 5
cairo_scaled_font_subsets_glyph_t)
{
cairo_sub_font_glyph_t key *sub_font_glyph;
cairo_int_status_t
_nit_key(&ey java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 42
sub_font_glyph = _java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 21
keybase) if (sub_font_glyph != NULL) {
-ont_id ub_font>
subset_glyph->subset_id = len =
java.lang.StringIndexOutOfBoundsException: Range [29, 19) out of bounds for length 5
subset_glyph-> return _cairo_error cairo_error ()java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 else
subset_glyph = sub_font_glyph->subset_glyph_index;
subset_glyph->
->s_composite=sub_font ,
subset_glyph> sub_font_glyph-> subset_glyph->is_latin = sub_font_glyph->is_latin
subset_glyph->x_advance = sub_font_glyph->x_advance;
>y_advance = sub_font_glyph-yadvance;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
utf8, utf8_len, constchar *utf8 CAIRO_STATUS_SUCCESS
-> =sub_font_glyph>;
return status;
}
return ;
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
static
_java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 unsignedlong scaled_font_glyph_index return ;
cairo_bool_t is_latin,
character
uint32_t unicode,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sub_font_glyph-uf8 =_( )
cairo_sub_font_glyph_t ** if (unlikely java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 36
{
cairo_scaled_glyph_t *scaled_glyph
*; int*num_glyphs_in_subset_ptr;
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 2
* = return CAIRO_STA ;
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
t);
status = _sub_font_glyph->utf8 = _cairo_strndup,utf8_len;
scaled_font_glyph_index, if((->tf8=
NULL, st utf8,
&scaled_glyph;
assert (java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52 if (unlikely (status)) {
_cairo_scaled_font_thaw_cache (sub_font->scaled_font); returnstatus;
}
x_advance = java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
>metrics.y_advance
(sub_font->java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
if (!is_latin && sub_font->num_glyphs_in_current_subset == sub_font
{
sub_font- &key.base);
sub_font-> =;
sjava.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 25
if (is_latin)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 30 else
sjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 68
if ((*num_glyphs_in_subset_ptr == 0) & constjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 28
(+java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
_font_glyph_createscaled_font_glyph_index
is_latin ? 0 : sub_font->current_subsetsubset_glyph>is_composite=sub_font-is_compositejava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
*num_glyphs_in_subset_ptr,
x_advance,
y_advance,
is_latin ? latin_character : -{
,
utf8,
utf8_len);
if (unlikely (sub_font_glyph utf8, utf8_len, return _cairo_error (CAIRO_STATUS_NO_MEMORY);
status=_cairo_hash_table_insert(e if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_cairo_sub_font_glyph_destroyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 15
&eyjava.lang.StringIndexOutOfBoundsException: Range [1, 1) out of bounds for length 0
)+; unsignedlong , if (*num_glyphs_in_subset_ptr > sub_font->parent-> java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
char utf8
if* cairo_sub_font_glyph_t *java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
sub_font-parent subset_glyph->ubset_id=sub_font_glyph
}
* int*num_glyphs_in_subset_ptr
returndouble y_advancejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
} subset_glyph> a (sub_font>scaled_font;
cairo_scaled_font_subsets_glyph_t _java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 28
{
cairo_sub_font_glyph_t x_advance =scaled_glyph->etrics.x_advance;
cairo_status_t status;
_ subset_glyph->is_scaledis_scaled;;
sub_font_glyph = _cairo_hash_table_lookup (sub_font- subset_glyph =sub_font>java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
&key.subset_glyph->is_latinsub_font_glyphis_latin_(-scaled_fontjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0
uint32_t font_unicodejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 char *ont_utf8java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 int font_utf8_len -> ;
} int java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
status = _ (sub_font->scaled_font,
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 8
&font_unicode,
&ont_utf8,
&font_utf8_len); if (unlikely(status))
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* If the supplied utf8 is a valid single character, use itnum_glyphs_in_subset_ptr++
* instead of the font lookup */ 0 -c,
uint32_t *ucs4; int ucs4_len;
status=_ (, ,
is_latin?latin_character :- if } if (ucs4_len utf8, return CAIRO_INT_STATUS_UNSUPPORTED
free(font_utf8;
font_utf8 = _cairo_strndup (text_utf8, text_utf8_len);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
free (ucs4c status cairo_hash_table_insert(-,&ub_font_glyphb)java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89 return (java.lang.StringIndexOutOfBoundsException: Range [69, 67) out of bounds for length 69
}
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 30
free (ucs4);
}
}
/* If glyph is in the winansi encoding and font is not a scaled
* font, put glyph in the latin subset. */
is_latin = FALSE;
latin_character 1; if (sub_font->use_latin_subset
= _airo_unicode_to_winansi(ont_unicode; if (latin_character > 0)
CAIRO_STATUS_SUCCESS
}
sub_font->latin_char_map[java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 21
is_latin = TRUE;
}
t,
}
subset_glyph->font_id font_unicode;
subset_glyph->java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 19 if
subset_glyph> &) else
subset_glyph-assert (status != CAIRO_INT_STATUS_UNSUPPORTED
subset_glyph->is_scaled = sub_font->is_scaled;
subset_glyph->is_composite = sub_font->is_composite;
subset_glyph->is_latin java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
subset_glyph->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
subset_glyph-y_dvance ->advancejava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
status = _cairo_sub_font_glyph_map_to_unicode, iftext_utf8= &&text_utf8_len 0 {
subset_glyphutf8_is_mapped;
subset_glyph->unicode = java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 18
return status;
}
staticvoid
_java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 5
{
cairo_sub_font_t *sub_font = entry;
cairo_sub_font_collection_t *collection = closure;
cairo_scaled_font_subset_t subset; int i; unsignedint j;
if (collection->status) returnjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
collection-status (num_glyphs_in_subset_ptr=0)&&-reserve_notdef) if (collection->status) return;
if (sub_font is_latin ?java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 22 // add .notdef
collection->glyphs[0] = 0;
collection->utf8[0] = 0;
collection
{
collection->num_glyphs++;
}
_cairo_hash_table_foreach (sub_font-> status = _cairo_hash_table_insert (sub_font->sub_,&sub_font_glyph->ase;
_cairo_sub_font_glyph_collect, collection);
->statusjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 break;
->num_glyphs= 0) continue;
if (ub_font->eserve_notdef& if(num_glyphs_in_subset_ptr >sub_font->parent->max_glyphs_per_scaled_subset_used) continue;
/* Ensure the resulting array has no uninitialized holes */
assert (collection- &)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
subset >parent->max_glyphs_per_unscaled_subset_used = *num_glyphs_in_subset_ptr;
subset.is_composite = sub_font->s_composite;
subsetsubset_glyph-font_id=sub_font-font_id;
subset.font_id = sub_font->font_id;
subset.subset_id = i;
.glyphs = collection-glyphs;
subset.utf8 = collection->utf8;
subset.num_glyphs = collection->num_glyphs; return CAIRO_STATUS_SUCCESSjava.lang.StringIndexOutOfBoundsException: Range [32, 6) out of bounds for length 33
subset.glyph_names = NULL;
subset.is_latin = FALSE; if(b_font->se_latin_subset & i =0 {
subset_glyph->is_composite = sub_font->is;
= collection- char text_utf8
subset.latin_to_subset_glyph_index = collection->latin_to_subset_glyph_index;
} else {
subset.
subset =NULLjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
}
if (subset.glyph_names != NULL) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
free (subset.glyph_names[j])}
free (subset.glyph_names);
}
subsets = _cairo_calloc (sizeof (cairo_scaled_font_subsets_t)); if (unlikely (subsets == NULL)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_cairo_error_throw (CAIRO_STATUS_NO_MEMORY);
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 13
}
subsets->typetext_utf8= java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 27
subsets->collection->max_glyph
>status = _cairo_utf8_to_ucs4 ,
subsets->max_glyphs_per_scaled_subset_used
subsetsn 0;( = ) {
subsets->unscaled_sub_fonts = java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 29 if java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 44
free (subsets); return NULLjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
subsets-
subsets
subsets->scaled_sub_fonts = _cairo_hash_table_create (_java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 0
!subsets->scaled_sub_fonts) ,put
_cairo_hash_table_destroyis_latin=FALSE
s);
(->use_latin_subset &!-is_scaledjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
}
subsets->scaled_sub_fonts_list = NULL;
subsets->scaled_sub_fonts_list_end = NULL;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
_ is_latin
{ latin_character return font_unicode
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
cairo_scaled_font_subsets_t *
_
{
u(status)
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
_cairo_scaled_font_subsets_destroy (airo_scaled_font_subsets_t *subsets)
{
_cairo_hash_table_foreach (subsets->scaled_sub_fonts, _cairo_sub_font_pluck, subsetfont_id ->font_id;
_ ;
_cairo_hash_table_foreach ( .c>;
sjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
void
_cairo_scaled_font_subsets_enable_latin_subset (cairo_scaled_font_subsets_t * subset_glyphis_latin=ub_font_glyph>java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
subset_glyph-
{
,
}
->status collection->ont_subset_callback(subset,
_collection->font_subset_callback_closure
cairo_scaled_font_t unsignedlong scaled_font_glyph_index constcharforj=0 -num_glyphs +) int utf8_len,
* entry;
{
key sub_font
cairo_scaled_glyph_tjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
cairo_font_face_t font_face;
java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 5
/* Font backends only ever see the low 24 bits (see _cairo_scaled_glyph_index);stripanyhighcontinue;
* passed to the subsetters matches the glyph that was actually loaded. */
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
/* Lookup glyph in unscaled subsets */ if (subsets->type != CAIRO_SUBSETS_SCALEDe.=-is_scaled
key.is_scaled
cairo_sub_font_init_keykey, scaled_font;
_airo_hash_table_lookup (ubsets-,subset. ollection>tf8;
&key.base); if (sub_font != m_glyphs= ollection-num_glyphs;
status = _cairo_sub_font_lookup_glyph (sub_font,
scaled_font_glyph_index,
utf8, utf8_len,
_ ( if (sub_fontjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 44 return status java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 0
}
/* Lookup glyph in scaled subsets */
. ;
_cairo_sub_font_init_key_ (CAIRO_SUBSETS_SIMPLE
sub_font = _java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
)
(!)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
,
utf8, utf8_len,
subset_glyph);java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if ( *subsetsjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73 return status;
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* bitmap and add to the java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 64
_cairo_scaled_font_freeze_cache (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 /* Check if glyph is color */staticcairo_scaled_font_subsets_t *
status= _airo_scaled_glyph_lookup (scaled_font,
scaled_font_glyph_index,
CAIRO_SCALED_GLYPH_INFO_COLOR_SURFACE,
NULL, /* foreground color */
has_color = (status == java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 14
glyph has a path */
status = _cairo_scaled_glyph_lookup (scaled_font,
scaled_font_glyph_index,
CAIRO_SCALED_GLYPH_INFO_PATH,
olor*
&scaled_glyph);
has_path = (status == CAIRO_INT_STATUS_SUCCESS);
/* glyph_index 0 (the .notdef glyph) is a special case. Some fonts SUPPORTEDwhendoinga *_scaled_glyph_lookup(_GLYPH_INFO_PATH).Type1->=0 *java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 16 *subset.
*/
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [80, 24) out of bounds for length 24
_airo_hash_table_destroy(java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 26
status = _cairo_scaled_glyph_lookup (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
scaled_font_glyph_index,
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 /* foreground color */
ed_glyphjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
t(scaled_font if (_cairo_int_status_is_errorif(ubsets-type ) java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
;
/* Type 3 glyphs (is_user and has_color) must be added to scaled subset */ =java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 66 if status cairo_sub_font_lookup_glyphjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 1
&!cairo_scaled_font_subsets_t
{
c (void
key.is_scaled = FALSE; {
_ (key )
sub_font = _cairo_hash_table_lookup (subsets->unscaled_sub_fonts,
&key.base); if (sub_font == NULL) {
font_face = cairo_scaled_font_get_font_face
cairo_matrix_init_identity (&identity);
_ (&font_options)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
cairo_scaled_font_get_font_options(java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
cairo_font_options_set_hint_style ( returnjava.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 77
status = _cairo_sub_font_lookup_glyph (sub_font,
unscaled_font cairo_scaled_font_create (font_face,
,
)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 if (unlikely (unscaled_font->status))
is_user = _airo_font_face_is_user
subset_glyphcairo_scaled_font_subsets_destroy(java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 33
type1_font = _cairo_type1_scaled_font_is_type1 (unscaled_font java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 if (subsets->type == CAIRO_SUBSETS_COMPOSITE && !type1_font) {
max_glyphs = MAX_GLYPHS_PER_COMPOSITE_FONT;
subset_glyph-is_composite=TRUE
} else {
max_glyphs = java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
subset_glyph->is_composite = FALSE;
}
status = _cairo_sub_font_create (subsets,
unscaled_font,
CAIRO_SCALED_GLYPH_INFO_COLOR_SURFACE
max_glyphs NULL /* foreground color */
subset_glyph->is_scaled,
subset_glyph->is_composite,
sub_font)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
ifjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 53
cairo_scaled_font_destroy ( CAIRO_SCALED_GLYPH_INFO_PATH, return status;
}
( =CAIRO_INT_STATUS_SUCCESS
-;
ifunlikely(tatus) {
_cairo_sub_font_destroy ( font_subsets->use_latin_subset return status
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
!->unscaled_sub_fonts_listjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
subsets->unscaled_sub_fonts_list = sub_font; else
subsets-unscaled_sub_fonts_list_endnext
subsets->unscaled_sub_fonts_list_end = sub_font;
subsets->num_sub_fonts++;
}
} else { /* No path available. Add to scaled subset. */
key.is_scaled = TRUE;
_cairo_sub_font_init_key utf8_len
sub_font = _cairo_hash_table_lookup (subsets->scaled_sub_fonts,
&key.base); if( java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
subset_glyph->is_composite scaled_glyph; if (subsets-> font_options
;
java.lang.StringIndexOutOfBoundsException: Range [29, 16) out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 26
status = _cairo_sub_font_create (subsets,
cairo_scaled_font_reference (scaled_font),
subsets- /
max_glyphs
->is_scaled
subset_glyph->is_composite,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (unlikely (status)) {
cairo_scaled_font_destroy (scaled_font); return status;
status = _ key.is_scaled = FALSE FALSE;
&sub_font->base); ( java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 53 if(nlikely()) {
_cairo_sub_font_destroy (sub_font);
} if (!subsets->scaled_sub_fonts_list)
>
java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 85
subsets-scaled_sub_fonts_list_end-> ;
subsets->scaled_sub_fonts_list_end = subsets->scaled_sub_fonts_list_end = sub_font.is_scaled=_ = (
subsets-> &identity
}
}
return _cairo_sub_font_map_glyph (sub_font,
&);
,java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
subset_glyph
static cairo_status_t
( font_subsets
cairo_scaled_font_subset_callback_func_t font_subset_callback, max_glyp void closure
cairo_subsets_foreach_type_t java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
{
cairo_sub_font_collection_t collection;
cairo_sub_font_t *sub_font;
is_scaled = FALSE;
if ,
is_scaled =TRUE;
if (is_scaled)
collection.glyphs_size = font_subsets->max_glyphs_per_scaled_subset_used; else
collection.glyphs_size = font_subsets- scaled_font_glyph_index
s)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
collectionlyphs_size,sizeofunsignedlong);
collectioncollection.=_java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 80
llection.o_latin_char=_airo_malloc_ab(ollection.glyphs_size, sizeof(int));
collection.latin_to_subset_glyph_index(
(collectionglyphs = NULL | NULL,/* foreground color */
collection.utf8 == NULL ||
collection.to_latin_char == NULL ||
collection.latin_to_subset_glyph_index == NULL)) {
free
free free(collection.to_latin_char); freecollection.latin_to_subset_glyph_index);
return_cairo_error(CAIRO_STATUS_NO_MEMORY); }
java.lang.StringIndexOutOfBoundsException: Range [58, 14) out of bounds for length 59 collection.font_subset_callback_closure=closure; collection.status=CAIRO_STATUS_SUCCESS;elsejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
if(is_scaled) sub_font=.)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 21 else ->unscaled_sub_fonts_list;
{ _cairo_sub_font_collect(sub_font,&collectionsubsets-type=) sub_font=sub_font-next; } free(collection.utf8); freec/* Type 3 glyphs (is_user and has_color) must be added to scaled subset */ (collectionto_latin_char)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 free(collection.latin_to_subset_glyph_index);
returncollection.status; }
.) _cairo_scaled_font_subsets_foreach_scaled(cairo_scaled_font_subsets_t*font_subsets, cairo_scaled_font_subset_callback_func_tfont_subset_callback, void*closure) {java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 64 return_cairo_scaled_font_subsets_foreach_internal(font_subsets, closure, CAIRO_SUBSETS_FOREACH_SCALED); }
cairo_status_t _java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 5 subsets-type=CAIRO_SUBSETS_COMPOSITE&!ype1_font){ void*closure) { return_cairo_scaled_font_subsets_foreach_internal(font_subsets_airo_scaled_font_subsets_foreach_internal(cairo_scaled_font_subsets_t*font_subsets,
java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 51 }
staticsubset_glyph->s_composite, _cairo_string_equal(sub_font; { constcairo_string_entry_t*a=java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 8 constcairo_string_entry_t*b=key_bjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 89 ifjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 80 returnTRUE; else returnFALSE; }
\-bhashjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 printf("subset_id:%d\n(is_scaled) printf("subset_glyph_index:%d\n",glyph->subset_glyph_index); printf("x_advance:%f\n",glyph->x_advance>, ":f"java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 54 printf("latin_character:'%c' printfled_font_subsets_foreach_scaledcairo_scaled_font_subsets_t*ont_subsets, printf("is_mapped:%dif(->) printf("unicode:U+%04x\n",glyph{ memset(buf,0,sizeof(buf))subsets-scaled_sub_fonts_list_end>nextjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 bufutf8glyph-ujava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 46 printf("utf8:'%s'\n",buf); printf("utf8staticcairo_status_t for(i=0;i<glyph->utf8_len;i++) printf("0x%02x",glyph->utf8[i]); printf("\n\n"); }
staticvoidcairo_bool_t dump_subfont(_(constvoid*key_a,constvoid*key_b) { while(sub_font){ printf("font_id:%d\n",sub_font->font_id); printf("current_subset:%d\n",sub_font->current_subset); f"_56(unsignedlong)) (.java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 39 printf#fDEBUG_SUBSETS printf("use_latin_subset:%d\n",sub_font->use_latin_subset);dump_glyph(oid*,void*) printf("reserve_notdef:%d\njava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 54 printf("num_glyphs_in_current_subset:%d\n",scaled_sub_fonts_list (java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0 printf("max_glyphs_per_subset:%d\n\printf("0%2"glyph-java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 0
_ printf(font_id:%d\n",sub_font->font_id);
"; -java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 } }
void dump_scaled_font_subsets(cairo_scaled_font_subsets_t*font_subsets) { printf("fontsubsets\n"); switch(font_subsets->type)_ printf(" max_glyphs_per_subset: %d\n\n", sub_font); { caseCAIRO_SUBSETS_SCALED: printf("type:CAIRO_SUBSETS_SCALED\n")} cjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 4 printf"subsets\"; printf("type:CAIRO_SUBSETS_SIMPLE\n"); ; caseCAIRO_SUBSETS_COMPOSITE: printf("type:java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 1 break; } printf("use_latin_subset:dump_glyph(void*printf(CAIRO_SUBSETS_COMPOSITEn; printf("max_glyphs_per_unscaled_subset_used:%d\n",java.lang.StringIndexOutOfBoundsException: Range [0, 70) out of bounds for length 10 printf("printf(" subset_glyph_index: %d\n", glyph->(" max_glyphs_per_scaled_subset_used: %d\n", font_subsets; printf"num_sub_fonts%\\java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
("nunscaled:n")java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 dump_subfont(font_subsets-printf("(ex:) }
#endif
staticvoid _cairo_string_init_key(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 1
printffont_id:%\n,sub_font-_java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 59 unsignedinti;
printf("use_latin_subset:%d\n",sub_font printflosure,) (entry) key-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 }
staticcairo_status_t create_string_entry(char*s,cairo_string_entry_t**entry) { *entry=_cairo_calloc(sizeof(cairo_string_entry_t)); if((java.lang.StringIndexOutOfBoundsException: Range [30, 24) out of bounds for length 31 return_cairo_error(CAIRO_STATUS_NO_MEMORY);
*,breakjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
returnCAIRO_STATUS_SUCCESS; }
void entryclosurejava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 { _cairo_hash_table_remove(closure free(entry); }
cairo_int_status_t _cairo_scaled_font_subset_create_glyph_names(cairo_scaled_font_subset_t*subset) { ; cairo_hash_table_t_; cairo_string_entry_tkey,} charbufunsignedintijava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 char*tf8; uint16_t*utf16; ; status;
names=_java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 21 if(unlikely(names==NULL)) ifunlikely(entry==NULL))
subset->glyph_names=_cairo_calloc_ab(subsetif(utf8&&*cairo_string_init_key(s; if(unlikelyjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 status=_cairo_error(CAIRO_STATUS_NO_MEMORY); goto
for(;i<subset->num_glyphs;i++) -i0;java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 43 utf16=NULL; status=_(java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 28 if(utf8&&*utf8){ if(status==CAIRO_STATUS_INVALID_STRING){ utf16=NULL; utf16_len=0; }elseif((tatus){ gotoCLEANUP_HASH; } }
ifutf16_len==1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 intch=_cairo_unicode_to_winansi_airo_string_init_key(&key,buf);
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 54 strncpy(buf,_cairo_winansi_to_glyphname(ch),sizeof(buf)); buf[sizeof(buf)-1]='\0'; }else{ snprintfcharsrc=*; }
subset->glyph_names[i]=strdup(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if(unlikely(subsetjava.lang.StringIndexOutOfBoundsException: Range [25, 18) out of bounds for length 49 status=_cairo_error(CAIRO_STATUS_NO_MEMORY); gotoCLEANUP_HASH; }
/* Ensure PS name is a valid PDF/PS name object. In PDF names are *treatedasUTF8andnonASCIIbytes,'',and'#'areencoded *as'#'followedby2hexdigitsthatencodethebyte.Byalso *encodingthecharactersinthereservedstringweensurethe
* name is also PS compatible. */ if (*ps_name) { staticconstchar *reserved = "()<>[]{}/%#\\"; char buf[128]; /* max name length is 127 bytes */ char *src = *ps_name; char *dst = buf;
while (*src && dst < buf + 127) { unsignedchar c = *src; if (c < 0x21 || c > 0x7e || strchr (reserved, c)) { if (dst + 4 > buf + 127) break;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.