[F] Fixed logic error in case of error
This commit is contained in:
		
							
								
								
									
										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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 seleznevae
					seleznevae