sled

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

чување afd404bcd7b642d77da85a69b90d859f2fb4ad55
родитељ 572558ba046784005e5b5bfc8bbb17ed0444caec
Аутор: Страхиња Радић <sr@strahinja.org>
Датум:   Fri, 17 Oct 2025 08:36:03 +0200

Fix errno handling and sled exit status to be consistent with manpage

Diffstat:
Msled.c | 6+++++-
измењених датотека: 1, додавања: 5(+), брисања: 1(-)

diff --git a/sled.c b/sled.c @@ -702,6 +702,7 @@ handle_key_event(struct tb_event* ev, struct DrawState* state) assert((state != NULL) && (ev != NULL)); state->error = ERR_NONE; + errno = 0; if (IN(state->mode, M_PROMPT)) { @@ -2025,6 +2026,7 @@ save_file(struct DrawState* state) char* pbuf = NULL; ssize_t bufsize = LINE_DEFAULT; int result = 0; + int saved_errno; assert(state != NULL); if (!(buf = calloc(bufsize, 1))) @@ -2126,10 +2128,12 @@ save_file_alloc_error: return 1; save_file_cleanup: + saved_errno = errno; if (output) fclose(output); free(buf); state->action = ACT_IDLE; + errno = saved_errno; return result; } @@ -3204,5 +3208,5 @@ main_done: free(wd); free(dir); free(rfn);*/ - return state.error ? CUSTOM_ERROR_START + state.error : saved_errno; + return saved_errno ? saved_errno : CUSTOM_ERROR_START + state.error; }