patch 9.0.2066: xxd: corrupting files when reversing bit dumps

Problem:  xxd: corrupting files when reversing bit dumps
Solution: handle reversing bit dump slightly differently

fixes:  #13410
closes: #13415

Co-authored-by: OldWorldOrdr <joey.t.reinhart@gmail.com>
Co-authored-by: K.Takata <kentkt@csc.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: K.Takata <kentkt@csc.jp>
Signed-off-by: tristhaus <tristhaus@yahoo.de>
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index 544aa50..94a0e61 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -136,7 +136,7 @@
 # endif
 #endif
 
-char version[] = "xxd 2023-10-08 by Juergen Weigert et al.";
+char version[] = "xxd 2023-10-24 by Juergen Weigert et al.";
 #ifdef WIN32
 char osver[] = " (Win32)";
 #else
@@ -418,19 +418,13 @@
             }
           else /* HEX_BITS */
             {
-              n1 = parse_hex_digit(c);
-              if (n1 >= 0)
-                {
-                  want_off = (want_off << 4) | n1;
-                }
-
-              if (bt < 0)
-                {
-                  p = 0;
+	      if (n1 < 0)
+	        {
+	          p = 0;
                   bcnt = 0;
-                  b = 0;
-                  continue;
-                }
+	          continue;
+	        }
+	      want_off = (want_off << 4) | n1;
             }
           continue;
         }