Hi, I took a look at svnbrowse today and it is coming together nicely! Of course I had to try to break it as well... I suppose you are already aware but it would make life easier when testing if we could sort this out.
I picked a random commit trying to explain. Den ons 1 apr. 2026 kl 22:53 skrev <[email protected]>: ... > > static svn_error_t * > sub_main(int *code, int argc, char *argv[], apr_pool_t *pool) > { > ...sub_main initializes the screen... > /* init the display */ > initscr(); > > Then later on when processing some keypresses, we call SVN_ERR() > + else if (ch == KEY_BACKSPACE || ch == '-' || ch == 'u') > + { > + const char *new_url = svn_relpath_dirname(ctx.relpath, pool); > + SVN_ERR(enter_path(&ctx, new_url, pool)); > + } > SVN_ERR return whenever there is an error. This leads to quit: endwin(); never being executed, thus leaving the terminal in an unusable state. (`reset` works fine to restore it). I initially thought about a global variable and moving endwin() to the proper main(), but thinking twice it might be better to just move the keypress processing loop to its own function. Thoughts? /Daniel

