changeset 26220:d757c9c87a58 v8.2.3641

patch 8.2.3641: xxd code has duplicate expressions Commit: https://github.com/vim/vim/commit/581f41adb3ba1dc95bf4fc7c434427e1203be5e8 Author: DungSaga <dungsaga@users.noreply.github.com> Date: Mon Nov 22 11:57:31 2021 +0000 patch 8.2.3641: xxd code has duplicate expressions Problem: Xxd code has duplicate expressions. Solution: Refactor to avoid duplication. (closes https://github.com/vim/vim/issues/9185)
author Bram Moolenaar <Bram@vim.org>
date Mon, 22 Nov 2021 13:00:05 +0100
parents 786b2a8ec970
children c296dd7d8ddc
files src/version.c src/xxd/xxd.c
diffstat 2 files changed, 8 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3641,
+/**/
     3640,
 /**/
     3639,
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -811,24 +811,16 @@ main(int argc, char *argv[])
     {
       if (p == 0)
 	{
-	  if (decimal_offset)
-		addrlen = sprintf(l, "%08ld:",
-				  ((unsigned long)(n + seekoff + displayoff)));
-	  else
-		addrlen = sprintf(l, "%08lx:",
+	  addrlen = sprintf(l, decimal_offset ? "%08ld:" : "%08lx:",
 				  ((unsigned long)(n + seekoff + displayoff)));
 	  for (c = addrlen; c < LLEN; l[c++] = ' ');
 	}
-      if (hextype == HEX_NORMAL)
+      if (hextype == HEX_NORMAL || hextype == HEX_LITTLEENDIAN)
 	{
-	  l[c = (addrlen + 1 + (grplen * p) / octspergrp)] = hexx[(e >> 4) & 0xf];
-	  l[++c]				  = hexx[ e       & 0xf];
-	}
-      else if (hextype == HEX_LITTLEENDIAN)
-	{
-	  int x = p ^ (octspergrp-1);
-	  l[c = (addrlen + 1 + (grplen * x) / octspergrp)] = hexx[(e >> 4) & 0xf];
-	  l[++c]				  = hexx[ e       & 0xf];
+	  int x = hextype == HEX_NORMAL ? p : p ^ (octspergrp-1);
+	  l[c = (addrlen + 1 + (grplen * x) / octspergrp)]
+	         = hexx[(e >> 4) & 0xf];
+	  l[++c] = hexx[e & 0xf];
 	}
       else /* hextype == HEX_BITS */
 	{