]> zoso.dev Git - buffer.git/commitdiff
Hex strings no longer need have even number of digits
authorVolker Mische <volker.mische@gmail.com>
Thu, 18 Jan 2018 23:44:15 +0000 (00:44 +0100)
committerVolker Mische <volker.mische@gmail.com>
Thu, 18 Jan 2018 23:45:24 +0000 (00:45 +0100)
If a hex string has an odd number of bytes, the last byte is just
ignored in Node.js.

index.js
test/node/test-buffer-alloc.js

index 6944c0594257d1f06137f2170d4d20cea3412b3d..a6d094af538a234aea9bf60671a3b0a3ee874740 100644 (file)
--- a/index.js
+++ b/index.js
@@ -752,9 +752,7 @@ function hexWrite (buf, string, offset, length) {
     }
   }
 
-  // must be an even number of digits
   var strLen = string.length
-  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
 
   if (length > strLen / 2) {
     length = strLen / 2
index c813a2325883bb55a2db19ae816d341c5663b62e..dd4799c0aff36310a0216f7c54739460444c6607 100644 (file)
@@ -516,13 +516,13 @@ assert.deepStrictEqual(Buffer.from(' YWJvcnVtLg', 'base64'),
     assert.strictEqual(hexb2[i], hexb[i]);
   }
 }
-/*
+
 // Test single hex character is discarded.
 assert.strictEqual(Buffer.from('A', 'hex').length, 0);
 
 // Test that if a trailing character is discarded, rest of string is processed.
 assert.deepStrictEqual(Buffer.from('Abx', 'hex'), Buffer.from('Ab', 'hex'));
-*/
+
 // Test single base64 char encodes as 0.
 assert.strictEqual(Buffer.from('A', 'base64').length, 0);