Revision: 77550
          http://sourceforge.net/p/brlcad/code/77550
Author:   starseeker
Date:     2020-10-22 17:43:07 +0000 (Thu, 22 Oct 2020)
Log Message:
-----------
Merge from trunk through r77549 to make comparisons easier

Modified Paths:
--------------
    brlcad/branches/thirdparty_rework/NEWS
    brlcad/branches/thirdparty_rework/bench/run.sh
    brlcad/branches/thirdparty_rework/doc/notes/c_cxx_patterns/CMakeLists.txt
    brlcad/branches/thirdparty_rework/include/bn/plot3.h
    brlcad/branches/thirdparty_rework/include/brep/defines.h
    brlcad/branches/thirdparty_rework/include/bu/file.h
    brlcad/branches/thirdparty_rework/misc/CMake/CMakeLists.txt
    brlcad/branches/thirdparty_rework/misc/repoconv/checkout_dercs.sh
    brlcad/branches/thirdparty_rework/misc/tools/astyle/CMakeLists.txt
    brlcad/branches/thirdparty_rework/misc/tools/debug2c/CMakeLists.txt
    brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMakeLists.txt
    brlcad/branches/thirdparty_rework/misc/tools/env2c/CMakeLists.txt
    brlcad/branches/thirdparty_rework/misc/tools/xmltools/CMakeLists.txt
    brlcad/branches/thirdparty_rework/regress/repository/repocheck.cpp
    
brlcad/branches/thirdparty_rework/src/conv/step/step-g/OpenNurbsInterfaces.cpp
    brlcad/branches/thirdparty_rework/src/external/Creo/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/external/Cubit/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/external/Unigraphics/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/gtools/tests/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/gtools/tests/bigdb.c
    brlcad/branches/thirdparty_rework/src/libbn/plot3.c
    brlcad/branches/thirdparty_rework/src/libbn/tests/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/libbu/file.c
    
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.c
    brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.h
    brlcad/branches/thirdparty_rework/src/libged/exec.cpp
    brlcad/branches/thirdparty_rework/src/libged/ged_init.cpp
    brlcad/branches/thirdparty_rework/src/libged/tests/plugins.cpp
    brlcad/branches/thirdparty_rework/src/libtclcad/auto_path.c
    brlcad/branches/thirdparty_rework/src/mged/attach.c
    brlcad/branches/thirdparty_rework/src/other/gct/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/other/libutahrle/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/other/poly2tri/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/other/tktable/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/tclscripts/mged/bindings.tcl

Added Paths:
-----------
    brlcad/branches/thirdparty_rework/src/libbn/tests/invalid.plot3
    brlcad/branches/thirdparty_rework/src/libbn/tests/plot3.c
    brlcad/branches/thirdparty_rework/src/libbn/tests/valid.plot3

Property Changed:
----------------
    brlcad/branches/thirdparty_rework/
    brlcad/branches/thirdparty_rework/NEWS
    brlcad/branches/thirdparty_rework/bench/
    brlcad/branches/thirdparty_rework/doc/
    brlcad/branches/thirdparty_rework/include/
    brlcad/branches/thirdparty_rework/regress/
    brlcad/branches/thirdparty_rework/src/libbu/
    brlcad/branches/thirdparty_rework/src/other/

Index: brlcad/branches/thirdparty_rework
===================================================================
--- brlcad/branches/thirdparty_rework   2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework   2020-10-22 17:43:07 UTC (rev 77550)

Property changes on: brlcad/branches/thirdparty_rework
___________________________________________________________________
Modified: svn:mergeinfo
## -11,4 +11,4 ##
 /brlcad/branches/osg:62110-62113
 /brlcad/branches/prep-cache:68236-68933
 /brlcad/branches/tcltk86:68300-75257
-/brlcad/trunk:75098-75115,75241-77472
\ No newline at end of property
+/brlcad/trunk:75098-75115,75241-77549
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/NEWS
===================================================================
--- brlcad/branches/thirdparty_rework/NEWS      2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/NEWS      2020-10-22 17:43:07 UTC (rev 
77550)
@@ -13,6 +13,8 @@
 --- 2020-xx-xx  Release 7.32.2                                     ---
 ----------------------------------------------------------------------
 
+* fixed MGED crash closing multiple rt views on Windows - Cliff Yapp
+* fixed 'n' key binding override with MGED key forwarding - Cliff Yapp
 * fixed mged crash when there are no display managers - Sean Morrison
 * added pixcmp -n length flag for subset comparisons - Sean Morrison
 * added pixcmp -s same and -d different printing flags - Sean Morrison


Property changes on: brlcad/branches/thirdparty_rework/NEWS
___________________________________________________________________
Modified: svn:mergeinfo
## -9,4 +9,4 ##
 /brlcad/branches/osg/NEWS:62110-62113
 /brlcad/branches/prep-cache/NEWS:68236-68933
 /brlcad/branches/tcltk86/NEWS:68300-75257
-/brlcad/trunk/NEWS:75241-77302,77321-77472
\ No newline at end of property
+/brlcad/trunk/NEWS:75241-77302,77321-77526
\ No newline at end of property
Index: brlcad/branches/thirdparty_rework/bench
===================================================================
--- brlcad/branches/thirdparty_rework/bench     2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/bench     2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/bench
___________________________________________________________________
Modified: svn:mergeinfo
## -8,4 +8,4 ##
 /brlcad/branches/osg/bench:62110-62113
 /brlcad/branches/prep-cache/bench:68236-68933
 /brlcad/branches/tcltk86/bench:68300-75257
-/brlcad/trunk/bench:75241-77472
\ No newline at end of property
+/brlcad/trunk/bench:75241-77526
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/bench/run.sh
===================================================================
--- brlcad/branches/thirdparty_rework/bench/run.sh      2020-10-22 17:22:48 UTC 
(rev 77549)
+++ brlcad/branches/thirdparty_rework/bench/run.sh      2020-10-22 17:43:07 UTC 
(rev 77550)
@@ -613,7 +613,8 @@
 fi
 
 # sanity check: make sure $CMP runs
-out=`echo '\n\n\n\n\n' | eval \"$CMP\" - - 2>&1`
+out=`eval \"$CMP\" - - 2>&1 <<EOF
+EOF`
 ret=$?
 if test ! "x${ret}" = "x0" ; then
     $ECHO

Index: brlcad/branches/thirdparty_rework/doc
===================================================================
--- brlcad/branches/thirdparty_rework/doc       2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/doc       2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/doc
___________________________________________________________________
Modified: svn:mergeinfo
## -9,4 +9,4 ##
 /brlcad/branches/osg/doc:62110-62113
 /brlcad/branches/prep-cache/doc:68236-68933
 /brlcad/branches/tcltk86/doc:68300-75257
-/brlcad/trunk/doc:75098-75115,75241-77472
\ No newline at end of property
+/brlcad/trunk/doc:75098-75115,75241-77472,77527-77549
\ No newline at end of property
Modified: 
brlcad/branches/thirdparty_rework/doc/notes/c_cxx_patterns/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/doc/notes/c_cxx_patterns/CMakeLists.txt   
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/doc/notes/c_cxx_patterns/CMakeLists.txt   
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 project(EXAMPLES)
 if(NOT MSVC)
   add_definitions(-g)

Index: brlcad/branches/thirdparty_rework/include
===================================================================
--- brlcad/branches/thirdparty_rework/include   2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/include   2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/include
___________________________________________________________________
Modified: svn:mergeinfo
## -10,4 +10,4 ##
 /brlcad/branches/osg/include:62110-62113
 /brlcad/branches/prep-cache/include:68236-68933
 /brlcad/branches/tcltk86/include:68300-75257
-/brlcad/trunk/include:75098-75115,75241-77232,77321-77472
\ No newline at end of property
+/brlcad/trunk/include:75098-75115,75241-77232,77321-77549
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/include/bn/plot3.h
===================================================================
--- brlcad/branches/thirdparty_rework/include/bn/plot3.h        2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/include/bn/plot3.h        2020-10-22 
17:43:07 UTC (rev 77550)
@@ -40,7 +40,6 @@
 #include "bu/color.h"
 #include "bu/file.h"
 #include "bn/defines.h"
-#include "bn/plot3.h"
 
 __BEGIN_DECLS
 
@@ -232,6 +231,9 @@
                               const vect_t dir,
                               double t);
 
+
+BN_EXPORT extern int plot3_invalid(FILE *fp, int mode);
+
 /*
  *  The following routines are taken from the BRL TIG-PACK
  *  (Terminal Independent Plotting Package).

Modified: brlcad/branches/thirdparty_rework/include/brep/defines.h
===================================================================
--- brlcad/branches/thirdparty_rework/include/brep/defines.h    2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/include/brep/defines.h    2020-10-22 
17:43:07 UTC (rev 77550)
@@ -50,9 +50,6 @@
 #if defined(__GNUC__) && !defined(__clang__)
 #  pragma GCC diagnostic ignored "-Wclass-memaccess"
 #endif
-#if defined(__clang__)
-#  pragma clang diagnostic ignored "-Wclass-memaccess"
-#endif
 
 /* don't let opennurbs include windows.h */
 #define ON_NO_WINDOWS 1

Modified: brlcad/branches/thirdparty_rework/include/bu/file.h
===================================================================
--- brlcad/branches/thirdparty_rework/include/bu/file.h 2020-10-22 17:22:48 UTC 
(rev 77549)
+++ brlcad/branches/thirdparty_rework/include/bu/file.h 2020-10-22 17:43:07 UTC 
(rev 77550)
@@ -51,7 +51,8 @@
  * Returns truthfully whether the given file path exists or not.  An
  * empty or NULL path name is treated as a non-existent file and, as
  * such, will return false.  If fd is non-NULL, it will be set to a
- * read-only open file descriptor for the provided path.
+ * read-only open file descriptor for the provided path.  If path is
+ * "-", fd is set to standard input's file descriptor if provided.
  *
  * @return >0 The given filename exists.
  * @return 0 The given filename does not exist.

Modified: brlcad/branches/thirdparty_rework/misc/CMake/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/CMakeLists.txt 2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/CMake/CMakeLists.txt 2020-10-22 
17:43:07 UTC (rev 77550)
@@ -90,6 +90,8 @@
   multiconfig_path_clean.cmake.in
   multiconfig_path_read.cmake.in
   source_archive_setup.cmake.in
+  scripts/timestamp.cmake
+  scripts/printtime.cmake
   )
 CMAKEFILES(${cmake_ignore_files})
 

Modified: brlcad/branches/thirdparty_rework/misc/repoconv/checkout_dercs.sh
===================================================================
--- brlcad/branches/thirdparty_rework/misc/repoconv/checkout_dercs.sh   
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/repoconv/checkout_dercs.sh   
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,10 +1,10 @@
 #!/bin/bash
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Date:[^$;"]*/$Date/' {} \;
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Header:[^$;"]*/$Header/' {} \;
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Id:[^$;"]*/$Id/' {} \;
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Log:[^$;"]*/$Log/' {} \;
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Revision:[^$;"]*/$Revision/' {} \;
-find . -type f ! -path "*/misc/*" ! -path "*/src/other/stepcode/*" ! -path 
"*/src/other/step/*" ! -path "*/src/conv/step/*" ! -path "*/ap242.exp" -exec 
sed -i 's/$Source:[^$;"]*/$Source/' {} \;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 's/$Date:[^$;"]*/$Date/' 
{} \;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 
's/$Header:[^$;"]*/$Header/' {} \;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 's/$Id:[^$;"]*/$Id/' {} 
\;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 's/$Log:[^$;"]*/$Log/' 
{} \;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 
's/$Revision:[^$;"]*/$Revision/' {} \;
+find . -type f ! -path "*/misc/*" ! -path "*/src/superbuild/stepcode/*" ! 
-path "*/src/other/*stepcode/*" ! -path "*/src/other/step/*" ! -path 
"*/src/conv/step/*" ! -path "*/ap242.exp" -exec sed -i 
's/$Source:[^$;"]*/$Source/' {} \;
 find . -type f -path "*/re2c/*" -exec sed -i 's/$Date:[^$;"]*/$Date/' {} \;
 find . -type f -path "*/re2c/*" -exec sed -i 's/$Header:[^$;"]*/$Header/' {} \;
 find . -type f -path "*/re2c/*" -exec sed -i 's/$Id:[^$;"]*/$Id/' {} \;

Modified: brlcad/branches/thirdparty_rework/misc/tools/astyle/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/astyle/CMakeLists.txt  
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/tools/astyle/CMakeLists.txt  
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,5 +1,5 @@
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # Set CMake project name
 project(ASTYLE)

Modified: brlcad/branches/thirdparty_rework/misc/tools/debug2c/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/debug2c/CMakeLists.txt 
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/tools/debug2c/CMakeLists.txt 
2020-10-22 17:43:07 UTC (rev 77550)
@@ -34,7 +34,7 @@
 # *******************************************************************
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # set CMake project name
 project(DEBUG2C)

Modified: brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMakeLists.txt 
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/tools/dom2dox/CMakeLists.txt 
2020-10-22 17:43:07 UTC (rev 77550)
@@ -30,7 +30,7 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 project(DOM2DOX)
 
@@ -52,7 +52,7 @@
   ${CMAKE_CURRENT_BINARY_DIR}
   ${BRLCAD_SOURCE_DIR}/include
   ${BRLCAD_BINARY_DIR}/include
-  ${TCL_INCLUDE_DIRS}
+  ${TCL_INCLUDE_PATH}
   )
 
 PERPLEX_TARGET(dom2dox_scanner dom2dox_scanner.perplex)

Modified: brlcad/branches/thirdparty_rework/misc/tools/env2c/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/env2c/CMakeLists.txt   
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/tools/env2c/CMakeLists.txt   
2020-10-22 17:43:07 UTC (rev 77550)
@@ -34,7 +34,7 @@
 # *******************************************************************
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # set CMake project name
 project(ENV2C)

Modified: brlcad/branches/thirdparty_rework/misc/tools/xmltools/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/misc/tools/xmltools/CMakeLists.txt        
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/misc/tools/xmltools/CMakeLists.txt        
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,5 +1,5 @@
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # Set CMake project name
 project(XSLTPROC)

Index: brlcad/branches/thirdparty_rework/regress
===================================================================
--- brlcad/branches/thirdparty_rework/regress   2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/regress   2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/regress
___________________________________________________________________
Modified: svn:mergeinfo
## -10,4 +10,4 ##
 /brlcad/branches/osg/regress:62110-62113
 /brlcad/branches/prep-cache/regress:68236-68933
 /brlcad/branches/tcltk86/regress:68300-75257
-/brlcad/trunk/regress:75241-77232,77321-77472
\ No newline at end of property
+/brlcad/trunk/regress:75241-77232,77321-77526
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/regress/repository/repocheck.cpp
===================================================================
--- brlcad/branches/thirdparty_rework/regress/repository/repocheck.cpp  
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/regress/repository/repocheck.cpp  
2020-10-22 17:43:07 UTC (rev 77550)
@@ -63,7 +63,7 @@
 bu_strnstr(const char *h, const char *n, size_t hlen);
 
 #define MAX_LINES_CHECK 500
-#define EXPECTED_PLATFORM_SYMBOLS 257
+#define EXPECTED_PLATFORM_SYMBOLS 243
 
 class repo_info_t {
     public:

Modified: 
brlcad/branches/thirdparty_rework/src/conv/step/step-g/OpenNurbsInterfaces.cpp
===================================================================
--- 
brlcad/branches/thirdparty_rework/src/conv/step/step-g/OpenNurbsInterfaces.cpp  
    2020-10-22 17:22:48 UTC (rev 77549)
+++ 
brlcad/branches/thirdparty_rework/src/conv/step/step-g/OpenNurbsInterfaces.cpp  
    2020-10-22 17:43:07 UTC (rev 77550)
@@ -35,9 +35,6 @@
 #if defined(__GNUC__) && !defined(__clang__)
 #  pragma GCC diagnostic ignored "-Wclass-memaccess"
 #endif
-#if defined(__clang__)
-#  pragma clang diagnostic ignored "-Wclass-memaccess"
-#endif
 
 #include "opennurbs.h"
 

Modified: brlcad/branches/thirdparty_rework/src/external/Creo/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/external/Creo/CMakeLists.txt  
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/external/Creo/CMakeLists.txt  
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,7 +1,7 @@
 
 if(NOT DEFINED BRLCAD_BUILDTEST_EXTERNALS)
   # Minimum required version of CMake
-  cmake_minimum_required(VERSION 3.12)
+  cmake_minimum_required(VERSION 3.14)
 
   # Set CMake project name
   project(CREO2BRL)

Modified: brlcad/branches/thirdparty_rework/src/external/Cubit/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/external/Cubit/CMakeLists.txt 
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/external/Cubit/CMakeLists.txt 
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,6 +1,6 @@
 if(NOT DEFINED BRLCAD_BUILDTEST_EXTERNALS)
   # Minimum required version of CMake
-  cmake_minimum_required(VERSION 3.12)
+  cmake_minimum_required(VERSION 3.14)
 
   # Set CMake project name
   project(G2SAT)

Modified: 
brlcad/branches/thirdparty_rework/src/external/Unigraphics/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/external/Unigraphics/CMakeLists.txt   
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/external/Unigraphics/CMakeLists.txt   
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,6 +1,6 @@
 if(NOT DEFINED BRLCAD_BUILDTEST_EXTERNALS)
   # Minimum required version of CMake
-  cmake_minimum_required(VERSION 3.12)
+  cmake_minimum_required(VERSION 3.14)
 
   # Set CMake project name
   project(UG2G)
@@ -15,12 +15,10 @@
       "${CMAKE_CURRENT_BINARY_DIR}/../../../include"
       "${CMAKE_CURRENT_SOURCE_DIR}/../../../include"
       "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/other/openNURBS"
-      "${ZLIB_INCLUDE_DIR}"
-      "${TCL_INCLUDE_PATH}"
+      ${ZLIB_INCLUDE_DIRS}
+      ${REGEX_INCLUDE_DIRS}
+      ${TCL_INCLUDE_PATH}
       )
-    if (REGEX_INCLUDE_DIRS)
-      include_directories("${REGEX_INCLUDE_DIRS}")
-    endif (REGEX_INCLUDE_DIRS)
 
     # The build shims aren't so great at mocking the initialization
     # behavior of the real code.

Modified: brlcad/branches/thirdparty_rework/src/gtools/tests/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/gtools/tests/CMakeLists.txt   
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/gtools/tests/CMakeLists.txt   
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,5 +1,5 @@
 
-BRLCAD_ADDEXEC(bigdb bigdb.c "libged;libwdb;librt;libbu" TEST)
+BRLCAD_ADDEXEC(bigdb bigdb.c "libged;libwdb;librt;libbu" TEST_USESDATA)
 
 add_test(NAME slow-bigdb_1gb COMMAND bigdb 1)
 add_test(NAME slow-bigdb_5gb COMMAND bigdb 5)

Modified: brlcad/branches/thirdparty_rework/src/gtools/tests/bigdb.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/gtools/tests/bigdb.c  2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/gtools/tests/bigdb.c  2020-10-22 
17:43:07 UTC (rev 77550)
@@ -87,17 +87,27 @@
 
     /* bu_log("using %s temp file\n", filename); */
 
+    /* make sure we don't overflow */
+    BU_ASSERT((uint64_t)sz < (uint64_t)(SIZE_MAX/2));
+    BU_ASSERT(sz > strlen("123......321")+1);
+
     title = (char *)bu_malloc(sz * 2, "test allocation");
     bu_free(title, "test allocation");
-    
+
     title = (char *)bu_malloc(sz, "title");
     memset(title, ' ', sz);
-    title[0] = '3';
+    title[0] = '1';
     title[1] = '2';
-    title[2] = '1';
-    title[sz-4] = '1';
+    title[2] = '3';
+    title[3] = '.';
+    title[4] = '.';
+    title[5] = '.';
+    title[sz-7] = '.';
+    title[sz-6] = '.';
+    title[sz-5] = '.';
+    title[sz-4] = '3';
     title[sz-3] = '2';
-    title[sz-2] = '3';
+    title[sz-2] = '1';
     title[sz-1] = '\0';
 
     /* bu_log("setting title to %ld == %ld chars long (%c%c%c <> %c%c%c)\n", 
strlen(title), sz-1, title[0], title[1], title[2], title[sz-4], title[sz-3], 
title[sz-2]); */

Modified: brlcad/branches/thirdparty_rework/src/libbn/plot3.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/libbn/plot3.c 2020-10-22 17:22:48 UTC 
(rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libbn/plot3.c 2020-10-22 17:43:07 UTC 
(rev 77550)
@@ -759,6 +759,266 @@
     pdv_3cont(fp, tip);
 }
 
+
+/*
+ * Routines to validate a plot file
+ */
+
+static int
+read_short(FILE *fp, int cnt, int mode)
+{
+    if (mode == PL_OUTPUT_MODE_BINARY) {
+       for (int i = 0; i < cnt * 2; i++) {
+           if (getc(fp) == EOF)
+               return 1;
+       }
+       return 0;
+    }
+    if (mode == PL_OUTPUT_MODE_TEXT) {
+       int ret;
+       double val;
+       for (int i = 0; i < cnt; i++) {
+           ret = fscanf(fp, "%lf", &val);
+           if (ret != 1)
+               return 1;
+       }
+       return 0;
+    }
+
+    return 1;
+}
+
+static int
+read_ieee(FILE *fp, int cnt, int mode)
+{
+    int ret;
+    if (mode == PL_OUTPUT_MODE_BINARY) {
+       for (int i = 0; i < cnt; i++) {
+           char inbuf[SIZEOF_NETWORK_DOUBLE];
+           ret = fread(inbuf, SIZEOF_NETWORK_DOUBLE, 1, fp);
+           if (ret != 1)
+               return 1;
+       }
+       return 0;
+    }
+    if (mode == PL_OUTPUT_MODE_TEXT) {
+       double val;
+       for (int i = 0; i < cnt; i++) {
+           ret = fscanf(fp, "%lf", &val);
+           if (ret != 1)
+               return 1;
+       }
+       return 0;
+    }
+    return 1;
+}
+
+static int
+read_tstring(FILE *fp, int mode)
+{
+    int ret;
+    if (mode == PL_OUTPUT_MODE_BINARY) {
+       int str_done = 0;
+       int cc;
+       while (!feof(fp) && !str_done) {
+           cc = getc(fp);
+           if (cc == '\n')
+               str_done = 1;
+       }
+       return 0;
+    }
+    if (mode == PL_OUTPUT_MODE_TEXT) {
+       char carg[256];
+       ret = fscanf(fp, "%256s\n", &carg[0]);
+       if (ret != 1)
+           return 1;
+       return 0;
+    }
+    return 1;
+}
+
+int
+plot3_invalid(FILE *fp, int mode)
+{
+
+    /* Only two valid modes */
+    if (mode != PL_OUTPUT_MODE_BINARY && mode != PL_OUTPUT_MODE_TEXT) {
+       return 1;
+    }
+
+    /* A non-readable file isn't a valid file */
+    if (!fp) {
+       return 1;
+    }
+
+    int i = 0;
+    int c;
+    unsigned int tchar = 0;
+
+    while (!feof(fp) && (c=getc(fp)) != EOF) {
+       if (c < 'A' || c > 'z') {
+           return 1;
+       }
+       switch (c) {
+           case 'C':
+               // TCHAR, 3, "color"
+               if (mode == PL_OUTPUT_MODE_BINARY) {
+                   for (i = 0; i < 3; i++) {
+                       if (getc(fp) == EOF)
+                           return 1;
+                   }
+               }
+               if (mode == PL_OUTPUT_MODE_TEXT) {
+                   i = fscanf(fp, "%u", &tchar);
+                   if (i != 1)
+                       return 1;
+               }
+               break;
+           case 'F':
+               // TNONE, 0, "flush"
+               break;
+           case 'L':
+               // TSHORT, 6, "3line"
+               if (read_short(fp, 6, mode))
+                   return 1;
+               break;
+           case 'M':
+               // TSHORT, 3, "3move"
+               if (read_short(fp, 3, mode))
+                   return 1;
+               break;
+           case 'N':
+               // TSHORT, 3, "3cont"
+               if (read_short(fp, 3, mode))
+                   return 1;
+               break;
+           case 'O':
+               // TIEEE, 3, "d_3move"
+               if (read_ieee(fp, 3, mode))
+                   return 1;
+               break;
+           case 'P':
+               // TSHORT, 3, "3point"
+               if (read_short(fp, 3, mode))
+                   return 1;
+               break;
+           case 'Q':
+               // TIEEE, 3, "d_3cont"
+               if (read_ieee(fp, 3, mode))
+                   return 1;
+               break;
+           case 'S':
+               // TSHORT, 6, "3space"
+               if (read_short(fp, 6, mode))
+                   return 1;
+                       break;
+           case 'V':
+               // TIEEE, 6, "d_3line"
+               if (read_ieee(fp, 6, mode))
+                   return 1;
+               break;
+           case 'W':
+               // TIEEE, 6, "d_3space"
+               if (read_ieee(fp, 6, mode))
+                   return 1;
+               break;
+           case 'X':
+               // TIEEE, 3, "d_3point"
+               if (read_ieee(fp, 3, mode))
+                   return 1;
+               break;
+           case 'a':
+               // TSHORT, 6, "arc"
+               if (read_short(fp, 6, mode))
+                   return 1;
+                       break;
+           case 'c':
+               // TSHORT, 3, "circle"
+                       if (read_short(fp, 3, mode))
+                           return 1;
+                       break;
+           case 'e':
+               // TNONE, 0, "erase"
+               break;
+           case 'f':
+               // TSTRING, 1, "linmod"
+               if (read_tstring(fp, mode))
+                   return 1;
+               break;
+           case 'i':
+               // TIEEE, 3, "d_circle"
+               if (read_ieee(fp, 3, mode))
+                   return 1;
+               break;
+           case 'l':
+               // TSHORT, 4, "line"
+               if (read_short(fp, 4, mode))
+                   return 1;
+                       break;
+           case 'm':
+               // TSHORT, 2, "move"
+               if (read_short(fp, 2, mode))
+                   return 1;
+                       break;
+           case 'n':
+               // TSHORT, 2, "cont"
+               if (read_short(fp, 2, mode))
+                   return 1;
+                       break;
+           case 'o':
+               // TIEEE, 2, "d_move"
+               if (read_ieee(fp, 2, mode))
+                   return 1;
+               break;
+           case 'p':
+               // TSHORT, 2, "point"
+               if (read_short(fp, 2, mode))
+                   return 1;
+               break;
+           case 'q':
+               // TIEEE, 2, "d_cont"
+               if (read_ieee(fp, 2, mode))
+                   return 1;
+               break;
+           case 'r':
+               // TIEEE, 6, "d_arc"
+               if (read_ieee(fp, 6, mode))
+                   return 1;
+               break;
+           case 's':
+               // TSHORT, 4, "space"
+               if (read_short(fp, 4, mode))
+                   return 1;
+               break;
+           case 't':
+               // TSTRING, 1, "label"
+               if (read_tstring(fp, mode))
+                   return 1;
+               break;
+           case 'v':
+               // TIEEE, 4, "d_line"
+               if (read_ieee(fp, 4, mode))
+                   return 1;
+               break;
+           case 'w':
+               // TIEEE, 4, "d_space"
+               if (read_ieee(fp, 4, mode))
+                   return 1;
+               break;
+           case 'x':
+               // TIEEE, 2, "d_point"
+               if (read_ieee(fp, 2, mode))
+                   return 1;
+               break;
+           default:
+               return 1;
+               break;
+       };
+    }
+
+    return 0;
+}
+
 /** @} */
 /*
  * Local Variables:

Modified: brlcad/branches/thirdparty_rework/src/libbn/tests/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/libbn/tests/CMakeLists.txt    
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libbn/tests/CMakeLists.txt    
2020-10-22 17:43:07 UTC (rev 77550)
@@ -48,6 +48,11 @@
 # WIP - needs to become real test
 BRLCAD_ADDEXEC(bn_randsph randsph.c "libbu;libbn" TEST)
 
+# This test program is being kept separate because the plot3 logic really
+# should move, and when it does it will be easier to move the test if it
+# is not tied into the bn_test target
+BRLCAD_ADDEXEC(bn_plot3 plot3.c "libbu;libbn" TEST)
+
 #
 #  ************ list.c tests *************
 #
@@ -1144,6 +1149,8 @@
   bn_test.c.in
   poly_cubic_roots.c
   poly_quartic_roots.c
+  valid.plot3
+  invalid.plot3
   )
 
 # Local Variables:

Copied: brlcad/branches/thirdparty_rework/src/libbn/tests/invalid.plot3 (from 
rev 77526, brlcad/trunk/src/libbn/tests/invalid.plot3)
===================================================================
(Binary files differ)

Copied: brlcad/branches/thirdparty_rework/src/libbn/tests/plot3.c (from rev 
77526, brlcad/trunk/src/libbn/tests/plot3.c)
===================================================================
--- brlcad/branches/thirdparty_rework/src/libbn/tests/plot3.c                   
        (rev 0)
+++ brlcad/branches/thirdparty_rework/src/libbn/tests/plot3.c   2020-10-22 
17:43:07 UTC (rev 77550)
@@ -0,0 +1,97 @@
+/*                         P L O T 3 . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2014-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+
+#include "common.h"
+
+#include <stdio.h>
+
+#include "bu/app.h"
+#include "bu/malloc.h"
+#include "bu/log.h"
+#include "vmath.h"
+#include "bu/file.h"
+#include "bu/opt.h"
+#include "bn/plot3.h"
+
+int
+main(int argc, const char *argv[])
+{
+    int ret = 0;
+    int print_help = 0;
+    int binary_mode = 0;
+    int text_mode = 0;
+    int mode = -1;
+    struct bu_opt_desc d[4];
+    BU_OPT(d[0], "h", "help",   "",  NULL, &print_help,  "Print help and 
exit");
+    BU_OPT(d[1], "b", "binary", "",  NULL, &binary_mode, "Process plot file as 
binary plot data (default)");
+    BU_OPT(d[2], "t", "text",   "",  NULL, &text_mode,   "Process plot file as 
text plot data");
+    BU_OPT_NULL(d[3]);
+
+    bu_setprogname(argv[0]);
+
+    argc-=(argc>0); argv+=(argc>0); /* done with command name argv[0] */
+
+    int opt_ret = bu_opt_parse(NULL, argc, argv, d);
+
+    if (!opt_ret)
+       bu_exit(1, "Usage: %s [opts] file\n", argv[0]);
+
+    if (binary_mode && text_mode)
+       bu_exit(1, "Error - specify either binary mode or text mode\n");
+
+
+    if (binary_mode)
+       mode = PL_OUTPUT_MODE_BINARY;
+
+    if (text_mode)
+       mode = PL_OUTPUT_MODE_BINARY;
+
+    if (!bu_file_exists(argv[0], NULL)) {
+       bu_exit(1, "file %s not found\n", argv[0]);
+    }
+
+    FILE *fp = fopen(argv[0], "rb");
+
+    /* A non-readable file isn't a valid file */
+    if (!fp)
+       bu_exit(1, "Error - could not open file %s\n", argv[0]);
+
+    ret = plot3_invalid(fp, mode);
+
+    if (ret) {
+       bu_log("INVALID: %s\n", argv[0]);
+    } else {
+       bu_log("VALID:   %s\n", argv[0]);
+    }
+
+    return ret;
+}
+
+
+/** @} */
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */

Copied: brlcad/branches/thirdparty_rework/src/libbn/tests/valid.plot3 (from rev 
77526, brlcad/trunk/src/libbn/tests/valid.plot3)
===================================================================
(Binary files differ)

Index: brlcad/branches/thirdparty_rework/src/libbu
===================================================================
--- brlcad/branches/thirdparty_rework/src/libbu 2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/src/libbu 2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/src/libbu
___________________________________________________________________
Modified: svn:mergeinfo
## -3,4 +3,4 ##
 
/brlcad/branches/brep-debug/src/libbu:69168,69927,69995-69996,70148-70149,70347-70349,70377,70526-70527,71006-71007,71009-71022,71046-71047,71049,71096-71100
 /brlcad/branches/dm-fb-merge/src/libbu:75426-76198
 /brlcad/branches/tcltk86/src/libbu:68300-75257
-/brlcad/trunk/src/libbu:75241-77232,77321-77472
\ No newline at end of property
+/brlcad/trunk/src/libbu:75241-77232,77321-77526
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/src/libbu/file.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/libbu/file.c  2020-10-22 17:22:48 UTC 
(rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libbu/file.c  2020-10-22 17:43:07 UTC 
(rev 77550)
@@ -73,6 +73,17 @@
        return 0;
     }
 
+    /* stdin is special case */
+    if (BU_STR_EQUAL(path, "-")) {
+       if (fd) {
+           *fd = fileno(stdin);
+       }
+       if (UNLIKELY(bu_debug & BU_DEBUG_PATHS)) {
+           bu_log("YES\n");
+       }
+       return 1;
+    }
+
     /* capture file descriptor if requested */
     if (fd) {
        *fd = open(path, O_RDONLY);
@@ -180,7 +191,8 @@
 bu_file_same(const char *fn1, const char *fn2)
 {
     int ret = 0;
-    char *rp1, *rp2;
+    char *rp1 = NULL;
+    char *rp2 = NULL;
 
     if (UNLIKELY(!fn1 || !fn2)) {
        return 0;
@@ -190,6 +202,11 @@
        return 0;
     }
 
+    /* stdin is a special case */
+    if (BU_STR_EQUAL(fn1, fn2) && BU_STR_EQUAL(fn1, "-")) {
+       return 1;
+    }
+
     if (!bu_file_exists(fn1, NULL) || !bu_file_exists(fn2, NULL)) {
        return 0;
     }

Modified: 
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMakeLists.txt
===================================================================
--- 
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMakeLists.txt   
    2020-10-22 17:22:48 UTC (rev 77549)
+++ 
brlcad/branches/thirdparty_rework/src/libgcv/plugins/obj/wfobj/CMakeLists.txt   
    2020-10-22 17:43:07 UTC (rev 77550)
@@ -37,7 +37,7 @@
 
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # set CMake project name
 project(WFOBJ)

Modified: brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.c    
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.c    
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,3 +1,28 @@
+/*                  D P L O T _ R E A D E R . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file dplot_reader.c
+ *
+ * Brief description
+ *
+ */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include "dplot_reader.h"
@@ -27,6 +52,8 @@
        bu_exit(1, "usage: %s input\n", argv[0]);
     }
 
+    bu_setprogname(argv[0]);
+
     /* initialize scanner */
     input_file = fopen(argv[1], "r");
     if (!input_file) {
@@ -85,3 +112,13 @@
 
     return 0;
 }
+
+/*
+ * Local Variables:
+ * tab-width: 8
+ * mode: C
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */

Modified: brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.h
===================================================================
--- brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.h    
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libged/brep/dplot_reader.h    
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,3 +1,28 @@
+/*                  D P L O T _ R E A D E R . H
+ * BRL-CAD
+ *
+ * Copyright (c) 2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file dplot_reader.h
+ *
+ * Brief description
+ *
+ */
+
 #ifndef DPLOT_PARSER
 #define DPLOT_PARSER
 
@@ -54,3 +79,13 @@
 void ParseTrace(FILE *fp, char *s);
 
 #endif
+
+/*
+ * Local Variables:
+ * tab-width: 8
+ * mode: C
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */

Modified: brlcad/branches/thirdparty_rework/src/libged/exec.cpp
===================================================================
--- brlcad/branches/thirdparty_rework/src/libged/exec.cpp       2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libged/exec.cpp       2020-10-22 
17:43:07 UTC (rev 77550)
@@ -34,8 +34,10 @@
 
 extern "C" void libged_init(void);
 
+
 extern "C" int
-ged_exec(struct ged *gedp, int argc, const char *argv[]) {
+ged_exec(struct ged *gedp, int argc, const char *argv[])
+{
     if (!gedp || !argc || !argv) {
        return GED_ERROR;
     }
@@ -46,21 +48,23 @@
        start = bu_gettime();
     }
 
-    // TODO - right now this is the map from the libged load - should probably
-    // use this to initialize a struct ged copy when ged_init is called, so
-    // client codes can add their own commands to their gedp...
+    // TODO - right now this is the map from the libged load - should
+    // probably use this to initialize a struct ged copy when ged_init
+    // is called, so client codes can add their own commands to their
+    // gedp...
     //
-    // The ged_cmds map should always reflect the original, vanilla state of
-    // libged's command set so we have a clean fallback available if we ever
-    // need it to fall back on/recover with.
+    // The ged_cmds map should always reflect the original, vanilla
+    // state of libged's command set so we have a clean fallback
+    // available if we ever need it to fall back on/recover with.
     std::map<std::string, const struct ged_cmd *> *cmap = 
(std::map<std::string, const struct ged_cmd *> *)ged_cmds;
 
-    // On OpenBSD, if the executable was launched in a way that requires
-    // bu_setprogname to find the BRL-CAD root directory the iniital libged
-    // initialization would have failed.  If we have no ged_cmds at all this is
-    // probably what happened, so call libged_init again here.  By the time we
-    // are calling ged_exec bu_setprogname should be set and we should be ready
-    // to actually find the commands.
+    // On OpenBSD, if the executable was launched in a way that
+    // requires bu_setprogname to find the BRL-CAD root directory the
+    // initial libged initialization would have failed.  If we have no
+    // ged_cmds at all this is probably what happened, so call
+    // libged_init again here.  By the time we are calling ged_exec
+    // bu_setprogname should be set and we should be ready to actually
+    // find the commands.
     if (!cmap->size()) {
        libged_init();
     }
@@ -74,8 +78,8 @@
 
     const struct ged_cmd *cmd = c_it->second;
 
-    // TODO - if interactive command via cmd->i->interactive, don't execute
-    // unless we have the necessary callbacks defined in gedp
+    // TODO - if interactive command via cmd->i->interactive, don't
+    // execute unless we have the necessary callbacks defined in gedp
 
     int cret = (*cmd->i->cmd)(gedp, argc, argv);
 

Modified: brlcad/branches/thirdparty_rework/src/libged/ged_init.cpp
===================================================================
--- brlcad/branches/thirdparty_rework/src/libged/ged_init.cpp   2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libged/ged_init.cpp   2020-10-22 
17:43:07 UTC (rev 77550)
@@ -43,24 +43,25 @@
 
 #include "./include/plugin.h"
 
-static std::map<std::string, const struct ged_cmd *> ged_cmd_map;
+static char **cmd_list = NULL;
 static size_t cmd_list_len = 0;
-static char **cmd_list = NULL;
+static std::map<std::string, const struct ged_cmd *> cmd_map;
+static std::set<void *> cmd_funcs;
+static struct bu_vls init_msgs = BU_VLS_INIT_ZERO;
 void *ged_cmds;
 
 extern "C" void libged_init(void);
 
-static std::set<void *> ged_handles;
-struct bu_vls *ged_init_msg_str;
 
 const char *
 ged_init_msgs()
 {
-    return bu_vls_cstr(ged_init_msg_str);
+    return bu_vls_cstr(&init_msgs);
 }
 
-/* If func is NULL, just see if the string has a ged_cmd_map entry.
- * If func is defined, see if a) func and cmd have ged_cmd_map entries and
+
+/* If func is NULL, just see if the string has a cmd_map entry.
+ * If func is defined, see if a) func and cmd have cmd_map entries and
  * b) if they both do, whether they map to the same function. */
 int
 ged_cmd_valid(const char *cmd, const char *func)
@@ -76,13 +77,13 @@
     // probably what happened, so call libged_init again here.  By the time we
     // are calling ged_cmd_valid bu_setprogname should be set and we should be
     // ready to actually find the commands.
-    if (!ged_cmd_map.size()) {
+    if (!cmd_map.size()) {
        libged_init();
     }
 
     std::string scmd(cmd);
-    std::map<std::string, const struct ged_cmd *>::iterator cmd_it = 
ged_cmd_map.find(scmd);
-    if (cmd_it != ged_cmd_map.end()) {
+    std::map<std::string, const struct ged_cmd *>::iterator cmd_it = 
cmd_map.find(scmd);
+    if (cmd_it != cmd_map.end()) {
        cmd_invalid = 0;
     }
     if (cmd_invalid) {
@@ -91,8 +92,8 @@
 
     if (func) {
        ged_func_ptr c1 = cmd_it->second->i->cmd;
-       std::map<std::string, const struct ged_cmd *>::iterator func_it = 
ged_cmd_map.find(std::string(func));
-       if (func_it == ged_cmd_map.end()) {
+       std::map<std::string, const struct ged_cmd *>::iterator func_it = 
cmd_map.find(std::string(func));
+       if (func_it == cmd_map.end()) {
            // func not in table, nothing to validate against - return invalid
            return 1;
        }
@@ -107,6 +108,7 @@
     return 0;
 }
 
+
 /* Use bu_editdist to see if there is a command name similar to cmd
  * defined.  Return the closest match and the edit distance.  (0 indicates
  * an exact match, -1 an error) */
@@ -124,7 +126,7 @@
     // probably what happened, so call libged_init again here.  By the time we
     // are calling ged_cmd_valid bu_setprogname should be set and we should be
     // ready to actually find the commands.
-    if (!ged_cmd_map.size()) {
+    if (!cmd_map.size()) {
        libged_init();
     }
 
@@ -131,7 +133,7 @@
     const char *ccmd = NULL;
     std::string scmd(cmd);
     std::map<std::string, const struct ged_cmd *>::iterator cmd_it;
-    for (cmd_it = ged_cmd_map.begin(); cmd_it != ged_cmd_map.end(); cmd_it++) {
+    for (cmd_it = cmd_map.begin(); cmd_it != cmd_map.end(); cmd_it++) {
        unsigned long edist = bu_editdist(cmd, cmd_it->first.c_str(), 0);
        if (edist < min_dist) {
            ccmd = (*cmd_it).first.c_str();
@@ -143,6 +145,7 @@
     return (int)min_dist;
 }
 
+
 size_t
 ged_cmd_list(const char * const **cl)
 {
@@ -150,9 +153,9 @@
        bu_argv_free(cmd_list_len, (char **)cmd_list);
        cmd_list_len = 0;
     }
-    cmd_list = (char **)bu_calloc(ged_cmd_map.size(), sizeof(char *), "ged cmd 
argv");
+    cmd_list = (char **)bu_calloc(cmd_map.size(), sizeof(char *), "ged cmd 
argv");
     std::map<std::string, const struct ged_cmd *>::iterator m_it;
-    for (m_it = ged_cmd_map.begin(); m_it != ged_cmd_map.end(); m_it++) {
+    for (m_it = cmd_map.begin(); m_it != cmd_map.end(); m_it++) {
        const char *str = m_it->first.c_str();
        cmd_list[cmd_list_len] = bu_strdup(str);
        cmd_list_len++;
@@ -161,13 +164,10 @@
     return cmd_list_len;
 }
 
+
 extern "C" void
 libged_init(void)
 {
-
-    BU_GET(ged_init_msg_str, struct bu_vls);
-    bu_vls_init(ged_init_msg_str);
-
     const char *ppath = bu_dir(NULL, 0, BU_DIR_LIBEXEC, "ged", NULL);
     char **filenames;
     struct bu_vls plugin_pattern = BU_VLS_INIT_ZERO;
@@ -181,9 +181,9 @@
        if (!dl_handle) {
            const char * const error_msg = bu_dlerror();
            if (error_msg)
-               bu_vls_printf(ged_init_msg_str, "%s\n", error_msg);
+               bu_vls_printf(&init_msgs, "%s\n", error_msg);
 
-           bu_vls_printf(ged_init_msg_str, "Unable to dynamically load '%s' 
(skipping)\n", pfile);
+           bu_vls_printf(&init_msgs, "Unable to dynamically load '%s' 
(skipping)\n", pfile);
            continue;
        }
        {
@@ -194,10 +194,10 @@
                const char * const error_msg = bu_dlerror();
 
                if (error_msg)
-                   bu_vls_printf(ged_init_msg_str, "%s\n", error_msg);
+                   bu_vls_printf(&init_msgs, "%s\n", error_msg);
 
-               bu_vls_printf(ged_init_msg_str, "Unable to load symbols from 
'%s' (skipping)\n", pfile);
-               bu_vls_printf(ged_init_msg_str, "Could not find '%s' symbol in 
plugin\n", psymbol);
+               bu_vls_printf(&init_msgs, "Unable to load symbols from '%s' 
(skipping)\n", pfile);
+               bu_vls_printf(&init_msgs, "Could not find '%s' symbol in 
plugin\n", psymbol);
                bu_dlclose(dl_handle);
                continue;
            }
@@ -205,25 +205,25 @@
            const struct ged_plugin *plugin = plugin_info();
 
            if (!plugin) {
-               bu_vls_printf(ged_init_msg_str, "Invalid plugin file '%s' 
encountered (skipping)\n", pfile);
+               bu_vls_printf(&init_msgs, "Invalid plugin file '%s' encountered 
(skipping)\n", pfile);
                bu_dlclose(dl_handle);
                continue;
            }
 
            if (*((const uint32_t *)(plugin)) != (uint32_t)  (GED_API)) {
-               bu_vls_printf(ged_init_msg_str, "Plugin version %d of '%s' 
differs from %d (skipping)\n", *((const uint32_t *)(plugin)), pfile, GED_API);
+               bu_vls_printf(&init_msgs, "Plugin version %d of '%s' differs 
from %d (skipping)\n", *((const uint32_t *)(plugin)), pfile, GED_API);
                bu_dlclose(dl_handle);
                continue;
            }
 
            if (!plugin->cmds) {
-               bu_vls_printf(ged_init_msg_str, "Invalid plugin file '%s' 
encountered (skipping)\n", pfile);
+               bu_vls_printf(&init_msgs, "Invalid plugin file '%s' encountered 
(skipping)\n", pfile);
                bu_dlclose(dl_handle);
                continue;
            }
 
            if (!plugin->cmd_cnt) {
-               bu_vls_printf(ged_init_msg_str, "Plugin '%s' contains no 
commands, (skipping)\n", pfile);
+               bu_vls_printf(&init_msgs, "Plugin '%s' contains no commands, 
(skipping)\n", pfile);
                bu_dlclose(dl_handle);
                continue;
            }
@@ -232,21 +232,21 @@
            for (int c = 0; c < plugin->cmd_cnt; c++) {
                const struct ged_cmd *cmd = cmds[c];
                std::string key(cmd->i->cname);
-               if (ged_cmd_map.find(key) != ged_cmd_map.end()) {
-                   bu_vls_printf(ged_init_msg_str, "Warning - plugin '%s' 
provides command '%s' but that command has already been loaded, skipping\n", 
pfile, cmd->i->cname);
+               if (cmd_map.find(key) != cmd_map.end()) {
+                   bu_vls_printf(&init_msgs, "Warning - plugin '%s' provides 
command '%s' but that command has already been loaded, skipping\n", pfile, 
cmd->i->cname);
                    continue;
                }
-               ged_cmd_map[key] = cmd;
+               cmd_map[key] = cmd;
 
                // MGED calls many of these commands with an _mged_ prefix - 
allow for that
                std::string mged_key = std::string("_mged_") + key;
-               ged_cmd_map[mged_key] = cmd;
+               cmd_map[mged_key] = cmd;
            }
-           ged_handles.insert(dl_handle);
+           cmd_funcs.insert(dl_handle);
        }
     }
 
-    ged_cmds = (void *)&ged_cmd_map;
+    ged_cmds = (void *)&cmd_map;
 }
 
 
@@ -253,16 +253,13 @@
 static void
 libged_clear(void)
 {
-    ged_cmd_map.clear();
+    cmd_map.clear();
     std::set<void *>::iterator h_it;
-    for (h_it = ged_handles.begin(); h_it != ged_handles.end(); h_it++) {
+    for (h_it = cmd_funcs.begin(); h_it != cmd_funcs.end(); h_it++) {
        void *handle = *h_it;
        bu_dlclose(handle);
     }
-    ged_handles.clear();
-
-    bu_vls_free(ged_init_msg_str);
-    BU_PUT(ged_init_msg_str, struct bu_vls);
+    cmd_funcs.clear();
 }
 
 
@@ -274,13 +271,14 @@
     /* destructor */
     ~libged_initializer() {
        libged_clear();
+       bu_vls_free(&init_msgs);
     }
 };
 
+
 static libged_initializer LIBGED;
 
 
-
 // Local Variables:
 // tab-width: 8
 // mode: C++

Modified: brlcad/branches/thirdparty_rework/src/libged/tests/plugins.cpp
===================================================================
--- brlcad/branches/thirdparty_rework/src/libged/tests/plugins.cpp      
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libged/tests/plugins.cpp      
2020-10-22 17:43:07 UTC (rev 77550)
@@ -44,19 +44,19 @@
 
     gbp = ged_open("db", av[1], 1);
 
-    const char * const *ged_cmds = NULL;
-    size_t ged_cmd_cnt = ged_cmd_list(&ged_cmds);
+    const char * const *cmds = NULL;
+    size_t cmds_cnt = ged_cmd_list(&cmds);
 
     bu_log("%s\n", ged_init_msgs());
 
-    for (size_t i = 0; i < ged_cmd_cnt; i++) {
-       bu_log("%s\n", ged_cmds[i]);
+    for (size_t i = 0; i < cmds_cnt; i++) {
+       bu_log("%s\n", cmds[i]);
     }
 
 #if 0
-    for (size_t i = 0; i < ged_cmd_cnt; i++) {
-       bu_log("ged_execing %s\n", ged_cmds[i]);
-       ged_exec(gbp, 1, (const char **)&ged_cmds[i]);
+    for (size_t i = 0; i < cmds_cnt; i++) {
+       bu_log("ged_execing %s\n", cmds[i]);
+       ged_exec(gbp, 1, (const char **)&cmds[i]);
     }
 #endif
 
@@ -419,8 +419,8 @@
        }
        // Also add libged's list in case there are any
        // we missed calling out explicitly above...
-       for (size_t i = 0; i < ged_cmd_cnt; i++) {
-           cmd_set.insert(std::string(ged_cmds[i]));
+       for (size_t i = 0; i < cmds_cnt; i++) {
+           cmd_set.insert(std::string(cmds[i]));
        }
 
        std::set<std::string>::iterator cs_it;

Modified: brlcad/branches/thirdparty_rework/src/libtclcad/auto_path.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/libtclcad/auto_path.c 2020-10-22 
17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/libtclcad/auto_path.c 2020-10-22 
17:43:07 UTC (rev 77550)
@@ -22,17 +22,6 @@
  *
  * Locate the BRL-CAD tclscripts
  *
- * TODO - superbuild presents us with a challenge here.  This logic
- * is optimized for assuming that packages are either installed with
- * the associated system Tcl/Tk or present in the BRL-CAD build
- * directory.  Superbuilds present another possibility - a system
- * Tcl/Tk, a superbuild Itcl/Itk in the superbuild's directory,
- * and a BRL-CAD build needing to reference the staging install of
- * Itcl/Itk during its build.
- *
- * Not sure what the answer is yet.  One possibility is to use the
- * environment variables during the BRL-CAD build's execution of
- * its tools, but not sure yet if that's practical.
  */
 
 #include "common.h"
@@ -59,22 +48,6 @@
  * scripting resources. Detect whether the current invocation is from
  * an installed binary or not and append to the auto_path accordingly
  * for where the needed tclscript resources should be found.
- *
- ** installed invocation paths
- * BRLCAD_ROOT/lib/tclTCL_VERSION/init.tcl
- * BRLCAD_ROOT/lib/tclTK_VERSION/tk.tcl
- * BRLCAD_ROOT/lib/itclITCL_VERSION/itcl.tcl
- * BRLCAD_ROOT/lib/itkITCL_VERSION/itk.tcl
- * BRLCAD_ROOT/lib/IwidgetsIWIDGETS_VERSION/iwidgets.tcl
- * BRLCAD_ROOT/share/tclscripts/pkgIndex.tcl and subdirs
- *
- * if TCLCAD_LIBRARY_PATH is set append to search path.
- * get installation directory and invocation path
- * if being run from installation directory
- *   add installation paths to search path
- * if being run from source directory
- *   add source paths to search path
- * add installation paths to search path
  */
 void
 tclcad_auto_path(Tcl_Interp *interp)
@@ -243,11 +216,6 @@
        bu_ptbl_ins(&data_subpaths, (long *)p);
     }
 
-    // The lib paths present some potential challenges.  Depending on where
-    // packages are at runtime, there are a variety of potential locations
-    // where they may be found.  To further complicate life, some of them
-    // may be in system locations and some in local locations.
-
     // First off, see what's in BU_DIR_LIB.
     char libdir[MAXPATHLEN] = {0};
     struct bu_vls lib_path = BU_VLS_INIT_ZERO;
@@ -276,65 +244,7 @@
        bu_ptbl_free(&found_subpaths);
     }
 
-    // Determine if we're running from the final install location or from
-    // somewhere else, and whether the final install location has relevant
-    // files.  If we're in the non-final location, there is some
-    // extra work to do.
-    int installed = 0;
-    struct bu_vls w_root = BU_VLS_INIT_ZERO;
-    bu_path_component(&w_root, libdir, BU_PATH_DIRNAME);
-    {
-       char inst[MAXPATHLEN] = {0};
-       bu_dir(inst, MAXPATHLEN, BU_DIR_INSTALL, NULL);
-       if (BU_STR_EQUAL(bu_vls_cstr(&w_root), inst)) {
-           installed = 1;
-       }
-    }
-
-    // If we're not installed, we may be in a subbuild, in which case we
-    // need to go up the tree to find any not-yet-installed dependencies.
-    // The way the BRL-CAD subbuild is set up we should only need to go up
-    // one level, so that's all we implement right now.
-    if (!installed) {
-       // Get the actual lib directory name - that's what we'll be checking
-       // for in the parent dir.
-       struct bu_ptbl found_subpaths = BU_PTBL_INIT_ZERO;
-       struct bu_vls pdir = BU_VLS_INIT_ZERO;
-       struct bu_vls tdir = BU_VLS_INIT_ZERO;
-       struct bu_vls libstr = BU_VLS_INIT_ZERO;
-       bu_path_component(&libstr, libdir, BU_PATH_BASENAME);
-       bu_path_component(&pdir, bu_vls_cstr(&w_root), BU_PATH_DIRNAME);
-       bu_vls_sprintf(&tdir, "%s%c%s", bu_vls_cstr(&pdir), BU_DIR_SEPARATOR, 
bu_vls_cstr(&libstr));
-       // Have a library directory, see what's in it
-       if (bu_file_exists(bu_vls_cstr(&tdir), NULL)) {
-           for (size_t i = 0; i < BU_PTBL_LEN(&lib_subpaths); i++) {
-               const char *fname = (const char *)BU_PTBL_GET(&lib_subpaths, i);
-               bu_vls_sprintf(&lib_path, "%s%c%s", bu_vls_cstr(&tdir), 
BU_DIR_SEPARATOR, fname);
-               if (bu_file_exists(bu_vls_cstr(&lib_path), NULL)) {
-                   // Have a path
-                   const char *p = bu_strdup(bu_vls_cstr(&lib_path));
-                   bu_ptbl_ins(&paths, (long *)p);
-                   bu_ptbl_ins(&found_subpaths, (long *)fname);
-               }
-           }
-           // Clear anything we found out of lib_subpaths - we don't need or
-           // want to find it again.  The more local to the install, the
-           // better...
-           for (size_t i = 0; i < BU_PTBL_LEN(&found_subpaths); i++) {
-               bu_ptbl_rm(&lib_subpaths, BU_PTBL_GET(&found_subpaths, i));
-           }
-       }
-       bu_ptbl_free(&found_subpaths);
-    }
-
-    // Libs not found
-    //for (size_t i = 0; i < BU_PTBL_LEN(&lib_subpaths); i++) {
-    //    const char *fname = (const char *)BU_PTBL_GET(&lib_subpaths, i);
-    //    bu_log("Not found: %s\n", fname);
-    //}
-
-    // Now that we've looked for the libs, handle the data dirs.  These are
-    // simpler as they should be guaranteed to be in BU_DIR_DATA.
+    // Now that we've looked for the libs, handle the data dirs.
     struct bu_vls data_path = BU_VLS_INIT_ZERO;
     char datadir[MAXPATHLEN] = {0};
     bu_dir(datadir, MAXPATHLEN, BU_DIR_DATA, NULL);
@@ -353,7 +263,7 @@
        }
     }
 
-    /* iterate over the paths set and modify the real Tcl auto_path */
+    /* Iterate over the paths set and modify the real Tcl auto_path */
     int tk_set = 0;
     for (size_t i = 0; i < BU_PTBL_LEN(&paths); i++) {
        const char *path = (const char *)BU_PTBL_GET(&paths, i);

Modified: brlcad/branches/thirdparty_rework/src/mged/attach.c
===================================================================
--- brlcad/branches/thirdparty_rework/src/mged/attach.c 2020-10-22 17:22:48 UTC 
(rev 77549)
+++ brlcad/branches/thirdparty_rework/src/mged/attach.c 2020-10-22 17:43:07 UTC 
(rev 77550)
@@ -68,7 +68,7 @@
 void set_curr_dm(struct mged_dm *nc)
 {
     mged_curr_dm = nc;
-    if (nc != MGED_DM_NULL) {
+    if (nc != MGED_DM_NULL && nc->dm_view_state) {
        GEDP->ged_gvp = nc->dm_view_state->vs_gvp;
        GEDP->ged_gvp->gv_grid = *nc->dm_grid_state; /* struct copy */
     } else {

Index: brlcad/branches/thirdparty_rework/src/other
===================================================================
--- brlcad/branches/thirdparty_rework/src/other 2020-10-22 17:22:48 UTC (rev 
77549)
+++ brlcad/branches/thirdparty_rework/src/other 2020-10-22 17:43:07 UTC (rev 
77550)

Property changes on: brlcad/branches/thirdparty_rework/src/other
___________________________________________________________________
Modified: svn:mergeinfo
## -9,4 +9,4 ##
 /brlcad/branches/osg/src/other:62110-62113
 /brlcad/branches/prep-cache/src/other:68236-68933
 /brlcad/branches/tcltk86/src/other:68300-75257
-/brlcad/trunk/src/other:75098-75115,75241-77472
\ No newline at end of property
+/brlcad/trunk/src/other:75098-75115,75241-77472,77527-77549
\ No newline at end of property
Modified: brlcad/branches/thirdparty_rework/src/other/gct/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/gct/CMakeLists.txt      
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/other/gct/CMakeLists.txt      
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,5 +1,5 @@
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # set CMake project name
 project(GCT)

Modified: brlcad/branches/thirdparty_rework/src/other/libutahrle/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/libutahrle/CMakeLists.txt       
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/other/libutahrle/CMakeLists.txt       
2020-10-22 17:43:07 UTC (rev 77550)
@@ -33,7 +33,7 @@
 # ***                libutahrle CMakeLists.txt                     ***
 # *******************************************************************
 
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 project(UTAHRLE)
 

Modified: brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt        
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt        
2020-10-22 17:43:07 UTC (rev 77550)
@@ -29,7 +29,7 @@
 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 project(OPENNURBS)
 

Modified: brlcad/branches/thirdparty_rework/src/other/poly2tri/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/poly2tri/CMakeLists.txt 
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/other/poly2tri/CMakeLists.txt 
2020-10-22 17:43:07 UTC (rev 77550)
@@ -37,7 +37,7 @@
 ###
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # Set CMake project name
 project(P2T)

Modified: brlcad/branches/thirdparty_rework/src/other/tktable/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/tktable/CMakeLists.txt  
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/other/tktable/CMakeLists.txt  
2020-10-22 17:43:07 UTC (rev 77550)
@@ -1,5 +1,5 @@
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.14)
 
 # set CMake project name
 project(TKTABLE)

Modified: brlcad/branches/thirdparty_rework/src/tclscripts/mged/bindings.tcl
===================================================================
--- brlcad/branches/thirdparty_rework/src/tclscripts/mged/bindings.tcl  
2020-10-22 17:22:48 UTC (rev 77549)
+++ brlcad/branches/thirdparty_rework/src/tclscripts/mged/bindings.tcl  
2020-10-22 17:43:07 UTC (rev 77550)
@@ -122,10 +122,10 @@
     bind $w t "winset $w; press top; break"
     bind $w b "winset $w; press bottom; break"
     bind $w l "winset $w; press left; break"
-    bind $w n "winset $w; puts \[nirt -b\]; break"
     bind $w r "winset $w; press right; break"
     bind $w R "winset $w; press rear; break"
     bind $w s "winset $w; press sill; break"
+    bind $w N "winset $w; puts \[nirt -b\]; break"
     bind $w o "winset $w; press oill; break"
     bind $w q "winset $w; press reject; break"
     bind $w A "winset $w; press accept; break"
@@ -232,7 +232,7 @@
     bind $w t {}
     bind $w b {}
     bind $w l {}
-    bind $w n {}
+    bind $w N {}
     bind $w r {}
     bind $w R {}
     bind $w s {}

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to