tidying before spiffy decode is merged
diff --git a/Makefile b/Makefile
index e1659ce..1f9b580 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@
 CC=cc
 #CC=/usr/local/bin/gcc-9
 
-CFLAGS=-I inc -I test -Os -fPIC $(CMD_LINE)
+CFLAGS=$(CMD_LINE) -I inc -I test -Os -fPIC 
 
 # The following are used before a release of QCBOR help to make sure
 # the code compiles and runs in the most strict environments, but not
diff --git a/QCBOR.xcodeproj/project.pbxproj b/QCBOR.xcodeproj/project.pbxproj
index 1155fdb..1983591 100644
--- a/QCBOR.xcodeproj/project.pbxproj
+++ b/QCBOR.xcodeproj/project.pbxproj
@@ -55,6 +55,7 @@
 		E776E090214AE07500E67947 /* UsefulBuf.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08D214AE07500E67947 /* UsefulBuf.c */; };
 		E776E091214AE07500E67947 /* qcbor_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E08E214AE07500E67947 /* qcbor_decode.c */; };
 		E776E097214AE0C700E67947 /* cmd_line_main.c in Sources */ = {isa = PBXBuildFile; fileRef = E776E096214AE0C700E67947 /* cmd_line_main.c */; };
+		E7864766252CE63100A0C11B /* qcbor_err_to_str.c in Sources */ = {isa = PBXBuildFile; fileRef = E7864765252CE63100A0C11B /* qcbor_err_to_str.c */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXCopyFilesBuildPhase section */
@@ -112,7 +113,7 @@
 		E73B575D2161CA7C0080D658 /* half_to_double_from_rfc7049.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = half_to_double_from_rfc7049.c; path = test/half_to_double_from_rfc7049.c; sourceTree = "<group>"; };
 		E73B57632161F8F70080D658 /* run_tests.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.c; name = run_tests.c; path = test/run_tests.c; sourceTree = "<group>"; tabWidth = 3; };
 		E73B57642161F8F80080D658 /* run_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = run_tests.h; path = test/run_tests.h; sourceTree = "<group>"; };
-		E743D0E124AC516D0017899F /* example.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = example.c; sourceTree = "<group>"; };
+		E743D0E124AC516D0017899F /* example.c */ = {isa = PBXFileReference; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = example.c; sourceTree = "<group>"; tabWidth = 3; };
 		E743D0F224AC54600017899F /* example.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = example.h; sourceTree = "<group>"; };
 		E743D10824CEDE2D0017899F /* qcbor_spiffy_decode.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_spiffy_decode.h; path = inc/qcbor/qcbor_spiffy_decode.h; sourceTree = "<group>"; tabWidth = 3; };
 		E743D11B24DD4EF50017899F /* QCBOR_Disable_HW_Float */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QCBOR_Disable_HW_Float; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -128,6 +129,7 @@
 		E776E094214AE09700E67947 /* UsefulBuf.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = UsefulBuf.h; path = inc/UsefulBuf.h; sourceTree = "<group>"; tabWidth = 3; };
 		E776E096214AE0C700E67947 /* cmd_line_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cmd_line_main.c; sourceTree = "<group>"; };
 		E776E161214EE19C00E67947 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
+		E7864765252CE63100A0C11B /* qcbor_err_to_str.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qcbor_err_to_str.c; path = src/qcbor_err_to_str.c; sourceTree = "<group>"; };
 		E78C91DE240C90C100F4CECE /* qcbor_decode.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_decode.h; path = inc/qcbor/qcbor_decode.h; sourceTree = "<group>"; tabWidth = 3; };
 		E78C91DF240C90C100F4CECE /* qcbor_common.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_common.h; path = inc/qcbor/qcbor_common.h; sourceTree = "<group>"; tabWidth = 3; };
 		E78C91E0240C90C100F4CECE /* qcbor_private.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 3; lastKnownFileType = sourcecode.c.h; name = qcbor_private.h; path = inc/qcbor/qcbor_private.h; sourceTree = "<group>"; tabWidth = 3; };
@@ -209,6 +211,7 @@
 				E776E08D214AE07500E67947 /* UsefulBuf.c */,
 				E73B57582161CA690080D658 /* ieee754.c */,
 				E73B57572161CA680080D658 /* ieee754.h */,
+				E7864765252CE63100A0C11B /* qcbor_err_to_str.c */,
 			);
 			name = src;
 			sourceTree = "<group>";
@@ -417,6 +420,7 @@
 			files = (
 				E776E08F214AE07500E67947 /* qcbor_encode.c in Sources */,
 				E73B57592161CA690080D658 /* ieee754.c in Sources */,
+				E7864766252CE63100A0C11B /* qcbor_err_to_str.c in Sources */,
 				E73B575F2161CA7C0080D658 /* half_to_double_from_rfc7049.c in Sources */,
 				E73B57652161F8F80080D658 /* run_tests.c in Sources */,
 				E776E091214AE07500E67947 /* qcbor_decode.c in Sources */,
diff --git a/README.md b/README.md
index c7e53bb..edf5021 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,8 @@
 ## New Version With Spiffy Decode
 **A major new version of QCBOR that makes decoding implementations much**
 **easier is available in the SpiffyDecode branch of this repository.**
-**Your CBOR decoding implementation may be four times less code!**
-**It needs a little more test to be high enough quality for the master branch.** 
+**Your CBOR decoding implementation may be many times fewer lines of code!**
+**The old version is available in the BeforeSpiffyDecode branch.**
 
 This new version of QCBOR adds a more powerful decoding API
 called Spiffy Decode. 
@@ -58,7 +58,8 @@
   discipline for very safe coding and handling of binary data.
 
 **Small code size** – When optimized for size using the compiler -Os
-  option, 64-bit x86 code is about 4KB in its smallest configuration. 
+  option, 64-bit x86 code is about 4KB in its smallest configuration
+  and when only basic functionality is used. 
 
 **Clear documented public interface** – The public interface is
   separated from the implementation. It can be put to use without
@@ -181,6 +182,8 @@
 mixed definite and indefinte maps and arrays. (Some work remains to
 support map searching with indefinite length strings.)
 
+See the PR in GitHub for a more detailed list of changes.
+
 ### Uncompatible Changes
 
 Encoding of MIME tags now uses tag 257 instead of 36. Tag 257 accommodates
diff --git a/SpiffyDiffs.md b/SpiffyDiffs.md
deleted file mode 100644
index 64e53d4..0000000
--- a/SpiffyDiffs.md
+++ /dev/null
@@ -1,2 +0,0 @@
-#  <#Title#>
-
diff --git a/TRY SPIFFY DECODE.md b/TRY SPIFFY DECODE.md
deleted file mode 100644
index 2f0c4a4..0000000
--- a/TRY SPIFFY DECODE.md
+++ /dev/null
@@ -1,40 +0,0 @@
-#  Try Spiffy Decode
-
-A major new version of QCBOR has Spiffy Decode which makes it much easier to 
-implement CBOR decoding.
-
-The decoding implementation of a protocol looks like the encoding implementation:
-
-     /* Encode */
-     QCBOREncode_Init(&EncodeCtx, Buffer);
-     QCBOREncode_OpenMap(&EncodeCtx);
-     QCBOREncode_AddTextToMap(&EncodeCtx, "Manufacturer", pE->Manufacturer);
-     QCBOREncode_AddInt64ToMap(&EncodeCtx, "Displacement", pE->uDisplacement);
-     QCBOREncode_AddInt64ToMap(&EncodeCtx, "Horsepower", pE->uHorsePower);
-     QCBOREncode_CloseMap(&EncodeCtx);
-     uErr = QCBOREncode_Finish(&EncodeCtx, &EncodedEngine);
-  
-     /* Decode */
-     QCBORDecode_Init(&DecodeCtx, EncodedEngine, QCBOR_DECODE_MODE_NORMAL);
-     QCBORDecode_EnterMap(&DecodeCtx);
-     QCBORDecode_GetTextStringInMapSZ(&DecodeCtx, "Manufacturer", &(pE->Manufacturer));
-     QCBORDecode_GetInt64InMapSZ(&DecodeCtx, "Displacement", &(pE->uDisplacement));
-     QCBORDecode_GetInt64InMapSZ(&DecodeCtx, "Horsepower", &(pE->uHorsePower));
-     QCBORDecode_ExitMap(&DecodeCtx);
-     uErr = QCBORDecode_Finish(&DecodeCtx);
-
-With the previous decoding API (which is still supported), the decode implementation 
-is 5-10 times longer.
-
-While the QCBOR library is larger, it reduces the object code needed to call it by a lot,
-so if you have to decode multiple maps, overall object code is likely to go down.
-
-While this new version is backwards compatible, it is a large change so it is not
-yet merged into the QCBOR master. It needs more testing before that happens.
-
-This new version is in SpiffyDecode branch so you have to explicitly go and get that branch.
-
-This version also improves tag handling a lot, adds duplicate map label detection and fixes
-some bugs with CBOR that is a combination of definite and indefinite lengths.
-
-