чување 6043742f7d8d15505ad7d81c5b974c56f6d1f251
родитељ 5c30e5c6c1a962e3099ef88e71e7caf19561925b
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Fri, 7 Apr 2023 19:27:45 +0200
table.c: Source code optimization - use goto to decrease indentation, move code common for all branches outside of the conditionals
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
| M | table.c | | | 99 | ++++++++++++++++++++++++++++++++++++++----------------------------------------- |
измењених датотека: 1, додавања: 48(+), брисања: 51(-)
diff --git a/table.c b/table.c
@@ -497,7 +497,7 @@ do_arg:
}
else
{
-continue_current_arg:
+ continue_current_arg:
if (cmd == CMD_COLUMNS)
{
if (set_columns(arg, &rune_columns))
@@ -855,62 +855,59 @@ done_input:
free(line);
/* Bottom border */
- if (output_lines)
+ if (!output_lines)
+ goto skip_bottom_border;
+
+ current_table_column = 0;
+ current_rune_column = 0;
+ column_start = 0;
+
+do_bottom_border:
+ if (current_table_column >= table_columns)
+ goto done_bottom_border;
+
+ if (current_rune_column == 0)
+ {
+ u8len = u32_char_to_u8(u8ch,
+ *table_symbols[current_symbol_set][6]);
+ column_start++;
+ }
+ else if (!within_column(column_start))
{
- current_table_column = 0;
- current_rune_column = 0;
- column_start = 0;
- while (current_table_column < table_columns)
+ if (current_table_column == table_columns - 1)
{
- if (current_rune_column == 0)
- {
- u8len = u32_char_to_u8(u8ch,
- *table_symbols[current_symbol_set][6]);
- u8ch[u8len] = 0;
- printf("%s", u8ch);
- column_start++;
- }
- else if (!within_column(column_start))
- {
- if (current_table_column == table_columns - 1)
- {
- u8len = u32_char_to_u8(u8ch,
- *table_symbols[current_symbol_set]
- [8]);
- u8ch[u8len] = 0;
- printf("%s", u8ch);
- current_table_column++;
- }
- else
- {
- u8len = u32_char_to_u8(u8ch,
- *table_inner_symbols
- [current_inner_symbol_set]
- [2]);
- u8ch[u8len] = 0;
- printf("%s", u8ch);
- column_start++;
- if (format)
- column_start += *(format
- + current_table_column);
- else
- column_start += format_value;
- current_table_column++;
- }
- }
+ u8len = u32_char_to_u8(u8ch,
+ *table_symbols[current_symbol_set][8]);
+ current_table_column++;
+ }
+ else
+ {
+ u8len = u32_char_to_u8(u8ch,
+ *table_inner_symbols[current_inner_symbol_set]
+ [2]);
+ column_start++;
+ if (format)
+ column_start
+ += *(format + current_table_column);
else
- {
- u8len = u32_char_to_u8(u8ch,
- *table_symbols[current_symbol_set][7]);
- u8ch[u8len] = 0;
- printf("%s", u8ch);
- }
- current_rune_column++;
+ column_start += format_value;
+ current_table_column++;
}
- printf("\n");
- output_lines++;
}
+ else
+ u8len = u32_char_to_u8(u8ch,
+ *table_symbols[current_symbol_set][7]);
+
+ u8ch[u8len] = 0;
+ printf("%s", u8ch);
+ current_rune_column++;
+ goto do_bottom_border;
+
+done_bottom_border:
+ printf("\n");
+ output_lines++;
+skip_bottom_border:
free(format);
if (pause)