poe

Уређивач .po фајлова
git clone https://git.sr.ht/~strahinja/poe
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 87ef5b164c3ec8491f81380cb7a8a474a9ed0c5d
родитељ 006680fded4a1fffc5b86983425524e6eb12c77c
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Wed,  8 Nov 2023 20:10:23 +0100

Sort functions; remove redundant msgid_to_real_msgid and commented old code

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mpoe.c | 113+++++++++++++++++++++++++++----------------------------------------------------
измењених датотека: 1, додавања: 38(+), брисања: 75(-)

diff --git a/poe.c b/poe.c @@ -39,9 +39,10 @@ struct DrawState* join_lines(struct DrawState* state, size_t first_line, int forward); struct BufferLine* load_info(struct DrawState* state); struct BufferLine* load_msgstr(struct DrawState* state); -size_t msgid_to_real_msgid(struct DrawState* state, const size_t msgid); +size_t next_msgid(struct DrawState* state, const int delta); void overwrite_copy_msgid_callback(struct DrawState* state, struct tb_event* ev); void overwrite_paste_callback(struct DrawState* state, struct tb_event* ev); +size_t prev_msgid(struct DrawState* state, const int delta); int print_error(const int code, const char* msg, ...); void quit_callback(struct DrawState* state, struct tb_event* ev); size_t real_msgid_to_display_msgid(const struct DrawState* state); @@ -483,62 +484,6 @@ load_info(struct DrawState* state) return state->info_buffer; } -size_t -next_msgid(struct DrawState* state, const int delta) -{ - size_t ret = state->msgid_number; - size_t start = ret; - - while (ret < state->real_msgid_count + 1) - { - ret++; - if (!state->entries[ret - 1].obsolete && ret >= start + delta) - break; - } - - return ret == state->real_msgid_count + 1 ? state->real_msgid_count - : ret; -} - -size_t -prev_msgid(struct DrawState* state, const int delta) -{ - size_t ret = state->msgid_number; - size_t start = ret; - - if (start < delta) - return state->real_msgid_count ? 1 : 0; - - while (ret > 1) - { - ret--; - if (!state->entries[ret - 1].obsolete && ret <= start - delta) - break; - } - - return ret; -} - -size_t -msgid_to_real_msgid(struct DrawState* state, const size_t msgid) -{ - size_t ret = 0; - size_t i = 0; - - do - { - if (!state->entries[ret].obsolete) - { - if (i == msgid) - return ret; - i++; - } - ret++; - } while (ret < state->real_msgid_count); - - return 0; -} - struct BufferLine* load_msgstr(struct DrawState* state) { @@ -603,6 +548,23 @@ load_msgstr(struct DrawState* state) return state->input_buffer; } +size_t +next_msgid(struct DrawState* state, const int delta) +{ + size_t ret = state->msgid_number; + size_t start = ret; + + while (ret < state->real_msgid_count + 1) + { + ret++; + if (!state->entries[ret - 1].obsolete && ret >= start + delta) + break; + } + + return ret == state->real_msgid_count + 1 ? state->real_msgid_count + : ret; +} + void overwrite_copy_msgid_callback(struct DrawState* state, struct tb_event* ev) { @@ -619,6 +581,25 @@ overwrite_paste_callback(struct DrawState* state, struct tb_event* ev) state->prompt_callback = NULL; } +size_t +prev_msgid(struct DrawState* state, const int delta) +{ + size_t ret = state->msgid_number; + size_t start = ret; + + if (start < delta) + return state->real_msgid_count ? 1 : 0; + + while (ret > 1) + { + ret--; + if (!state->entries[ret - 1].obsolete && ret <= start - delta) + break; + } + + return ret; +} + int print_error(const int code, const char* msg, ...) { @@ -1324,16 +1305,6 @@ move_list_page_down(struct DrawState* state) { *state->error = 0; goto_msgid(state, next_msgid(state, state->maxy - 2)); - /*if (state->msgid_number < state->msgid_count - state->maxy - 2) - { - state->msgid_number += state->maxy - 2; - if (state->msgid_number - state->first_shown_msgid - > state->maxy - 2) - state->first_shown_msgid - = state->msgid_number - (state->maxy - 2); - } - else - return move_list_end(state);*/ return 0; } @@ -1342,14 +1313,6 @@ move_list_page_up(struct DrawState* state) { *state->error = 0; goto_msgid(state, prev_msgid(state, state->maxy - 2)); - /*if (state->msgid_number > state->maxy - 2) - { - state->msgid_number -= state->maxy - 2; - if (state->msgid_number < state->first_shown_msgid) - state->first_shown_msgid = state->msgid_number; - } - else - return move_list_start(state);*/ return 0; }