@@ -355,7 +355,8 @@ static nc_utf8proc_ssize_t nc_seqindex_write_char_decomposed(nc_utf8proc_uint16_
355
355
for (; len >= 0 ; entry ++ , len -- ) {
356
356
nc_utf8proc_int32_t entry_cp = nc_seqindex_decode_entry (& entry );
357
357
358
- written += nc_utf8proc_decompose_char (entry_cp , dst + written ,
358
+ nc_utf8proc_int32_t * dest = dst ? (dst + written ) : NULL ;
359
+ written += nc_utf8proc_decompose_char (entry_cp , dest ,
359
360
(bufsize > written ) ? (bufsize - written ) : 0 , options ,
360
361
last_boundclass );
361
362
if (written < 0 ) return UTF8PROC_ERROR_OVERFLOW ;
@@ -525,8 +526,10 @@ static nc_utf8proc_ssize_t nc_seqindex_write_char_decomposed(nc_utf8proc_uint16_
525
526
if (custom_func != NULL ) {
526
527
uc = custom_func (uc , custom_data ); /* user-specified custom mapping */
527
528
}
529
+ nc_utf8proc_int32_t * dest = NULL ;
530
+ if (buffer ) dest = buffer + wpos ;
528
531
decomp_result = nc_utf8proc_decompose_char (
529
- uc , buffer + wpos , (bufsize > wpos ) ? (bufsize - wpos ) : 0 , options ,
532
+ uc , dest , (bufsize > wpos ) ? (bufsize - wpos ) : 0 , options ,
530
533
& boundclass
531
534
);
532
535
if (decomp_result < 0 ) return decomp_result ;
0 commit comments