[F] Fixed logic error in case of error
This commit is contained in:
parent
9870c39dde
commit
3555d97102
14
lib/fort.c
14
lib/fort.c
@ -5028,6 +5028,7 @@ int buffer_printf(string_buffer_t *buffer, size_t buffer_row, char *buf, size_t
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int set_old_value = 0;
|
||||||
int written = 0;
|
int written = 0;
|
||||||
int tmp = 0;
|
int tmp = 0;
|
||||||
ptrdiff_t str_it_width = 0;
|
ptrdiff_t str_it_width = 0;
|
||||||
@ -5042,21 +5043,25 @@ int buffer_printf(string_buffer_t *buffer, size_t buffer_row, char *buf, size_t
|
|||||||
return -1;
|
return -1;
|
||||||
old_value = *end;
|
old_value = *end;
|
||||||
*(CHAR_TYPE *)end = NULL_CHAR;
|
*(CHAR_TYPE *)end = NULL_CHAR;
|
||||||
|
set_old_value = 1;
|
||||||
|
|
||||||
str_it_width = STR_ITER_WIDTH(beg, end);
|
str_it_width = STR_ITER_WIDTH(beg, end);
|
||||||
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
||||||
return - 1;
|
goto clear;
|
||||||
|
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
||||||
|
|
||||||
*(CHAR_TYPE *)end = old_value;
|
*(CHAR_TYPE *)end = old_value;
|
||||||
|
set_old_value = 0;
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
||||||
return written;
|
return written;
|
||||||
|
|
||||||
clear:
|
clear:
|
||||||
|
if (set_old_value)
|
||||||
|
*(CHAR_TYPE *)end = old_value;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#undef CHAR_TYPE
|
#undef CHAR_TYPE
|
||||||
@ -5120,6 +5125,7 @@ int buffer_wprintf(string_buffer_t *buffer, size_t buffer_row, wchar_t *buf, siz
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int set_old_value = 0;
|
||||||
int written = 0;
|
int written = 0;
|
||||||
int tmp = 0;
|
int tmp = 0;
|
||||||
ptrdiff_t str_it_width = 0;
|
ptrdiff_t str_it_width = 0;
|
||||||
@ -5134,21 +5140,25 @@ int buffer_wprintf(string_buffer_t *buffer, size_t buffer_row, wchar_t *buf, siz
|
|||||||
return -1;
|
return -1;
|
||||||
old_value = *end;
|
old_value = *end;
|
||||||
*(CHAR_TYPE *)end = NULL_CHAR;
|
*(CHAR_TYPE *)end = NULL_CHAR;
|
||||||
|
set_old_value = 1;
|
||||||
|
|
||||||
str_it_width = STR_ITER_WIDTH(beg, end);
|
str_it_width = STR_ITER_WIDTH(beg, end);
|
||||||
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
||||||
return - 1;
|
goto clear;
|
||||||
|
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
||||||
|
|
||||||
*(CHAR_TYPE *)end = old_value;
|
*(CHAR_TYPE *)end = old_value;
|
||||||
|
set_old_value = 0;
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
||||||
return written;
|
return written;
|
||||||
|
|
||||||
clear:
|
clear:
|
||||||
|
if (set_old_value)
|
||||||
|
*(CHAR_TYPE *)end = old_value;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#undef CHAR_TYPE
|
#undef CHAR_TYPE
|
||||||
|
@ -376,6 +376,7 @@ int buffer_printf(string_buffer_t *buffer, size_t buffer_row, char *buf, size_t
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int set_old_value = 0;
|
||||||
int written = 0;
|
int written = 0;
|
||||||
int tmp = 0;
|
int tmp = 0;
|
||||||
ptrdiff_t str_it_width = 0;
|
ptrdiff_t str_it_width = 0;
|
||||||
@ -390,21 +391,25 @@ int buffer_printf(string_buffer_t *buffer, size_t buffer_row, char *buf, size_t
|
|||||||
return -1;
|
return -1;
|
||||||
old_value = *end;
|
old_value = *end;
|
||||||
*(CHAR_TYPE *)end = NULL_CHAR;
|
*(CHAR_TYPE *)end = NULL_CHAR;
|
||||||
|
set_old_value = 1;
|
||||||
|
|
||||||
str_it_width = STR_ITER_WIDTH(beg, end);
|
str_it_width = STR_ITER_WIDTH(beg, end);
|
||||||
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
||||||
return - 1;
|
goto clear;
|
||||||
|
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
||||||
|
|
||||||
*(CHAR_TYPE *)end = old_value;
|
*(CHAR_TYPE *)end = old_value;
|
||||||
|
set_old_value = 0;
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
||||||
return written;
|
return written;
|
||||||
|
|
||||||
clear:
|
clear:
|
||||||
|
if (set_old_value)
|
||||||
|
*(CHAR_TYPE *)end = old_value;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#undef CHAR_TYPE
|
#undef CHAR_TYPE
|
||||||
@ -468,6 +473,7 @@ int buffer_wprintf(string_buffer_t *buffer, size_t buffer_row, wchar_t *buf, siz
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int set_old_value = 0;
|
||||||
int written = 0;
|
int written = 0;
|
||||||
int tmp = 0;
|
int tmp = 0;
|
||||||
ptrdiff_t str_it_width = 0;
|
ptrdiff_t str_it_width = 0;
|
||||||
@ -482,21 +488,25 @@ int buffer_wprintf(string_buffer_t *buffer, size_t buffer_row, wchar_t *buf, siz
|
|||||||
return -1;
|
return -1;
|
||||||
old_value = *end;
|
old_value = *end;
|
||||||
*(CHAR_TYPE *)end = NULL_CHAR;
|
*(CHAR_TYPE *)end = NULL_CHAR;
|
||||||
|
set_old_value = 1;
|
||||||
|
|
||||||
str_it_width = STR_ITER_WIDTH(beg, end);
|
str_it_width = STR_ITER_WIDTH(beg, end);
|
||||||
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
if (str_it_width < 0 || content_width < (size_t)str_it_width)
|
||||||
return - 1;
|
goto clear;
|
||||||
|
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, content_style_tag));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINTF(buf + written, total_buf_len - written, SNPRINTF_FMT_STR, (int)(end - beg), beg));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, 1, reset_content_style_tag));
|
||||||
|
|
||||||
*(CHAR_TYPE *)end = old_value;
|
*(CHAR_TYPE *)end = old_value;
|
||||||
|
set_old_value = 0;
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, (content_width - (size_t)str_it_width), SPACE_CHAR));
|
||||||
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
CHCK_RSLT_ADD_TO_WRITTEN(SNPRINT_N_STRINGS(buf + written, total_buf_len - written, right, SPACE_CHAR));
|
||||||
return written;
|
return written;
|
||||||
|
|
||||||
clear:
|
clear:
|
||||||
|
if (set_old_value)
|
||||||
|
*(CHAR_TYPE *)end = old_value;
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#undef CHAR_TYPE
|
#undef CHAR_TYPE
|
||||||
|
Loading…
Reference in New Issue
Block a user