Author: rinrab
Date: Wed Apr  1 17:53:35 2026
New Revision: 1932710

Log:
svnbrowse: Use switch statement instead of if-else to process getch() input
data.

* subversion/svnbrowse/svnbrowse.c
  (sub_main): Change logical construction in the main event loop and
   forward-declare some variables.

Modified:
   subversion/trunk/subversion/svnbrowse/svnbrowse.c

Modified: subversion/trunk/subversion/svnbrowse/svnbrowse.c
==============================================================================
--- subversion/trunk/subversion/svnbrowse/svnbrowse.c   Wed Apr  1 17:47:29 
2026        (r1932709)
+++ subversion/trunk/subversion/svnbrowse/svnbrowse.c   Wed Apr  1 17:53:35 
2026        (r1932710)
@@ -166,14 +166,13 @@ sub_main(int *code, int argc, char *argv
 
   while (TRUE)
     {
-      int ch;
+      svn_browse__item_t *item;
+      const char *new_url;
 
       clear();
       ui_draw(&ctx, pool);
       refresh();
 
-      ch = getch();
-
       /* getch() reads the next character/key with the following additional
        * rules:
        * 1. as we configured it to use keypad(), arrows and other special keys
@@ -183,35 +182,37 @@ sub_main(int *code, int argc, char *argv
        * 3. The rest of keys remain as their equivalents on the current layout.
        * 4. If shift is held, they just become uppercased.
        */
-
-      if (ch == KEY_UP || ch == 'k')
-        {
-          ctx.selection--;
-        }
-      else if (ch == KEY_DOWN || ch == 'j')
-        {
-          ctx.selection++;
-        }
-      else if (ch == '\n' || ch == '\r')
-        {
-          svn_browse__item_t *item = APR_ARRAY_IDX(ctx.list, ctx.selection,
-                                                   svn_browse__item_t *);
-          const char *new_url = svn_relpath_join(ctx.relpath, item->relpath, 
pool);
-          SVN_ERR(enter_path(&ctx, new_url, pool));
-        }
-      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));
-        }
-      /* TODO: quit via escape. some say just check for 27, but it I think it's
-       * a bit ugly. */
-      else if (ch == 'q')
+      switch (getch())
         {
-          break;
+          case KEY_UP:
+          case 'k':
+            ctx.selection--;
+            break;
+          case KEY_DOWN:
+          case 'j':
+            ctx.selection++;
+            break;
+          case '\n':
+          case '\r':
+            item = APR_ARRAY_IDX(ctx.list, ctx.selection,
+                                 svn_browse__item_t *);
+            new_url = svn_relpath_join(ctx.relpath, item->relpath, pool);
+            SVN_ERR(enter_path(&ctx, new_url, pool));
+            break;
+          case KEY_BACKSPACE:
+          case '-':
+          case 'u':
+            new_url = svn_relpath_dirname(ctx.relpath, pool);
+            SVN_ERR(enter_path(&ctx, new_url, pool));
+            break;
+          /* TODO: quit via escape. some say just check for 27, but it I think 
it's
+           * a bit ugly. */
+          case 'q':
+            goto quit;
         }
     }
 
+quit:
        endwin();
 
   return SVN_NO_ERROR;

Reply via email to