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