Diff
Not logged in

Differences From Artifact [d84096c4c4]:

To Artifact [63dd626b9c]:


379
380
381
382
383
384
385






386
387
388
389
390
391
392
	 */
    }
#endif

    *chPtr = (Tcl_UniChar) byte;
    return 1;
}







/*
 *---------------------------------------------------------------------------
 *
 * Tcl_UtfToUniCharDString --
 *
 *	Convert the UTF-8 string to Unicode.







>
>
>
>
>
>







379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
	 */
    }
#endif

    *chPtr = (Tcl_UniChar) byte;
    return 1;
}
/* UTF_TO_UNI_MAX -- maximal value Tcl_UtfToUniChar could return */
#if TCL_UTF_MAX <= 3
#  define UTF_TO_UNI_MAX 3
#else
#  define UTF_TO_UNI_MAX 4
#endif

/*
 *---------------------------------------------------------------------------
 *
 * Tcl_UtfToUniCharDString --
 *
 *	Convert the UTF-8 string to Unicode.
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
	return start;
    }
    /* simplest case - ascii char */
    if (*((unsigned char *) look) < 0x80) {
	return look;
    }
    /* navigate up to max return value of Tcl_UtfToUniChar */
    for (i = 1; i <= 4; i++) {
	if (look < start) {
	    look = start;
	    break;
	}
	if (*((unsigned char *) look) < 0x80) {
	    /* traversing back reaches ascii - either known mark points to char,
	     * or unexpected case with invalid utf-8 or unsupported surrogate 







|







690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
	return start;
    }
    /* simplest case - ascii char */
    if (*((unsigned char *) look) < 0x80) {
	return look;
    }
    /* navigate up to max return value of Tcl_UtfToUniChar */
    for (i = 1; i <= UTF_TO_UNI_MAX; i++) {
	if (look < start) {
	    look = start;
	    break;
	}
	if (*((unsigned char *) look) < 0x80) {
	    /* traversing back reaches ascii - either known mark points to char,
	     * or unexpected case with invalid utf-8 or unsupported surrogate