diff --git a/cmd_line_main.c b/cmd_line_main.c
index 22817dd..b5e894d 100644
--- a/cmd_line_main.c
+++ b/cmd_line_main.c
@@ -1,46 +1,22 @@
 /*==============================================================================
- cmd_line_mainc.c -- Runs tests for QCBOR encoder / decoder
+  cmd_line_mainc.c -- Runs tests for QCBOR encoder / decoder
 
- Created on 9/13/18.
-
- Copyright (c) 2018-2019, Laurence Lundblade.
- All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-    * Neither the name of The Linux Foundation nor the names of its
-      contributors, nor the name "Laurence Lundblade" may be used to
-      endorse or promote products derived from this software without
-      specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Copyright (c) 2018-2019, Laurence Lundblade. All rights reserved.
+ 
+ SPDX-License-Identifier: BSD-3-Clause
+ 
+ See BSD-3-Clause license in README.md
+ 
+ Created on 9/13/18
  ==============================================================================*/
 
-
 #include <stdio.h>
 #include "run_tests.h"
 
 
 /*
  This is an implementation of OutputStringCB built using stdio. If
- you don't have stdio, replaces this is
+ you don't have stdio, replaces this.
  */
 static void fputs_wrapper(const char *szString, void *pOutCtx, int bNewLine)
 {
