Fix for inorrect use of BLI_utf8_invalid_strip, add assert to prevent it happening again.
This commit is contained in:
@@ -4110,7 +4110,7 @@ static void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
|
||||
{
|
||||
if (seq) {
|
||||
BLI_strncpy_utf8(seq->name + 2, seq_load->name, sizeof(seq->name) - 2);
|
||||
BLI_utf8_invalid_strip(seq->name + 2, sizeof(seq->name) - 2);
|
||||
BLI_utf8_invalid_strip(seq->name + 2, strlen(seq->name + 2));
|
||||
BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
|
||||
|
||||
if (seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) {
|
||||
|
||||
@@ -137,6 +137,8 @@ int BLI_utf8_invalid_strip(char *str, int length)
|
||||
{
|
||||
int bad_char, tot = 0;
|
||||
|
||||
BLI_assert(str[length] == '\0');
|
||||
|
||||
while ((bad_char = BLI_utf8_invalid_byte(str, length)) != -1) {
|
||||
str += bad_char;
|
||||
length -= bad_char;
|
||||
|
||||
@@ -131,7 +131,7 @@ void outputNumInput(NumInput *n, char *str)
|
||||
BLI_snprintf(&str[j * ln], ln, "%sNONE%s", cur, cur);
|
||||
}
|
||||
/* We might have cut some multi-bytes utf8 chars (e.g. trailing '°' of degrees values can become only 'A')... */
|
||||
BLI_utf8_invalid_strip(&str[j * ln], ln);
|
||||
BLI_utf8_invalid_strip(&str[j * ln], strlen(&str[j * ln]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user