From b87ddb0051b168ea45f8d49a610dcd069263336a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 7 Nov 2019 22:57:53 -0500 Subject: [PATCH] [PATCH] numerate_number: Support lower case hex. --- functions/numerate_number.c | 9 +++++--- test/test.answers | 44 ++++++++++++++++++------------------- test/test100/proof.answer | 2 +- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/functions/numerate_number.c b/functions/numerate_number.c index faf9070..4c5bf5c 100644 --- a/functions/numerate_number.c +++ b/functions/numerate_number.c @@ -110,11 +110,11 @@ int set_reader(char* set, int mult, char* input) int n = 0; int i = 0; int hold; - int negative_p = 0; + int negative_p = FALSE; if(input[0] == '-') { - negative_p = 1; + negative_p = TRUE; i = i + 1; } @@ -122,11 +122,14 @@ int set_reader(char* set, int mult, char* input) { n = n * mult; hold = index_number(set, toupper(input[i])); + + /* Input managed to change between in_set and index_number */ if(-1 == hold) return 0; n = n + hold; i = i + 1; } + /* loop exited before NULL and thus invalid input */ if(0 != input[i]) return 0; if(negative_p) @@ -152,7 +155,7 @@ int numerate_string(char *a) /* Deal with hex */ else if ('0' == a[0] && 'x' == a[1]) { - return set_reader("0123456789ABCDEF", 16, a+2); + return set_reader("0123456789ABCDEFabcdef", 16, a+2); } /* Deal with octal */ else if('0' == a[0]) diff --git a/test/test.answers b/test/test.answers index 13e7f8f..7f80960 100644 --- a/test/test.answers +++ b/test/test.answers @@ -53,10 +53,10 @@ a0ae067746e7a2b01d33950da1cf640e12c3a70a045ab331ea2025af59dec9af test/results/t 1154f39f25dcd6d914e9a542306f95280926baf985d011b2152c7ea0b87ab42d test/results/test10-knight-native-binary c1b5a2a3cd46c5e95e5540e871c2a916e028684ca80f51c001ef489342e27625 test/results/test10-knight-posix-binary b3e13d54aab689137628fb9c4487bfd8288f9bd18bef8fe756577c8d2dce1f1f test/results/test10-x86-binary -84ebfa33fd29253f72554f59eef878863f68f10c175ba3996cce3bd23f0f3e88 test/results/test100-amd64-binary -fc0b36996e626d2bbb72d4e48bc160409b0e4144160dd05d5213dc0765a3e364 test/results/test100-armv7l-binary -b5b72005ef3202419458eb21f7adf80404aee7906d7f9e8704a74da0c97dfca1 test/results/test100-knight-posix-binary -d1587c904f982d7e4da0f8acd59701754aca69efb08b8268358c797c7837d759 test/results/test100-x86-binary +e6b0b70497950f9ce46b3e75e31f4ba0ac23d16075d735d40f33f7c80e86c535 test/results/test100-amd64-binary +256ddb2d0dd6968af9461c814089ddd8ddc62125f14b061f3a52b1c2de753f87 test/results/test100-armv7l-binary +9bf9ffddf01ea313f92f3f8cc3f7987c2303582eff469bf140c6bb287741effa test/results/test100-knight-posix-binary +724fd8d3c47712ac572623292f54e84d96186a32e9ea62ab445b621075212531 test/results/test100-x86-binary 34e6d535e30ef8826a4ad1a4d08b76cfa370c54595599ad3be784b64c9cd8ec5 test/results/test11-amd64-binary 893695e6f300a0fe055fad935a56abd549bba70d1d39c535a680f41bbb73f117 test/results/test11-armv7l-binary 955b564d2c89abf2cfc6c80d766cd11479d146b828dec69e654b0958a62d5e6e test/results/test11-knight-native-binary @@ -94,10 +94,10 @@ a72e9d90e28aa70ba0877a89f224a8469e066958e76c3eec1abcf3b63275ba55 test/results/t 6aed160d00be97a25b0784a295fac4f5cd982b5f11db88a0a9ccfd8fcb648336 test/results/test18-knight-native-binary a349ede620824075e13967da7fd820fb6c470983797c1623658d9c7412411923 test/results/test18-knight-posix-binary 56f791e86536757d48990b870590c878c825f718c29af9628c02e73bfd6144ff test/results/test18-x86-binary -82d18c3a3f78447ea4f06803046d2f9606e4a92c13eeb780b5e74cc7b2c1ab83 test/results/test19-amd64-binary -57daf465660e9e789a14973ecae697639f05309251eca9fae17b6472b198c42a test/results/test19-armv7l-binary -d6341d6ed4f32b2631e6e83cb7635abc348512d6e34daaa54b0321c013236f34 test/results/test19-knight-posix-binary -6e53fecf3b6ef22c8b2d72a14e2b5cc4450ffcc72e847492fbc3d1398b48a349 test/results/test19-x86-binary +b0f1ff749f0ddc405af86db73cc3419f2778b264900ff736314baceac9908f69 test/results/test19-amd64-binary +1960ba445f1196db351d957ffc7848b7457c0cc377331d072797bd25dcc5fe11 test/results/test19-armv7l-binary +6ce1194d10113b7e43f60d31221852c7742b8e19a0ce14f75a0005907266d128 test/results/test19-knight-posix-binary +29902ee95385060d61eee2a6474375c95f156ada2ece6b6cce763e89ef1d4bde test/results/test19-x86-binary 15950e38bab2603bfcb369b9a4941abfc2e37b7cbbd2cf9b22ebfc9aab46d5ad test/results/test20-amd64-binary 80612ce05a2e43fceb34139577be98794505cd324ff5bc84ba004a21828b5f86 test/results/test20-armv7l-binary 7ae1ba10ff6b6bf34148945ee44b9461aa6d1a16094e77fdf34b76e9a360a5b2 test/results/test20-knight-native-binary @@ -107,24 +107,24 @@ b80de35e17d341cda9cd280437acb6b217841e18a5b01faf86ca461f6bf0d246 test/results/t 23ad3fc1acc3741e32964e6ebcc206716a6d8ba9fabf4ffa872a382621b7b2a9 test/results/test21-armv7l-binary 3247980035c27673a914a6568fdc4075fe721bf1e1006a19886d1ece529187cb test/results/test21-knight-posix-binary f5d6430d6fade0d4acdaeda1662d9bfdeff881a75e2c877dc738f3485ddb4e63 test/results/test21-x86-binary -70b94034555223384ca3f3b880e8b1fc5a67061bb56af7d55f123bd7dd94ebb2 test/results/test22-amd64-binary -105797f9e513efad844d2db800a962efe3ab3d5b97cf7d84616726fed6985099 test/results/test22-armv7l-binary -7c6113b7564116d594de33f732c76cc517d3a5119ec8f1e8b48f0bb63bd31bc0 test/results/test22-knight-posix-binary -3f3f2a5e2b6c9d6cb31e2c3f63de43138114337efcc7ef8aa11bdc8ec3e8e683 test/results/test22-x86-binary -43a8ca0d8556fbc7f3e0d5e985ec7d5e54077e986e92d2befd2caf8f78e79619 test/results/test23-amd64-binary -36e1ba6de3a5941c1a289221239183c6f039a5c63ba47da5cab6b9594a6320e7 test/results/test23-armv7l-binary -f006c171274e9c7cb63dd9d34ab909cdaccba8bb610dd731c365ed66eae1ed5b test/results/test23-knight-posix-binary -a389de306f9c313037759afc10fed2c23beb2e193a4a39f56fec0f2deff48b14 test/results/test23-x86-binary +fb8c7ef0a5d511efa02fd77e6f8cd55d88554737c4914e1aaa423fef94dad6e7 test/results/test22-amd64-binary +8a2dbf66b8c89c4be1bb3b03ffe2e5a6a3a3b0a0991e88d381f672b13d159e9d test/results/test22-armv7l-binary +308cbf387fd7c78c180e456683295ef85a69675678299114ebe6a9eb1c37fc82 test/results/test22-knight-posix-binary +c2b54fabc592104ab0b26389191f47ba29ea0d4fc216e8fb28b314582134f532 test/results/test22-x86-binary +81d9c5764a3e1433f8ca99a551da0e6b9959f6d1d39e94c56d91fb5513ff5887 test/results/test23-amd64-binary +8dfe0e371dec2a71448b1034b30534b6fcf8b08efa87fb0700718577173f7988 test/results/test23-armv7l-binary +304a07a1de7332e43f0ee8c0ff8104dee6906e32b18cd7d3088dcdc187456b40 test/results/test23-knight-posix-binary +b3b6ec4e0c27d0f763dbf81401d829cdb110f048f18ba461081739d533d778e3 test/results/test23-x86-binary 44d06216e0bf9c2f8dfcb6684f6f6c0c0276f73c78c36a96454be84c8dc066af test/results/test24-amd64-binary 2c78c4dd802d801109f4deaa760bc8fa2331d035c36caf22b9cd74a060532167 test/results/test24-armv7l-binary 8502002b30ac65df6444119d065a514cb0f51894a32f695ce4bc470b3f108bb9 test/results/test24-knight-posix-binary adb392ddd4f3daab1a9afc1eb0bf00cb388a6c45db7754f8455f39757e7f62f6 test/results/test24-x86-binary -f8efe8d78c458a59eb3ef9d642b446b159689665211551775f599e73c5a8e99b test/results/test25-amd64-binary -5d39e4484fbdd6540e4b5c0ad756e77d20dedfe9ba7ced718588b29190a1ff3a test/results/test25-armv7l-binary -a8b4316255eb38a842b2d9df54d7809d9506ca1aefc50a8d928ba2559778cb0e test/results/test25-x86-binary -29c366179d2201be0308cd574257dce4234f8493e2784ae241c355a672a929a3 test/results/test26-amd64-binary -80187b68f22bb97966b29fb2b107a2bfce44ad0becec8e36ca4543c0cab936cb test/results/test26-armv7l-binary -518f484a9535ef616237ab9beb9c761f4d8520b3740e902c84618bcedb469bff test/results/test26-x86-binary +0aabcf5b94f95de30a69aa9e41cb5d2c50a17bf8a0efd4f39eef8df07c8111e3 test/results/test25-amd64-binary +32413f9e44359d121301b36dcda32890ba49cd67e4e9caefe98f8117be4ce224 test/results/test25-armv7l-binary +82c956e3a040d34f6328bd5f22d53c02696500806a6a27b41c8f654143827c5c test/results/test25-x86-binary +4789d259acb33098d3280b74c845ef703a09107f90856e1849401aa2ba352d23 test/results/test26-amd64-binary +6b59f96ccead5c9541a9c3e4be5ec154e96914c548662a1ace5b0d68ef16c215 test/results/test26-armv7l-binary +5e49db8b34f658113a06f38e26691bc78ef27ba11698d407cf304ab3c2342f5b test/results/test26-x86-binary 717c42e1a1a91ef5b67ce298bc92a148418a5dec6761a358a52b22a01f16c928 test/results/test99-amd64-binary 4e759b212b087824f7b0f14c5147272c9984c4a4d00074b2fd771c3d004c9aec test/results/test99-armv7l-binary dcc61bc8c785d59b2bdf61c97eb6fac877410cde5b8d46e53907ad569020b004 test/results/test99-knight-native-binary diff --git a/test/test100/proof.answer b/test/test100/proof.answer index 1ee1aae..571fb8a 100644 --- a/test/test100/proof.answer +++ b/test/test100/proof.answer @@ -1 +1 @@ -ad3e4a5a74b8d7f2c823ffca106e96bfab121083feea8660c887e2294bdc0fb2 test/test100/proof +2920e77d7f257741943e804ccadd44bc2a91494f0840cbe22756343511787412 test/test100/proof