Revision: 69109
          http://sourceforge.net/p/brlcad/code/69109
Author:   n_reed
Date:     2016-10-18 02:29:54 +0000 (Tue, 18 Oct 2016)
Log Message:
-----------
sync r68947 through r69049 changes from trunk

Revision Links:
--------------
    http://sourceforge.net/p/brlcad/code/68947
    http://sourceforge.net/p/brlcad/code/69049

Modified Paths:
--------------
    brlcad/branches/brep-debug/CHANGES
    brlcad/branches/brep-debug/CMakeLists.txt
    brlcad/branches/brep-debug/NEWS
    brlcad/branches/brep-debug/doc/html/manuals/mged/mged_cmd_index.html
    brlcad/branches/brep-debug/doc/trunk_hierarchy.org
    brlcad/branches/brep-debug/include/analyze.h
    brlcad/branches/brep-debug/include/bn/vlist.h
    brlcad/branches/brep-debug/include/bu/CMakeLists.txt
    brlcad/branches/brep-debug/include/bu/defines.h
    brlcad/branches/brep-debug/include/bu/log.h
    brlcad/branches/brep-debug/include/bu/magic.h
    brlcad/branches/brep-debug/include/bu/str.h
    brlcad/branches/brep-debug/include/bu/uuid.h
    brlcad/branches/brep-debug/include/ged/objects.h
    brlcad/branches/brep-debug/include/nmg.h
    brlcad/branches/brep-debug/include/rt/func.h
    brlcad/branches/brep-debug/include/rt/functab.h
    brlcad/branches/brep-debug/include/rt/global.h
    brlcad/branches/brep-debug/include/rt/nmg.h
    brlcad/branches/brep-debug/include/rt/nurb.h
    brlcad/branches/brep-debug/include/rt/vlist.h
    brlcad/branches/brep-debug/misc/CMake/BRLCAD_CheckFunctions.cmake
    brlcad/branches/brep-debug/misc/CMake/BRLCAD_Options.cmake
    brlcad/branches/brep-debug/misc/CMake/BRLCAD_Util.cmake
    brlcad/branches/brep-debug/misc/CMake/FindBRLCADTCL.cmake
    brlcad/branches/brep-debug/misc/CMake/NSIS.template.in
    brlcad/branches/brep-debug/misc/CMake/ThirdParty.cmake
    brlcad/branches/brep-debug/misc/CMake/distcheck_repo_verify.cmake.in
    brlcad/branches/brep-debug/misc/CMakeLists.txt
    brlcad/branches/brep-debug/misc/clang-static-analyzer-run.sh
    brlcad/branches/brep-debug/src/CMakeLists.txt
    brlcad/branches/brep-debug/src/adrt/librender/cut.c
    brlcad/branches/brep-debug/src/adrt/librender/flos.c
    brlcad/branches/brep-debug/src/adrt/librender/spall.c
    brlcad/branches/brep-debug/src/adrt/load_g.c
    brlcad/branches/brep-debug/src/adrt/master/tienet_master.c
    brlcad/branches/brep-debug/src/anim/anim_fly.c
    brlcad/branches/brep-debug/src/anim/anim_hardtrack.c
    brlcad/branches/brep-debug/src/anim/anim_orient.c
    brlcad/branches/brep-debug/src/anim/anim_sort.c
    brlcad/branches/brep-debug/src/anim/chan_add.c
    brlcad/branches/brep-debug/src/anim/chan_mult.c
    brlcad/branches/brep-debug/src/anim/chan_permute.c
    brlcad/branches/brep-debug/src/archer/CMakeLists.txt
    brlcad/branches/brep-debug/src/burst/burst.c
    brlcad/branches/brep-debug/src/burst/error.c
    brlcad/branches/brep-debug/src/burst/idents.c
    brlcad/branches/brep-debug/src/conv/CMakeLists.txt
    brlcad/branches/brep-debug/src/conv/asc/asc2g.c
    brlcad/branches/brep-debug/src/conv/asc/pix2asc.c
    brlcad/branches/brep-debug/src/conv/comgeom/f2a.c
    brlcad/branches/brep-debug/src/conv/conv-vg2g.c
    brlcad/branches/brep-debug/src/conv/dxf/dxf-g.c
    brlcad/branches/brep-debug/src/conv/dxf/g-dxf.c
    brlcad/branches/brep-debug/src/conv/euclid/euclid-g.c
    brlcad/branches/brep-debug/src/conv/euclid/g-euclid.c
    brlcad/branches/brep-debug/src/conv/euclid/g-euclid1.c
    brlcad/branches/brep-debug/src/conv/fast4-g.c
    brlcad/branches/brep-debug/src/conv/g-acad.c
    brlcad/branches/brep-debug/src/conv/g-dot.c
    brlcad/branches/brep-debug/src/conv/g-egg.c
    brlcad/branches/brep-debug/src/conv/g-nff.c
    brlcad/branches/brep-debug/src/conv/g-obj.c
    brlcad/branches/brep-debug/src/conv/g-shell-rect.c
    brlcad/branches/brep-debug/src/conv/g-vrml.c
    brlcad/branches/brep-debug/src/conv/g-x3d.c
    brlcad/branches/brep-debug/src/conv/g-xxx.c
    brlcad/branches/brep-debug/src/conv/g-xxx_facets.c
    brlcad/branches/brep-debug/src/conv/iges/add_inner_shell.c
    brlcad/branches/brep-debug/src/conv/iges/brep.c
    brlcad/branches/brep-debug/src/conv/iges/extrude.c
    brlcad/branches/brep-debug/src/conv/iges/g-iges.c
    brlcad/branches/brep-debug/src/conv/iges/get_cnurb_curve.c
    brlcad/branches/brep-debug/src/conv/iges/get_outer_shell.c
    brlcad/branches/brep-debug/src/conv/iges/iges.c
    brlcad/branches/brep-debug/src/conv/iges/main.c
    brlcad/branches/brep-debug/src/conv/iges/make_face.c
    brlcad/branches/brep-debug/src/conv/iges/make_nurb_face.c
    brlcad/branches/brep-debug/src/conv/iges/orient_loops.c
    brlcad/branches/brep-debug/src/conv/iges/spline.c
    brlcad/branches/brep-debug/src/conv/iges/trimsurf.c
    brlcad/branches/brep-debug/src/conv/jack/g-jack.c
    brlcad/branches/brep-debug/src/conv/jack/jack-g.c
    brlcad/branches/brep-debug/src/conv/nastran-g.c
    brlcad/branches/brep-debug/src/conv/nmg/asc-nmg.c
    brlcad/branches/brep-debug/src/conv/nmg/g-nmg.c
    brlcad/branches/brep-debug/src/conv/nmg/nmg-rib.c
    brlcad/branches/brep-debug/src/conv/nmg/nmg-sgp.c
    brlcad/branches/brep-debug/src/conv/obj-g.c
    brlcad/branches/brep-debug/src/conv/off/g-off.c
    brlcad/branches/brep-debug/src/conv/off/off-g.c
    brlcad/branches/brep-debug/src/conv/patch/patch-g.c
    brlcad/branches/brep-debug/src/conv/patch/rpatch.c
    brlcad/branches/brep-debug/src/conv/ply/g-ply.c
    brlcad/branches/brep-debug/src/conv/proe-g.c
    brlcad/branches/brep-debug/src/conv/raw/g-raw.c
    brlcad/branches/brep-debug/src/conv/shp/shapelib/shpopen.c
    brlcad/branches/brep-debug/src/conv/step/g-ap242/g-ap242.cpp
    brlcad/branches/brep-debug/src/conv/step/ifc-g/ifc-g.cpp
    brlcad/branches/brep-debug/src/conv/stl/g-stl.c
    brlcad/branches/brep-debug/src/conv/tankill/g-tankill.c
    brlcad/branches/brep-debug/src/conv/tankill/tankill-g.c
    brlcad/branches/brep-debug/src/conv/viewpoint-g.c
    brlcad/branches/brep-debug/src/external/Cubit/g-sat.cpp
    brlcad/branches/brep-debug/src/fb/CMakeLists.txt
    brlcad/branches/brep-debug/src/fb/bw-fb.c
    brlcad/branches/brep-debug/src/fb/fb-bw.c
    brlcad/branches/brep-debug/src/fb/fb-pix.c
    brlcad/branches/brep-debug/src/fb/fb-rle.c
    brlcad/branches/brep-debug/src/fb/fbcbars.c
    brlcad/branches/brep-debug/src/fb/fbclear.c
    brlcad/branches/brep-debug/src/fb/fbcolor.c
    brlcad/branches/brep-debug/src/fb/fbframe.c
    brlcad/branches/brep-debug/src/fb/fbgamma.c
    brlcad/branches/brep-debug/src/fb/fbgrid.c
    brlcad/branches/brep-debug/src/fb/fblabel.c
    brlcad/branches/brep-debug/src/fb/fbline.c
    brlcad/branches/brep-debug/src/fb/fbpoint.c
    brlcad/branches/brep-debug/src/fb/gif-fb.c
    brlcad/branches/brep-debug/src/fb/gif2fb.c
    brlcad/branches/brep-debug/src/fb/pix-fb.c
    brlcad/branches/brep-debug/src/fb/pixflip-fb.c
    brlcad/branches/brep-debug/src/fb/plot3-fb.c
    brlcad/branches/brep-debug/src/fb/rle-fb.c
    brlcad/branches/brep-debug/src/fb/spm-fb.c
    brlcad/branches/brep-debug/src/fbed/execshell.c
    brlcad/branches/brep-debug/src/fbserv/fbserv.c
    brlcad/branches/brep-debug/src/fbserv/server.c
    brlcad/branches/brep-debug/src/gtools/beset/beset.c
    brlcad/branches/brep-debug/src/gtools/beset/fitness.c
    brlcad/branches/brep-debug/src/halftone/sharpen.c
    brlcad/branches/brep-debug/src/irprep/ir-X.c
    brlcad/branches/brep-debug/src/irprep/irdisp.c
    brlcad/branches/brep-debug/src/irprep/pictx.c
    brlcad/branches/brep-debug/src/libanalyze/CMakeLists.txt
    brlcad/branches/brep-debug/src/libanalyze/find_subtracted_shapes.cpp
    brlcad/branches/brep-debug/src/libanalyze/voxels.c
    brlcad/branches/brep-debug/src/libbg/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbg/chull3d.cpp
    brlcad/branches/brep-debug/src/libbn/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbn/axis.c
    brlcad/branches/brep-debug/src/libbn/clip.c
    brlcad/branches/brep-debug/src/libbn/msr.c
    brlcad/branches/brep-debug/src/libbn/noise.c
    brlcad/branches/brep-debug/src/libbn/randmt.c
    brlcad/branches/brep-debug/src/libbn/tests/bn_qmath.c
    brlcad/branches/brep-debug/src/libbn/vert_tree.c
    brlcad/branches/brep-debug/src/libbn/vlist.c
    brlcad/branches/brep-debug/src/libbrep/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbrep/debug_plot.cpp
    brlcad/branches/brep-debug/src/libbrep/libbrep_brep_tools.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_cone.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_sphere.cpp
    brlcad/branches/brep-debug/src/libbrep/tests/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbu/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbu/affinity.c
    brlcad/branches/brep-debug/src/libbu/argv.c
    brlcad/branches/brep-debug/src/libbu/badmagic.c
    brlcad/branches/brep-debug/src/libbu/bomb.c
    brlcad/branches/brep-debug/src/libbu/booleanize.c
    brlcad/branches/brep-debug/src/libbu/color.c
    brlcad/branches/brep-debug/src/libbu/encode.c
    brlcad/branches/brep-debug/src/libbu/escape.c
    brlcad/branches/brep-debug/src/libbu/getcwd.c
    brlcad/branches/brep-debug/src/libbu/hook.c
    brlcad/branches/brep-debug/src/libbu/htond.c
    brlcad/branches/brep-debug/src/libbu/htonf.c
    brlcad/branches/brep-debug/src/libbu/interrupt.c
    brlcad/branches/brep-debug/src/libbu/lex.c
    brlcad/branches/brep-debug/src/libbu/malloc.c
    brlcad/branches/brep-debug/src/libbu/mappedfile.c
    brlcad/branches/brep-debug/src/libbu/opt.c
    brlcad/branches/brep-debug/src/libbu/parallel.c
    brlcad/branches/brep-debug/src/libbu/parse.c
    brlcad/branches/brep-debug/src/libbu/path.c
    brlcad/branches/brep-debug/src/libbu/progname.c
    brlcad/branches/brep-debug/src/libbu/scan.c
    brlcad/branches/brep-debug/src/libbu/semaphore.c
    brlcad/branches/brep-debug/src/libbu/sscanf.c
    brlcad/branches/brep-debug/src/libbu/tests/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbu/tests/bu_badmagic.c
    brlcad/branches/brep-debug/src/libbu/tests/bu_booleanize.c
    brlcad/branches/brep-debug/src/libbu/tests/bu_uuid.c
    brlcad/branches/brep-debug/src/libbu/uuid.c
    brlcad/branches/brep-debug/src/libbu/vls_vprintf.c
    brlcad/branches/brep-debug/src/libbu/y2038/README.txt
    brlcad/branches/brep-debug/src/libdm/dm-osgl.cpp
    brlcad/branches/brep-debug/src/libdm/dm-plot.c
    brlcad/branches/brep-debug/src/libdm/osg-test.cpp
    brlcad/branches/brep-debug/src/libfb/fb_generic.c
    brlcad/branches/brep-debug/src/libfb/fb_paged_io.c
    brlcad/branches/brep-debug/src/libfb/fb_rect.c
    brlcad/branches/brep-debug/src/libfb/if_debug.c
    brlcad/branches/brep-debug/src/libfb/if_disk.c
    brlcad/branches/brep-debug/src/libfb/if_mem.c
    brlcad/branches/brep-debug/src/libfb/if_null.c
    brlcad/branches/brep-debug/src/libfb/if_remote.c
    brlcad/branches/brep-debug/src/libfb/if_stack.c
    brlcad/branches/brep-debug/src/libfb/if_tk.c
    brlcad/branches/brep-debug/src/libgcv/bottess.c
    brlcad/branches/brep-debug/src/libgcv/facetize.c
    brlcad/branches/brep-debug/src/libgcv/gcv.c
    brlcad/branches/brep-debug/src/libgcv/plugins/fastgen4/fastgen4_read.c
    brlcad/branches/brep-debug/src/libgcv/plugins/fastgen4/fastgen4_write.cpp
    brlcad/branches/brep-debug/src/libgcv/plugins/obj/obj_read.c
    brlcad/branches/brep-debug/src/libgcv/plugins/obj/obj_write.c
    brlcad/branches/brep-debug/src/libgcv/plugins/obj/tri_face.c
    brlcad/branches/brep-debug/src/libgcv/plugins/stl/stl_write.c
    brlcad/branches/brep-debug/src/libgcv/plugins/vrml/vrml_read/string_util.cpp
    brlcad/branches/brep-debug/src/libgcv/plugins/vrml/vrml_write.c
    brlcad/branches/brep-debug/src/libgcv/region_end.c
    brlcad/branches/brep-debug/src/libgcv/region_end_mc.c
    brlcad/branches/brep-debug/src/libged/CMakeLists.txt
    brlcad/branches/brep-debug/src/libged/attr.c
    brlcad/branches/brep-debug/src/libged/bev.c
    brlcad/branches/brep-debug/src/libged/bigE.c
    brlcad/branches/brep-debug/src/libged/bot_fuse.c
    brlcad/branches/brep-debug/src/libged/comb.c
    brlcad/branches/brep-debug/src/libged/combmem.c
    brlcad/branches/brep-debug/src/libged/dag.cpp
    brlcad/branches/brep-debug/src/libged/debugnmg.c
    brlcad/branches/brep-debug/src/libged/decompose.c
    brlcad/branches/brep-debug/src/libged/display_list.c
    brlcad/branches/brep-debug/src/libged/draw.c
    brlcad/branches/brep-debug/src/libged/edit.c
    brlcad/branches/brep-debug/src/libged/facetize.c
    brlcad/branches/brep-debug/src/libged/ged.c
    brlcad/branches/brep-debug/src/libged/get_comb.c
    brlcad/branches/brep-debug/src/libged/gqa.c
    brlcad/branches/brep-debug/src/libged/inside.c
    brlcad/branches/brep-debug/src/libged/lt.c
    brlcad/branches/brep-debug/src/libged/make_pnts.c
    brlcad/branches/brep-debug/src/libged/nmg_cmface.c
    brlcad/branches/brep-debug/src/libged/nmg_collapse.c
    brlcad/branches/brep-debug/src/libged/nmg_fix_normals.c
    brlcad/branches/brep-debug/src/libged/nmg_simplify.c
    brlcad/branches/brep-debug/src/libged/red.c
    brlcad/branches/brep-debug/src/libged/shells.c
    brlcad/branches/brep-debug/src/libged/simulate/collision.cpp
    brlcad/branches/brep-debug/src/libged/simulate/collision.hpp
    brlcad/branches/brep-debug/src/libged/simulate/interface.cpp
    brlcad/branches/brep-debug/src/libged/simulate/physics_world.cpp
    brlcad/branches/brep-debug/src/libged/simulate/physics_world.hpp
    brlcad/branches/brep-debug/src/libged/simulate/rt_instance.cpp
    brlcad/branches/brep-debug/src/libged/simulate/rt_instance.hpp
    brlcad/branches/brep-debug/src/libged/simulate/simulation.cpp
    brlcad/branches/brep-debug/src/libged/simulate/simulation.hpp
    brlcad/branches/brep-debug/src/libged/simulate/utility.hpp
    brlcad/branches/brep-debug/src/libged/simulate/world_object.cpp
    brlcad/branches/brep-debug/src/libged/simulate/world_object.hpp
    brlcad/branches/brep-debug/src/libged/tables.c
    brlcad/branches/brep-debug/src/libged/track.c
    brlcad/branches/brep-debug/src/libicv/CMakeLists.txt
    brlcad/branches/brep-debug/src/libicv/crop.c
    brlcad/branches/brep-debug/src/libicv/encoding.c
    brlcad/branches/brep-debug/src/libpkg/pkg.c
    brlcad/branches/brep-debug/src/librt/CMakeLists.txt
    brlcad/branches/brep-debug/src/librt/attributes.c
    brlcad/branches/brep-debug/src/librt/binunif/db5_bin.c
    brlcad/branches/brep-debug/src/librt/bundle.c
    brlcad/branches/brep-debug/src/librt/cache.c
    brlcad/branches/brep-debug/src/librt/comb/comb.c
    brlcad/branches/brep-debug/src/librt/comb/db_comb.c
    brlcad/branches/brep-debug/src/librt/db5_alloc.c
    brlcad/branches/brep-debug/src/librt/db5_io.c
    brlcad/branches/brep-debug/src/librt/db5_scan.c
    brlcad/branches/brep-debug/src/librt/db_alloc.c
    brlcad/branches/brep-debug/src/librt/db_fullpath.c
    brlcad/branches/brep-debug/src/librt/db_tree.c
    brlcad/branches/brep-debug/src/librt/nurb_example.c
    brlcad/branches/brep-debug/src/librt/oslo_calc.c
    brlcad/branches/brep-debug/src/librt/oslo_map.c
    brlcad/branches/brep-debug/src/librt/prep.c
    brlcad/branches/brep-debug/src/librt/primitives/arb8/arb8.c
    brlcad/branches/brep-debug/src/librt/primitives/arbn/arbn.c
    brlcad/branches/brep-debug/src/librt/primitives/ars/ars.c
    brlcad/branches/brep-debug/src/librt/primitives/bot/bot.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/auxiliary/mm.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/auxiliary/mmbinsort.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/auxiliary/mmbitmap.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/auxiliary/mmhash.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/auxiliary/mmthread.h
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/meshdecimation.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/meshdecimationSSE2.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/meshdecimationSSE3.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/meshdecimationSSE4p1.c
    
brlcad/branches/brep-debug/src/librt/primitives/bot/gct_decimation/meshoptimizer.c
    brlcad/branches/brep-debug/src/librt/primitives/brep/brep.cpp
    brlcad/branches/brep-debug/src/librt/primitives/bspline/bspline.cpp
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_basis.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_bezier.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_bound.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_c2.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_copy.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_diff.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_eval.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_flat.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_interp.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_knot.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_norm.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_plot.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_poly.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_ray.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_refine.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_solve.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_split.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_tess.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_trim.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_util.c
    brlcad/branches/brep-debug/src/librt/primitives/bspline/nurb_xsplit.c
    brlcad/branches/brep-debug/src/librt/primitives/cline/cline.c
    brlcad/branches/brep-debug/src/librt/primitives/dsp/dsp.c
    brlcad/branches/brep-debug/src/librt/primitives/ebm/ebm.c
    brlcad/branches/brep-debug/src/librt/primitives/ehy/ehy.c
    brlcad/branches/brep-debug/src/librt/primitives/ell/ell.c
    brlcad/branches/brep-debug/src/librt/primitives/epa/epa.c
    brlcad/branches/brep-debug/src/librt/primitives/eto/eto.c
    brlcad/branches/brep-debug/src/librt/primitives/extrude/extrude.c
    brlcad/branches/brep-debug/src/librt/primitives/grip/grip.c
    brlcad/branches/brep-debug/src/librt/primitives/half/half.c
    brlcad/branches/brep-debug/src/librt/primitives/hrt/hrt.c
    brlcad/branches/brep-debug/src/librt/primitives/hyp/hyp.c
    brlcad/branches/brep-debug/src/librt/primitives/joint/joint.c
    brlcad/branches/brep-debug/src/librt/primitives/metaball/metaball_tri.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_bool.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_ck.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_class.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_copy.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_eval.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_extrude.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_fcut.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_fuse.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_index.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_info.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_inter.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_junk.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_manif.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_mesh.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_mirror.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_misc.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_mk.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_mod.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_plot.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_pr.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_pt_fu.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_rt_isect.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_rt_segs.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_tri.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_tri_mc.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg_visit.c
    brlcad/branches/brep-debug/src/librt/primitives/obj_prep.c
    brlcad/branches/brep-debug/src/librt/primitives/part/part.c
    brlcad/branches/brep-debug/src/librt/primitives/pipe/pipe.c
    brlcad/branches/brep-debug/src/librt/primitives/poly/poly.c
    brlcad/branches/brep-debug/src/librt/primitives/rhc/rhc.c
    brlcad/branches/brep-debug/src/librt/primitives/rpc/rpc.c
    brlcad/branches/brep-debug/src/librt/primitives/sketch/sketch.c
    brlcad/branches/brep-debug/src/librt/primitives/submodel/submodel.c
    brlcad/branches/brep-debug/src/librt/primitives/superell/superell.c
    brlcad/branches/brep-debug/src/librt/primitives/table.c
    brlcad/branches/brep-debug/src/librt/primitives/tgc/tgc.c
    brlcad/branches/brep-debug/src/librt/primitives/tor/tor.c
    brlcad/branches/brep-debug/src/librt/primitives/vol/vol.c
    brlcad/branches/brep-debug/src/librt/primitives/xxx/xxx.c
    brlcad/branches/brep-debug/src/librt/reduce_db.cpp
    brlcad/branches/brep-debug/src/librt/search.c
    brlcad/branches/brep-debug/src/librt/search.h
    brlcad/branches/brep-debug/src/librt/shoot.c
    brlcad/branches/brep-debug/src/librt/vlist.c
    brlcad/branches/brep-debug/src/libtclcad/tclcad_obj.c
    brlcad/branches/brep-debug/src/libwdb/mater.c
    brlcad/branches/brep-debug/src/libwdb/nmg.c
    brlcad/branches/brep-debug/src/libwdb/reg.c
    brlcad/branches/brep-debug/src/mged/CMakeLists.txt
    brlcad/branches/brep-debug/src/mged/cad_boundp.c
    brlcad/branches/brep-debug/src/mged/cad_parea.c
    brlcad/branches/brep-debug/src/mged/cmd.c
    brlcad/branches/brep-debug/src/mged/edsol.c
    brlcad/branches/brep-debug/src/mged/setup.c
    brlcad/branches/brep-debug/src/mged/wdb_obj.c
    brlcad/branches/brep-debug/src/nirt/showshot.c
    brlcad/branches/brep-debug/src/other/libnetpbm/pm_config.h.in
    brlcad/branches/brep-debug/src/proc-db/brickwall.c
    brlcad/branches/brep-debug/src/proc-db/nmgmodel.c
    brlcad/branches/brep-debug/src/proc-db/spltest.c
    brlcad/branches/brep-debug/src/proc-db/tea.c
    brlcad/branches/brep-debug/src/proc-db/tea_nmg.c
    brlcad/branches/brep-debug/src/proc-db/tube.c
    brlcad/branches/brep-debug/src/proc-db/wavy.c
    brlcad/branches/brep-debug/src/rt/opt.c
    brlcad/branches/brep-debug/src/rt/read-rtlog.c
    brlcad/branches/brep-debug/src/rt/rtscale.c
    brlcad/branches/brep-debug/src/rt/rtshot.c
    brlcad/branches/brep-debug/src/sig/a-d.c
    brlcad/branches/brep-debug/src/sig/bw-d.c
    brlcad/branches/brep-debug/src/sig/c-d.c
    brlcad/branches/brep-debug/src/sig/d-a.c
    brlcad/branches/brep-debug/src/sig/d-bw.c
    brlcad/branches/brep-debug/src/sig/d-f.c
    brlcad/branches/brep-debug/src/sig/d-i.c
    brlcad/branches/brep-debug/src/sig/d-u.c
    brlcad/branches/brep-debug/src/sig/d2-c.c
    brlcad/branches/brep-debug/src/sig/damdf.c
    brlcad/branches/brep-debug/src/sig/dauto.c
    brlcad/branches/brep-debug/src/sig/dauto2.c
    brlcad/branches/brep-debug/src/sig/dconv.c
    brlcad/branches/brep-debug/src/sig/ddisp.c
    brlcad/branches/brep-debug/src/sig/dfft.c
    brlcad/branches/brep-debug/src/sig/dmod.c
    brlcad/branches/brep-debug/src/sig/dpeak.c
    brlcad/branches/brep-debug/src/sig/dsel.c
    brlcad/branches/brep-debug/src/sig/dstats.c
    brlcad/branches/brep-debug/src/sig/dwin.c
    brlcad/branches/brep-debug/src/sig/f-d.c
    brlcad/branches/brep-debug/src/sig/f-i.c
    brlcad/branches/brep-debug/src/sig/i-d.c
    brlcad/branches/brep-debug/src/sig/i-f.c
    brlcad/branches/brep-debug/src/sig/ihist.c
    brlcad/branches/brep-debug/src/sig/imod.c
    brlcad/branches/brep-debug/src/sig/istats.c
    brlcad/branches/brep-debug/src/sig/smod.c
    brlcad/branches/brep-debug/src/sig/u-d.c
    brlcad/branches/brep-debug/src/sig/u-f.c
    brlcad/branches/brep-debug/src/sig/umod.c
    brlcad/branches/brep-debug/src/sig/ustats.c
    brlcad/branches/brep-debug/src/tab/scriptsort.c
    brlcad/branches/brep-debug/src/tclscripts/archer/Arb4EditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/Arb5EditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/Arb6EditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/Arb7EditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/Arb8EditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/BotEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/CombEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/EhyEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/EllEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/EpaEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/EtoEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/ExtrudeEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/GeometryEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/GripEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/HalfEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/HypEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/JointEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/LoadArcherLibs.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/PartEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/PipeEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/Plugin.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/RhcEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/RpcEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/ShaderEdit.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/SphereEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/SuperellEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/TgcEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/TorusEditFrame.tcl
    brlcad/branches/brep-debug/src/tclscripts/archer/bgerror.tcl
    brlcad/branches/brep-debug/src/tclscripts/fs_dialog.tk
    brlcad/branches/brep-debug/src/tclscripts/hoc.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/ModelAxesControl.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/ViewAxesControl.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/apply_mat.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/pattern.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/pattern_gui.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/CMakeLists.txt
    brlcad/branches/brep-debug/src/tclscripts/mged/accel.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/anim.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/apply.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/asc2g.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/attr_edit.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/build_region.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/collaborate.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/comb.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/combmenu.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/e_id.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/editmenu.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/eobjmenu.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/extract.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/g2asc.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/illum.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/list.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/mview.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/overlap.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/plot.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/ps.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/ray.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/rt.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/rt_script.tcl
    brlcad/branches/brep-debug/src/tclscripts/sdialogs/scripts/entrydialog.itk
    brlcad/branches/brep-debug/src/tclscripts/sdialogs/scripts/listdialog.itk
    brlcad/branches/brep-debug/src/tclscripts/sdialogs/scripts/stddlgs.tcl
    brlcad/branches/brep-debug/src/util/alias-pix.c
    brlcad/branches/brep-debug/src/util/ap-pix.c
    brlcad/branches/brep-debug/src/util/azel.c
    brlcad/branches/brep-debug/src/util/buffer.c
    brlcad/branches/brep-debug/src/util/bw-a.c
    brlcad/branches/brep-debug/src/util/bw-pix.c
    brlcad/branches/brep-debug/src/util/bw-png.c
    brlcad/branches/brep-debug/src/util/bw-ps.c
    brlcad/branches/brep-debug/src/util/bw-rle.c
    brlcad/branches/brep-debug/src/util/bwcrop.c
    brlcad/branches/brep-debug/src/util/bwdiff.c
    brlcad/branches/brep-debug/src/util/bwhist.c
    brlcad/branches/brep-debug/src/util/bwhisteq.c
    brlcad/branches/brep-debug/src/util/bwmod.c
    brlcad/branches/brep-debug/src/util/bwstat.c
    brlcad/branches/brep-debug/src/util/dpix-pix.c
    brlcad/branches/brep-debug/src/util/fix_polysolids.c
    brlcad/branches/brep-debug/src/util/hex.c
    brlcad/branches/brep-debug/src/util/lowp.c
    brlcad/branches/brep-debug/src/util/mac-pix.c
    brlcad/branches/brep-debug/src/util/pix-alias.c
    brlcad/branches/brep-debug/src/util/pix-ps.c
    brlcad/branches/brep-debug/src/util/pix-rle.c
    brlcad/branches/brep-debug/src/util/pix-spm.c
    brlcad/branches/brep-debug/src/util/pix-sun.c
    brlcad/branches/brep-debug/src/util/pix-yuv.c
    brlcad/branches/brep-debug/src/util/pix3filter.c
    brlcad/branches/brep-debug/src/util/pixbackgnd.c
    brlcad/branches/brep-debug/src/util/pixbgstrip.c
    brlcad/branches/brep-debug/src/util/pixblend.c
    brlcad/branches/brep-debug/src/util/pixborder.c
    brlcad/branches/brep-debug/src/util/pixcolors.c
    brlcad/branches/brep-debug/src/util/pixcrop.c
    brlcad/branches/brep-debug/src/util/pixdiff.c
    brlcad/branches/brep-debug/src/util/pixelswap.c
    brlcad/branches/brep-debug/src/util/pixembed.c
    brlcad/branches/brep-debug/src/util/pixfields.c
    brlcad/branches/brep-debug/src/util/pixfieldsep.c
    brlcad/branches/brep-debug/src/util/pixfilter.c
    brlcad/branches/brep-debug/src/util/pixhalve.c
    brlcad/branches/brep-debug/src/util/pixhist3d-plot3.c
    brlcad/branches/brep-debug/src/util/pixhist3d.c
    brlcad/branches/brep-debug/src/util/pixinterp2x.c
    brlcad/branches/brep-debug/src/util/pixmerge.c
    brlcad/branches/brep-debug/src/util/pixmorph.c
    brlcad/branches/brep-debug/src/util/pixsaturate.c
    brlcad/branches/brep-debug/src/util/pixshrink.c
    brlcad/branches/brep-debug/src/util/pixstat.c
    brlcad/branches/brep-debug/src/util/pixtile.c
    brlcad/branches/brep-debug/src/util/pixuntile.c
    brlcad/branches/brep-debug/src/util/plot3-asc.c
    brlcad/branches/brep-debug/src/util/plot3-plot3.c
    brlcad/branches/brep-debug/src/util/plot3-ps.c
    brlcad/branches/brep-debug/src/util/plot3color.c
    brlcad/branches/brep-debug/src/util/plot3line2.c
    brlcad/branches/brep-debug/src/util/plot3stat.c
    brlcad/branches/brep-debug/src/util/rle_args.c
    brlcad/branches/brep-debug/src/util/ttcp.c
    brlcad/branches/brep-debug/src/util/wavelet.c
    brlcad/branches/brep-debug/src/util/yuv-pix.c

Added Paths:
-----------
    brlcad/branches/brep-debug/include/bu/exit.h
    brlcad/branches/brep-debug/include/bu/hook.h
    brlcad/branches/brep-debug/misc/CMake/FindUUID.cmake
    brlcad/branches/brep-debug/misc/CMake/NSIS.InstallOptions.ini.in
    brlcad/branches/brep-debug/src/libanalyze/MeshHealing/
    brlcad/branches/brep-debug/src/libanalyze/heal_mesh.cpp
    brlcad/branches/brep-debug/src/libged/heal.c

Removed Paths:
-------------
    brlcad/branches/brep-debug/misc/nsis/brlcad.nsi
    brlcad/branches/brep-debug/misc/nsis/updateVersion.tcl
    brlcad/branches/brep-debug/src/mged/mged.bat
    brlcad/branches/brep-debug/src/tclscripts/mged/muves.tcl

Property Changed:
----------------
    brlcad/branches/brep-debug/
    brlcad/branches/brep-debug/NEWS

Index: brlcad/branches/brep-debug
===================================================================
--- brlcad/branches/brep-debug  2016-10-18 02:04:14 UTC (rev 69108)
+++ brlcad/branches/brep-debug  2016-10-18 02:29:54 UTC (rev 69109)

Property changes on: brlcad/branches/brep-debug
___________________________________________________________________
Modified: svn:mergeinfo
## -5,4 +5,4 ##
 /brlcad/branches/opencl:65867-66137
 /brlcad/branches/osg:62110-62113
 /brlcad/branches/prep-cache:68236-68933
-/brlcad/trunk:61364-68144,68146-68249,68252-68266,68284-68821,68823-68945
+/brlcad/trunk:61364-68144,68146-68249,68252-68266,68284-68821,68823-68945,68947-69049
\ No newline at end of property
Modified: brlcad/branches/brep-debug/CHANGES
===================================================================
--- brlcad/branches/brep-debug/CHANGES  2016-10-18 02:04:14 UTC (rev 69108)
+++ brlcad/branches/brep-debug/CHANGES  2016-10-18 02:29:54 UTC (rev 69109)
@@ -610,14 +610,20 @@
 have been identified in chronological order.  As expressions are not
 extensively tested, use with caution.
 
-Unless noted otherwise, expressions are shown using Perl syntax and
-may need adjustment (particularly quoting of '(', ')', and '|'
-characters) for other environments.  Most expressions will apply with:
-       perl -0777 -pi -e 'EXPRESSION' FILE
+Unless noted otherwise, expressions are shown using Perl syntax (i.e.,
+the '(', ')', and '|' characters pertain to subexpression captures,
+escape with '\' to match literally.  Expressions should apply with:
 
-To apply them to an entire SVN checkout, the following pattern is useful:
+perl -0777 -pi -e 'EXPRESSION' FILE
+
+To apply an expression to an entire SVN checkout, the following
+pattern is useful:
+
 find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec 
perl -0777 -pi -e 'EXPRESSION' {} \;
 
+Our catalog of minimally impacting changes follows with the most
+recent changes listed at the bottom.
+
 6.0 (sed lines)
 ---
 g/struct structparse/s//struct bu_structparse/g
@@ -1217,3 +1223,81 @@
         fixed misleading name [7.26]
 s/(#[[:space:]]*include[[:space:]]+["<])bu\/rb\.h/\1bu\/redblack.h/g
        clearer header name [7.26]
+s/rt_plot_vlblock/bn_plot_vlblock/g
+s/rt_vlist_to_uplot/bn_vlist_to_uplot/g
+        move vlist functions to libbn [7.26]
+s/rt_nurb_bezier/nmg_nurb_bezier/g
+s/rt_nurb_c_split/nmg_nurb_c_split/g
+s/rt_nurb_free_cnurb/nmg_nurb_free_cnurb/g
+s/rt_nurb_free_snurb/nmg_nurb_free_snurb/g
+s/rt_nurb_intersect/nmg_nurb_intersect/g
+s/rt_nurb_new_cnurb/nmg_nurb_new_cnurb/g
+s/rt_nurb_new_snurb/nmg_nurb_new_snurb/g
+s/rt_nurb_s_eval/nmg_nurb_s_eval/g
+s/rt_nurb_s_norm/nmg_nurb_s_norm/g
+s/rt_nurb_uv_hit/nmg_nurb_uv_hit/g
+s/rt_arc2d_to_cnurb/nmg_arc2d_to_cnurb/g
+s/rt_join_cnurbs/nmg_join_cnurbs/g
+s/rt_nurb_c_eval/nmg_nurb_c_eval/g
+s/rt_nurb_c_print/nmg_nurb_c_print/g
+s/rt_nurb_kvgen/nmg_nurb_kvgen/g
+s/rt_nurb_kvmerge/nmg_nurb_kvmerge/g
+s/rt_nurb_s_print/nmg_nurb_s_print/g
+s/rt_nurb_s_refine/nmg_nurb_s_refine/g
+s/rt_bez_check/nmg_bez_check/g
+s/rt_nurb_back_solve/nmg_nurb_back_solve/g
+s/rt_nurb_basis_eval/nmg_nurb_basis_eval/g
+s/rt_nurb_c_bound/nmg_nurb_c_bound/g
+s/rt_nurb_c_check/nmg_nurb_c_check/g
+s/rt_nurb_c_diff/nmg_nurb_c_diff/g
+s/rt_nurb_c_refine/nmg_nurb_c_refine/g
+s/rt_nurb_c_xsplit/nmg_nurb_c_xsplit/g
+s/rt_nurb_calc_oslo/nmg_nurb_calc_oslo/g
+s/rt_nurb_cinterp/nmg_nurb_cinterp/g
+s/rt_nurb_clean_cnurb/nmg_nurb_clean_cnurb/g
+s/rt_nurb_clip_srf/nmg_nurb_clip_srf/g
+s/rt_nurb_crv_copy/nmg_nurb_crv_copy/g
+s/rt_nurb_crv_flat/nmg_nurb_crv_flat/g
+s/rt_nurb_curvature/nmg_nurb_curvature/g
+s/rt_nurb_doolittle/nmg_nurb_doolittle/g
+s/rt_nurb_eval_crv/nmg_nurb_eval_crv/g
+s/rt_nurb_forw_solve/nmg_nurb_forw_solve/g
+s/rt_nurb_free_oslo/nmg_nurb_free_oslo/g
+s/rt_nurb_gen_knot_vector/nmg_nurb_gen_knot_vector/g
+s/rt_nurb_knot_index/nmg_nurb_knot_index/g
+s/rt_nurb_kvcheck/nmg_nurb_kvcheck/g
+s/rt_nurb_kvcopy/nmg_nurb_kvcopy/g
+s/rt_nurb_kvextract/nmg_nurb_kvextract/g
+s/rt_nurb_kvknot/nmg_nurb_kvknot/g
+s/rt_nurb_kvmult/nmg_nurb_kvmult/g
+s/rt_nurb_kvnorm/nmg_nurb_kvnorm/g
+s/rt_nurb_map_oslo/nmg_nurb_map_oslo/g
+s/rt_nurb_mesh_diff/nmg_nurb_mesh_diff/g
+s/rt_nurb_mk_poly/nmg_nurb_mk_poly/g
+s/rt_nurb_p_mat/nmg_nurb_p_mat/g
+s/rt_nurb_plot_cnurb/nmg_nurb_plot_cnurb/g
+s/rt_nurb_plot_snurb/nmg_nurb_plot_snurb/g
+s/rt_nurb_poly/nmg_nurb_poly/g
+s/rt_nurb_pr_crv/nmg_nurb_pr_crv/g
+s/rt_nurb_pr_kv/nmg_nurb_pr_kv/g
+s/rt_nurb_pr_mesh/nmg_nurb_pr_mesh/g
+s/rt_nurb_pr_oslo/nmg_nurb_pr_oslo/g
+s/rt_nurb_print_pt_type/nmg_nurb_print_pt_type/g
+s/rt_nurb_project_srf/nmg_nurb_project_srf/g
+s/rt_nurb_region_from_srf/nmg_nurb_region_from_srf/g
+s/rt_nurb_s_bound/nmg_nurb_s_bound/g
+s/rt_nurb_s_check/nmg_nurb_s_check/g
+s/rt_nurb_s_diff/nmg_nurb_s_diff/g
+s/rt_nurb_s_flat/nmg_nurb_s_flat/g
+s/rt_nurb_s_plot/nmg_nurb_s_plot/g
+s/rt_nurb_s_split/nmg_nurb_s_split/g
+s/rt_nurb_s_xsplit/nmg_nurb_s_xsplit/g
+s/rt_nurb_scopy/nmg_nurb_scopy/g
+s/rt_nurb_sinterp/nmg_nurb_sinterp/g
+s/rt_nurb_solve/nmg_nurb_solve/g
+s/rt_nurb_to_poly/nmg_nurb_to_poly/g
+        rename old nurbs functions intertwined with nmg to use nmg prefix 
[7.26]
+s/RTG.NMG_debug/nmg_debug/g
+       make nmg debug flag top level, like libbu's [7.26]
+s/BU_ASSERT(_[A-Z_]+)\(([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\))\);/BU_ASSERT(\2\3\4);/g
+       consolidated BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, 
BU_ASSERT_SSIZE_T, BU_ASSERT_DOUBLE [7.26]

Modified: brlcad/branches/brep-debug/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/CMakeLists.txt   2016-10-18 02:04:14 UTC (rev 
69108)
+++ brlcad/branches/brep-debug/CMakeLists.txt   2016-10-18 02:29:54 UTC (rev 
69109)
@@ -535,20 +535,107 @@
 
   set_target_properties(unit PROPERTIES FOLDER "BRL-CAD Validation Testing")
 
-  function(add_test test_name test_prog)
-    _add_test(${test_name} ${test_prog} ${ARGN})
-    if (NOT "${test_name}" STREQUAL "NAME")
-      if (NOT "${test_name}" MATCHES ^regress- AND NOT "${test_prog}" MATCHES 
^regress- AND NOT "${test_name}" STREQUAL "benchmark")
-       add_dependencies(unit ${test_prog})
-       add_dependencies(check ${test_prog})
-      endif (NOT "${test_name}" MATCHES ^regress- AND NOT "${test_prog}" 
MATCHES ^regress- AND NOT "${test_name}" STREQUAL "benchmark")
-    else (NOT "${test_name}" STREQUAL "NAME")
-      if (NOT "${ARGV1}" MATCHES ^regress- AND NOT "${ARGV3}" MATCHES 
^regress- AND NOT "${ARGV1}" MATCHES "benchmark")
-       add_dependencies(unit ${ARGV3})
-       add_dependencies(check ${ARGV3})
-      endif (NOT "${ARGV1}" MATCHES ^regress- AND NOT "${ARGV3}" MATCHES 
^regress- AND NOT "${ARGV1}" MATCHES "benchmark")
-    endif (NOT "${test_name}" STREQUAL "NAME")
-  endfunction(add_test)
+  # we wrap the CMake add_test() function in order to automatically
+  # set up test dependencies for the 'unit' and 'check' test targets.
+  #
+  # this function extravagantly tries to work around a bug in CMake
+  # where we cannot pass an empty string through this wrapper to
+  # _add_test()/add_test().  passed as a list (e.g., via ARGN, ARGV,
+  # or manually composed), the empty string is skipped(!).  passed as
+  # a string, it is all treated as command name with no arguments.
+  #
+  # manual workaround used here involves invoking _add_test() with all
+  # args individually recreated/specified (i.e., not as a list) as
+  # this preserves empty strings.  this approach means we cannot
+  # generalize and only support a limited variety of empty string
+  # arguments, but we do test and halt if someone unknowingly tries.
+  function(add_test NAME test_name COMMAND test_prog)
+
+    # find any occurrences of empty strings
+    set(idx 0)
+    set(matches)
+    foreach (ARG IN LISTS ARGV)
+      # need 'x' to avoid older cmake seeing "COMMAND" "STREQUAL" ""
+      if ("x${ARG}" STREQUAL "x")
+       list(APPEND matches ${idx})
+      endif ("x${ARG}" STREQUAL "x")
+      math(EXPR idx "${idx} + 1")
+    endforeach()
+
+    # make sure we don't exceed current support
+    list(LENGTH matches cnt)
+    if ("${cnt}" GREATER 1)
+      message(FATAL_ERROR "ERROR: encountered ${cnt} > 1 empty string being 
passed to add_test(${test_name}).  Expand support in the top-level 
CMakeLists.txt file (grep add_test) or pass fewer empty strings.")
+    endif ("${cnt}" GREATER 1)
+
+    # if there are empty strings, we need to manually recreate their calling
+    if ("${cnt}" GREATER 0)
+
+      list(GET matches 0 empty)
+      if ("${empty}" EQUAL 4)
+       foreach (i 1)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} "" ${ARGN})
+      elseif ("${empty}" EQUAL 5)
+       foreach (i 1 2)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGV4} "" ${ARGN})
+      elseif ("${empty}" EQUAL 6)
+       foreach (i 1 2 3)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGV4} ${ARGV5} "" 
${ARGN})
+      elseif ("${empty}" EQUAL 7)
+       foreach (i 1 2 3 4)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGV4} ${ARGV5} 
${ARGV6} "" ${ARGN})
+      elseif ("${empty}" EQUAL 8)
+       foreach (i 1 2 3 4 5)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGV4} ${ARGV5} 
${ARGV6} ${ARGV7} "" ${ARGN})
+      elseif ("${empty}" EQUAL 9)
+       foreach (i 1 2 3 4 5 6)
+         if (ARGN)
+           list(REMOVE_AT ARGN 0)
+         endif (ARGN)
+       endforeach ()
+       _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGV4} ${ARGV5} 
${ARGV6} ${ARGV7} ${ARGV8} "" ${ARGN})
+
+       # ADD_EMPTY_HERE: insert support for addition argv positions
+       # as extra elseif tests here using the preceding pattern.  be
+       # sure to update the index in the following else clause fatal
+       # error message too.
+
+      else ("${empty}" EQUAL 4)
+       message(FATAL_ERROR "ERROR: encountered an empty string passed to 
add_test(${test_name}) as ARGV${empty} > ARGV9.  Expand support in the 
top-level CMakeLists.txt file (grep ADD_EMPTY_HERE).")
+      endif ("${empty}" EQUAL 4)
+       
+    else ("${cnt}" GREATER 0)
+      # no empty strings, no worries
+      _add_test(NAME ${test_name} COMMAND ${test_prog} ${ARGN})
+    endif ("${cnt}" GREATER 0)
+
+    # add test to unit and check targets
+    if (NOT "${test_name}" MATCHES ^regress- AND NOT "${test_prog}" MATCHES 
^regress- AND NOT "${test_name}" STREQUAL "benchmark" AND NOT "${test_name}" 
MATCHES ^NOTE:)
+      add_dependencies(unit ${test_prog})
+      add_dependencies(check ${test_prog})
+    endif (NOT "${test_name}" MATCHES ^regress- AND NOT "${test_prog}" MATCHES 
^regress- AND NOT "${test_name}" STREQUAL "benchmark" AND NOT "${test_name}" 
MATCHES ^NOTE:)
+
+  endfunction(add_test NAME test_name COMMAND test_prog)
 endif(NOT BRLCAD_IS_SUBBUILD)
 
 
@@ -1869,7 +1956,10 @@
 BRLCAD_CHECK_LIBRARY(M m cos)
 
 # uuid library
-BRLCAD_CHECK_LIBRARY(UUID uuid uuid_generate)
+find_package(UUID)
+if (UUID_FOUND)
+  BRLCAD_CHECK_LIBRARY(UUID uuid uuid_generate)
+endif (UUID_FOUND)
 
 # network socket library (linux, bsd)
 BRLCAD_CHECK_LIBRARY(SOCKET socket socket)
@@ -2496,21 +2586,31 @@
 
 # We've done the toplevel configure steps, now add the subdirectories
 macro(verbose_add_subdirectory root dir)
-  if(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
-    if(NOT "${root}" STREQUAL "")
-      message("-- Adding ${root}/${dir}...")
-    else(NOT "${root}" STREQUAL "")
-      message("-- Adding ${dir}...")
-    endif(NOT "${root}" STREQUAL "")
-  endif(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
-  add_subdirectory(${dir})
-  if(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
-    if(NOT "${root}" STREQUAL "")
-      message("-- Adding ${root}/${dir} - done")
-    else(NOT "${root}" STREQUAL "")
-      message("-- Adding ${dir} - done")
-    endif(NOT "${root}" STREQUAL "")
-  endif(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+  if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir})
+    if(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+      if(NOT "${root}" STREQUAL "")
+       message("-- Adding ${root}/${dir}...")
+      else(NOT "${root}" STREQUAL "")
+       message("-- Adding ${dir}...")
+      endif(NOT "${root}" STREQUAL "")
+    endif(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+    add_subdirectory(${dir})
+    if(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+      if(NOT "${root}" STREQUAL "")
+       message("-- Adding ${root}/${dir} - done")
+      else(NOT "${root}" STREQUAL "")
+       message("-- Adding ${dir} - done")
+      endif(NOT "${root}" STREQUAL "")
+    endif(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+  else(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir})
+    if(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+      if(NOT "${root}" STREQUAL "")
+       message("-- Addition of directory ${root}/${dir} requested, but not 
found on filesystem - skipping")
+      else(NOT "${root}" STREQUAL "")
+       message("-- Addition of directory ${dir} requested, but not found on 
filesystem - skipping")
+      endif(NOT "${root}" STREQUAL "")
+    endif(NOT EXISTS "${BRLCAD_BINARY_DIR}/CMakeCache.txt.prev")
+  endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir})
 endmacro()
 
 verbose_add_subdirectory("" src)
@@ -2931,6 +3031,7 @@
     # sure there is at least one set of four (4) backslashes.
     set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
     set(CPACK_NSIS_MUI_UNIICON 
"${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
+    set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
     set(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
     set(CPACK_NSIS_MODIFY_PATH ON)
     if(BRLCAD_ENABLE_WIX)
@@ -2942,8 +3043,14 @@
     endif(BRLCAD_ENABLE_WIX)
     if(CMAKE_CL_64)
       set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win64")
+      set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} 
${CPACK_PACKAGE_VERSION} win64")
+      # Use the setting from 
http://public.kitware.com/pipermail/cmake/2013-June/055000.html to
+      # provide the correct default 64 bit directory with older CMake versions
+      set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
     else(CMAKE_CL_64)
       set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win32")
+      set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} 
${CPACK_PACKAGE_VERSION} win32")
+      set(CPACK_NSIS_PACKAGE_NAME "BRL-CAD (32 Bit)")
     endif(CMAKE_CL_64)
   endif(WIN32)
 
@@ -3154,7 +3261,7 @@
   COMMAND false
   )
 set_target_properties(print-warning-message PROPERTIES FOLDER "Compilation 
Utilities")
-_add_test(NAME "NOTE:\\ some\\ 'test'\\ tests\\ are\\ expected\\ to\\ fail,\\ 
'regress'\\ must\\ pass" COMMAND ${CMAKE_COMMAND} --build . --target 
print-warning-message)
+add_test(NAME "NOTE:\\ some\\ 'test'\\ tests\\ are\\ expected\\ to\\ fail,\\ 
'regress'\\ must\\ pass" COMMAND ${CMAKE_COMMAND} --build . --target 
print-warning-message)
 
 # Local Variables:
 # tab-width: 8

Modified: brlcad/branches/brep-debug/NEWS
===================================================================
--- brlcad/branches/brep-debug/NEWS     2016-10-18 02:04:14 UTC (rev 69108)
+++ brlcad/branches/brep-debug/NEWS     2016-10-18 02:29:54 UTC (rev 69109)
@@ -13,6 +13,7 @@
 --- 2016-07-XX  Release 7.26.2                                     ---
 ----------------------------------------------------------------------
 
+* fixed attr show error printing large attribute values - Cliff Yapp
 * fixed rt support for lights created prior to rel 6.0 - Sean Morrison
 * fixed infinite loop bug in when using shadow lights - Sean Morrison
 * removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp


Property changes on: brlcad/branches/brep-debug/NEWS
___________________________________________________________________
Modified: svn:mergeinfo
## -5,4 +5,4 ##
 /brlcad/branches/opencl/NEWS:65867-66137
 /brlcad/branches/osg/NEWS:62110-62113
 /brlcad/branches/prep-cache/NEWS:68236-68933
-/brlcad/trunk/NEWS:61364-68144,68146-68249,68252-68266,68284-68821,68823-68945
+/brlcad/trunk/NEWS:61364-68144,68146-68249,68252-68266,68284-68821,68823-68945,68947-69049
\ No newline at end of property
Modified: brlcad/branches/brep-debug/doc/html/manuals/mged/mged_cmd_index.html
===================================================================
--- brlcad/branches/brep-debug/doc/html/manuals/mged/mged_cmd_index.html        
2016-10-18 02:04:14 UTC (rev 69108)
+++ brlcad/branches/brep-debug/doc/html/manuals/mged/mged_cmd_index.html        
2016-10-18 02:29:54 UTC (rev 69109)
@@ -194,6 +194,8 @@
 <FONT SIZE=2><P></FONT><A HREF="#garbage_collect"><FONT 
SIZE=2>garbage_collect</FONT></A></TD>
 <TD WIDTH="20%" VALIGN="MIDDLE">
 <FONT SIZE=2><P></FONT><A HREF="#gui"><FONT SIZE=2>gui</FONT></A></TD>
+<TD WIDTH="20%" VALIGN="MIDDLE">
+<FONT SIZE=2><P></FONT><A HREF="#heal"><FONT SIZE=2>heal</FONT></A></TD>
 <TD WIDTH="22%" VALIGN="MIDDLE">
 <FONT SIZE=2><P></FONT><A HREF="#help"><FONT SIZE=2>help</FONT></A></TD>
 <TD WIDTH="21%" VALIGN="MIDDLE">
@@ -1716,6 +1718,16 @@
 
 <FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
 </FONT><B><DL>
+<DT><A NAME="heal"></A>heal</B> [<I>command</I>]</DT>
+<DD><P>The &quot;heal&quot; command takes in the bot as input along with the 
tolerances. As of now, it takes the tolerance only for zippering. </P>
+
+<P>The healing essentially comprises only of zippering now, but more features 
will be added later on. The algorithm cannot support non-manifold meshes (those 
containing singular vertices or edges). The bots need not be oriented, the 
algorithm takes care of that. </P></DD>
+<FONT SIZE=4><DT>Examples:</DT>
+</FONT><TT><DD>mged&gt;</TT> <B>heal samplebot.s 47.3</DD>
+</DL>
+
+<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
+</FONT><B><DL>
 <DT><A NAME="help"></A>help</B> [<I>command</I>]</DT>
 <DD>The &quot;help&quot; command returns a list of available MGED commands 
along with a one-line usage message for each.  If a command is supplied as an 
argument, the one-line usage message for that command is returned.  The <A 
HREF="#helpdevel">helpdevel</A>, <A HREF="#helplib">helplib</A>, <A 
href="#questionmark">?</A>, <A HREF="#questionmarkdevel">?devel</A>, and <A 
HREF="#questionmarklib">?lib</A> commands provide additional information on 
available commands.</DD>
 <FONT SIZE=4><DT>Examples:</DT>

Modified: brlcad/branches/brep-debug/doc/trunk_hierarchy.org
===================================================================
--- brlcad/branches/brep-debug/doc/trunk_hierarchy.org  2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/doc/trunk_hierarchy.org  2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -4367,7 +4367,6 @@
 *** [[file:../src/mged/edsol.c][edsol.c]]
 *** [[file:../src/mged/rtif.c][rtif.c]]
 *** [[file:../src/mged/muves.c][muves.c]]
-*** [[file:../src/mged/mged.bat][mged.bat]]
 *** [[file:../src/mged/clone.c][clone.c]]
 *** [[file:../src/mged/columns.c][columns.c]]
 *** [[file:../src/mged/doevent.c][doevent.c]]
@@ -12976,11 +12975,9 @@
 *** [[file:../misc/profont/readme.txt][readme.txt]]
 *** [[file:../misc/profont/LICENSE][LICENSE]]
 ** [[file:../misc/nsis][nsis]]
-*** [[file:../misc/nsis/brlcad.nsi][brlcad.nsi]]
 *** [[file:../misc/nsis/side.bmp][side.bmp]]
 *** [[file:../misc/nsis/archer.ico][archer.ico]]
 *** [[file:../misc/nsis/brlcad.ico][brlcad.ico]]
-*** [[file:../misc/nsis/updateVersion.tcl][updateVersion.tcl]]
 *** [[file:../misc/nsis/uninstall.ico][uninstall.ico]]
 *** [[file:../misc/nsis/header.bmp][header.bmp]]
 ** [[file:../misc/jove.emacs][jove.emacs]]

Modified: brlcad/branches/brep-debug/include/analyze.h
===================================================================
--- brlcad/branches/brep-debug/include/analyze.h        2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/analyze.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -212,7 +212,10 @@
        const char *pbrep, struct rt_gen_worker_vars *pbrep_rtvars,
        const char *curr_comb, struct bu_ptbl *candidates, void 
*curr_union_data, int ncpus);
 
+ANALYZE_EXPORT void
+analyze_heal_bot(struct rt_bot_internal *bot, double zipper_tol);
 
+
 __END_DECLS
 
 #endif /* ANALYZE_H */

Modified: brlcad/branches/brep-debug/include/bn/vlist.h
===================================================================
--- brlcad/branches/brep-debug/include/bn/vlist.h       2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/bn/vlist.h       2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -22,6 +22,7 @@
 #define BN_VLIST_H
 
 #include "common.h"
+#include <stdio.h> /* for FILE */
 #include "vmath.h"
 #include "bu/magic.h"
 #include "bu/list.h"
@@ -278,7 +279,21 @@
 
 BN_EXPORT void bn_vlist_rpp(struct bu_list *vlists, struct bu_list *hd, const 
point_t minn, const point_t maxx);
 
+/**
+ * Output a bn_vlblock object in extended UNIX-plot format, including
+ * color.
+ */
+BN_EXPORT extern void bn_plot_vlblock(FILE *fp,
+                                      const struct bn_vlblock *vbp);
 
+/**
+ * Output a vlist as an extended 3-D floating point UNIX-Plot file.
+ * You provide the file.  Uses libplot3 routines to create the
+ * UNIX-Plot output.
+ */
+BN_EXPORT extern void bn_vlist_to_uplot(FILE *fp,
+                                        const struct bu_list *vhead);
+
 /** @} */
 
 __END_DECLS

Modified: brlcad/branches/brep-debug/include/bu/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/include/bu/CMakeLists.txt        2016-10-18 
02:04:14 UTC (rev 69108)
+++ brlcad/branches/brep-debug/include/bu/CMakeLists.txt        2016-10-18 
02:29:54 UTC (rev 69109)
@@ -8,10 +8,12 @@
   defines.h
   endian.h
   env.h
+  exit.h
   file.h
   getopt.h
   hash.h
   hist.h
+  hook.h
   list.h
   log.h
   magic.h

Modified: brlcad/branches/brep-debug/include/bu/defines.h
===================================================================
--- brlcad/branches/brep-debug/include/bu/defines.h     2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/bu/defines.h     2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -120,15 +120,22 @@
 /**
  * shorthand declaration of a function that doesn't return
  */
-#if defined(HAVE_NORETURN_ATTRIBUTE) && 
defined(HAVE_ANALYZER_NORETURN_ATTRIBUTE)
-   /* clang static analyzer is needing an additional flag set */
-#  define _BU_ATTR_NORETURN __attribute__((__noreturn__)) 
__attribute__((analyzer_noreturn))
-#elif defined(HAVE_NORETURN_ATTRIBUTE)
+#ifdef HAVE_NORETURN_ATTRIBUTE
 #  define _BU_ATTR_NORETURN __attribute__((__noreturn__))
 #else
 #  define _BU_ATTR_NORETURN
 #endif
 
+/* For the moment, we need to specially flag some functions
+ * for clang.  It's not clear if we will always need to do
+ * this, but for now this suppresses a lot of noise in the
+ * reports */
+#ifdef HAVE_ANALYZER_NORETURN_ATTRIBUTE
+#  define _BU_ATTR_ANALYZE_NORETURN __attribute__((analyzer_noreturn))
+#else
+#  define _BU_ATTR_ANALYZE_NORETURN
+#endif
+
 /**
  * shorthand declaration of a function that should always be inline
  */
@@ -141,9 +148,9 @@
 
 /**
  *  If we're compiling strict, turn off "format string vs arguments"
- *  checks - BRL-CAD customizes the arguments to some of these
- *  function types (adding bu_vls support) and that is a problem with
- *  strict checking.
+ *  checks. As long as we are using C89, the proper printf support
+ *  for size_t is not available in the standard and we will get
+ *  warnings about using extensions.
  */
 #if defined(STRICT_FLAGS)
 #  undef _BU_ATTR_PRINTF12

Copied: brlcad/branches/brep-debug/include/bu/exit.h (from rev 69049, 
brlcad/trunk/include/bu/exit.h)
===================================================================
--- brlcad/branches/brep-debug/include/bu/exit.h                                
(rev 0)
+++ brlcad/branches/brep-debug/include/bu/exit.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -0,0 +1,150 @@
+/*                        E X I T . H
+ * BRL-CAD
+ *
+ * Copyright (c) 2004-2016 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.
+ */
+
+#ifndef BU_EXIT_H
+#define BU_EXIT_H
+
+#include "common.h"
+
+#include <stdio.h> /* for FILE */
+
+#include "bu/defines.h"
+#include "bu/hook.h"
+
+
+__BEGIN_DECLS
+
+/** @{ */
+/** @file bu/exit.h */
+
+/**
+ * this routine provides a trace of the call stack to the caller,
+ * generally called either directly, via a signal handler, or through
+ * bu_bomb() with the appropriate bu_debug flags set.
+ *
+ * the routine waits indefinitely (in a spin loop) until a signal
+ * (SIGINT) is received, at which point execution continues, or until
+ * some other signal is received that terminates the application.
+ *
+ * the stack backtrace will be written to the provided 'fp' file
+ * pointer.  it's the caller's responsibility to open and close
+ * that pointer if necessary.  If 'fp' is NULL, stdout will be used.
+ *
+ * returns truthfully if a backtrace was attempted.
+ */
+BU_EXPORT extern int bu_backtrace(FILE *fp);
+
+
+/**
+ * Adds a hook to the list of bu_bomb hooks.  The top (newest) one of these
+ * will be called with its associated client data and a string to be
+ * processed.  Typically, these hook functions will display the output
+ * (possibly in an X window) or record it.
+ *
+ * NOTE: The hook functions are all non-PARALLEL.
+ */
+BU_EXPORT extern void bu_bomb_add_hook(bu_hook_t func, void *clientdata);
+
+
+/**
+ * Abort the running process.
+ *
+ * The bu_bomb routine is called on a fatal error, generally where no
+ * recovery is possible.  Error handlers may, however, be registered
+ * with BU_SETJUMP().  This routine intentionally limits calls to
+ * other functions and intentionally uses no stack variables.  Just in
+ * case the application is out of memory, bu_bomb deallocates a small
+ * buffer of memory.
+ *
+ * Before termination, it optionally performs the following operations
+ * in the order listed:
+ *
+ * 1. Outputs str to standard error
+ *
+ * 2. Calls any callback functions set in the global bu_bomb_hook_list
+ *    variable with str passed as an argument.
+ *
+ * 3. Jumps to any user specified error handler registered with the
+ *    BU_SETJUMP() facility.
+ *
+ * 4. Outputs str to the terminal device in case standard error is
+ *    redirected.
+ *
+ * 5. Aborts abnormally (via abort()) if BU_DEBUG_COREDUMP is defined.
+ *
+ * 6. Exits with exit(12).
+ *
+ * Only produce a core-dump when that debugging bit is set.  Note that
+ * this function is meant to be a last resort semi-graceful abort.
+ *
+ * This routine should never return unless there is a BU_SETJUMP()
+ * handler registered.
+ */
+BU_EXPORT extern void bu_bomb(const char *str) _BU_ATTR_ANALYZE_NORETURN 
_BU_ATTR_NORETURN;
+
+
+/**
+ * Semi-graceful termination of the application that doesn't cause a
+ * stack trace, exiting with the specified status after printing the
+ * given message.  It's okay for this routine to use the stack,
+ * contrary to bu_bomb's behavior since it should be called for
+ * expected termination situations.
+ *
+ * This routine should generally not be called within a library.  Use
+ * bu_bomb or (better) cascade the error back up to the application.
+ *
+ * This routine should never return.
+ */
+BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) 
_BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
+
+
+/**
+ * @brief
+ * Generate a crash report file, including a call stack backtrace and
+ * other system details.
+ */
+
+/**
+ * this routine writes out details of the currently running process to
+ * the specified file, including an informational header about the
+ * execution environment, stack trace details, kernel and hardware
+ * information, and current version information.
+ *
+ * returns truthfully if the crash report was written.
+ *
+ * due to various reasons, this routine is NOT thread-safe.
+ */
+BU_EXPORT extern int bu_crashreport(const char *filename);
+
+/** @} */
+
+__END_DECLS
+
+#endif  /* BU_EXIT_H */
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */

Copied: brlcad/branches/brep-debug/include/bu/hook.h (from rev 69049, 
brlcad/trunk/include/bu/hook.h)
===================================================================
--- brlcad/branches/brep-debug/include/bu/hook.h                                
(rev 0)
+++ brlcad/branches/brep-debug/include/bu/hook.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -0,0 +1,109 @@
+/*                        H O O K . H
+ * BRL-CAD
+ *
+ * Copyright (c) 2004-2016 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.
+ */
+
+#ifndef BU_HOOK_H
+#define BU_HOOK_H
+
+#include "common.h"
+
+#include "bu/defines.h"
+#include "bu/list.h"
+
+
+__BEGIN_DECLS
+
+/** @addtogroup bu_log
+ *
+ * These are hook routines for keeping track of callback functions.
+ *
+ */
+/** @{ */
+/** @file bu/log.h */
+
+
+/** log indentation hook */
+typedef int (*bu_hook_t)(void *, void *);
+
+struct bu_hook_list {
+    struct bu_list l; /**< linked list */
+    bu_hook_t hookfunc; /**< function to call */
+    void *clientdata; /**< data for caller */
+};
+typedef struct bu_hook_list bu_hook_list_t;
+#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0)
+
+/**
+ * assert the integrity of a non-head node bu_hook_list struct.
+ */
+#define BU_CK_HOOK_LIST(_hl) BU_CKMAG(_hl, BU_HOOK_LIST_MAGIC, "bu_hook_list")
+
+/**
+ * initialize a bu_hook_list struct without allocating any memory.
+ * this macro is not suitable for initialization of a list head node.
+ */
+#define BU_HOOK_LIST_INIT(_hl) { \
+       BU_LIST_INIT_MAGIC(&(_hl)->l, BU_HOOK_LIST_MAGIC); \
+       (_hl)->hookfunc = (_hl)->clientdata = NULL; \
+    }
+
+/**
+ * macro suitable for declaration statement initialization of a
+ * bu_hook_list struct.  does not allocate memory.  not suitable for
+ * initialization of a list head node.
+ */
+#define BU_HOOK_LIST_INIT_ZERO { {BU_HOOK_LIST_MAGIC, BU_LIST_NULL, 
BU_LIST_NULL}, NULL, NULL }
+
+/**
+ * returns truthfully whether a non-head node bu_hook_list has been
+ * initialized via BU_HOOK_LIST_INIT() or BU_HOOK_LIST_INIT_ZERO.
+ */
+#define BU_HOOK_LIST_IS_INITIALIZED(_p) (((struct bu_hook_list *)(_p) != 
BU_HOOK_LIST_NULL) && LIKELY((_p)->l.magic == BU_HOOK_LIST_MAGIC))
+
+/** @brief BRL-CAD support library's hook utility. */
+BU_EXPORT extern void bu_hook_list_init(struct bu_hook_list *hlp);
+BU_EXPORT extern void bu_hook_add(struct bu_hook_list *hlp,
+                                 bu_hook_t func,
+                                 void *clientdata);
+BU_EXPORT extern void bu_hook_delete(struct bu_hook_list *hlp,
+                                    bu_hook_t func,
+                                    void *clientdata);
+BU_EXPORT extern void bu_hook_call(struct bu_hook_list *hlp,
+                                  void *buf);
+BU_EXPORT extern void bu_hook_save_all(struct bu_hook_list *hlp,
+                                      struct bu_hook_list *save_hlp);
+BU_EXPORT extern void bu_hook_delete_all(struct bu_hook_list *hlp);
+BU_EXPORT extern void bu_hook_restore_all(struct bu_hook_list *hlp,
+                                         struct bu_hook_list *restore_hlp);
+
+/** @} */
+
+__END_DECLS
+
+#endif  /* BU_HOOK_H */
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */

Modified: brlcad/branches/brep-debug/include/bu/log.h
===================================================================
--- brlcad/branches/brep-debug/include/bu/log.h 2016-10-18 02:04:14 UTC (rev 
69108)
+++ brlcad/branches/brep-debug/include/bu/log.h 2016-10-18 02:29:54 UTC (rev 
69109)
@@ -29,8 +29,11 @@
 #include "bu/defines.h"
 #include "bu/magic.h"
 #include "bu/parse.h"
-#include "bu/list.h"
+#include "bu/hook.h"
 
+#include "bu/exit.h" /* XXX not used here, not intended to be kept included 
here */
+
+
 __BEGIN_DECLS
 
 /** @addtogroup bu_log
@@ -74,145 +77,8 @@
 /** @{ */
 /** @file bu/log.h */
 
-/** @brief Extract a backtrace of the current call stack. */
-
 /**
- * this routine provides a trace of the call stack to the caller,
- * generally called either directly, via a signal handler, or through
- * bu_bomb() with the appropriate bu_debug flags set.
- *
- * the routine waits indefinitely (in a spin loop) until a signal
- * (SIGINT) is received, at which point execution continues, or until
- * some other signal is received that terminates the application.
- *
- * the stack backtrace will be written to the provided 'fp' file
- * pointer.  it's the caller's responsibility to open and close
- * that pointer if necessary.  If 'fp' is NULL, stdout will be used.
- *
- * returns truthfully if a backtrace was attempted.
- */
-BU_EXPORT extern int bu_backtrace(FILE *fp);
-
-/** log indentation hook */
-typedef int (*bu_hook_t)(void *, void *);
-
-struct bu_hook_list {
-    struct bu_list l; /**< linked list */
-    bu_hook_t hookfunc; /**< function to call */
-    void *clientdata; /**< data for caller */
-};
-typedef struct bu_hook_list bu_hook_list_t;
-#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0)
-
-/**
- * assert the integrity of a non-head node bu_hook_list struct.
- */
-#define BU_CK_HOOK_LIST(_hl) BU_CKMAG(_hl, BU_HOOK_LIST_MAGIC, "bu_hook_list")
-
-/**
- * initialize a bu_hook_list struct without allocating any memory.
- * this macro is not suitable for initialization of a list head node.
- */
-#define BU_HOOK_LIST_INIT(_hl) { \
-       BU_LIST_INIT_MAGIC(&(_hl)->l, BU_HOOK_LIST_MAGIC); \
-       (_hl)->hookfunc = (_hl)->clientdata = NULL; \
-    }
-
-/**
- * macro suitable for declaration statement initialization of a
- * bu_hook_list struct.  does not allocate memory.  not suitable for
- * initialization of a list head node.
- */
-#define BU_HOOK_LIST_INIT_ZERO { {BU_HOOK_LIST_MAGIC, BU_LIST_NULL, 
BU_LIST_NULL}, NULL, NULL }
-
-/**
- * returns truthfully whether a non-head node bu_hook_list has been
- * initialized via BU_HOOK_LIST_INIT() or BU_HOOK_LIST_INIT_ZERO.
- */
-#define BU_HOOK_LIST_IS_INITIALIZED(_p) (((struct bu_hook_list *)(_p) != 
BU_HOOK_LIST_NULL) && LIKELY((_p)->l.magic == BU_HOOK_LIST_MAGIC))
-
-/** @brief Main functions for exiting/bombing. */
-
-/**
- * Adds a hook to the list of bu_bomb hooks.  The top (newest) one of these
- * will be called with its associated client data and a string to be
- * processed.  Typically, these hook functions will display the output
- * (possibly in an X window) or record it.
- *
- * NOTE: The hook functions are all non-PARALLEL.
- */
-BU_EXPORT extern void bu_bomb_add_hook(bu_hook_t func, void *clientdata);
-
-/**
- * Abort the running process.
- *
- * The bu_bomb routine is called on a fatal error, generally where no
- * recovery is possible.  Error handlers may, however, be registered
- * with BU_SETJUMP().  This routine intentionally limits calls to
- * other functions and intentionally uses no stack variables.  Just in
- * case the application is out of memory, bu_bomb deallocates a small
- * buffer of memory.
- *
- * Before termination, it optionally performs the following operations
- * in the order listed:
- *
- * 1. Outputs str to standard error
- *
- * 2. Calls any callback functions set in the global bu_bomb_hook_list
- *    variable with str passed as an argument.
- *
- * 3. Jumps to any user specified error handler registered with the
- *    BU_SETJUMP() facility.
- *
- * 4. Outputs str to the terminal device in case standard error is
- *    redirected.
- *
- * 5. Aborts abnormally (via abort()) if BU_DEBUG_COREDUMP is defined.
- *
- * 6. Exits with exit(12).
- *
- * Only produce a core-dump when that debugging bit is set.  Note that
- * this function is meant to be a last resort semi-graceful abort.
- *
- * This routine should never return unless there is a BU_SETJUMP()
- * handler registered.
- */
-BU_EXPORT extern void bu_bomb(const char *str) _BU_ATTR_NORETURN;
-
-/**
- * Semi-graceful termination of the application that doesn't cause a
- * stack trace, exiting with the specified status after printing the
- * given message.  It's okay for this routine to use the stack,
- * contrary to bu_bomb's behavior since it should be called for
- * expected termination situations.
- *
- * This routine should generally not be called within a library.  Use
- * bu_bomb or (better) cascade the error back up to the application.
- *
- * This routine should never return.
- */
-BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) 
_BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
-
-/**
  * @brief
- * Generate a crash report file, including a call stack backtrace and
- * other system details.
- */
-
-/**
- * this routine writes out details of the currently running process to
- * the specified file, including an informational header about the
- * execution environment, stack trace details, kernel and hardware
- * information, and current version information.
- *
- * returns truthfully if the crash report was written.
- *
- * due to various reasons, this routine is NOT thread-safe.
- */
-BU_EXPORT extern int bu_crashreport(const char *filename);
-
-/**
- * @brief
  * fgets replacement function that also handles CR as an EOL marker
  */
 
@@ -231,22 +97,6 @@
 
 BU_EXPORT extern void bu_setlinebuf(FILE *fp);
 
-/** @brief BRL-CAD support library's hook utility. */
-BU_EXPORT extern void bu_hook_list_init(struct bu_hook_list *hlp);
-BU_EXPORT extern void bu_hook_add(struct bu_hook_list *hlp,
-                                 bu_hook_t func,
-                                 void *clientdata);
-BU_EXPORT extern void bu_hook_delete(struct bu_hook_list *hlp,
-                                    bu_hook_t func,
-                                    void *clientdata);
-BU_EXPORT extern void bu_hook_call(struct bu_hook_list *hlp,
-                                  void *buf);
-BU_EXPORT extern void bu_hook_save_all(struct bu_hook_list *hlp,
-                                      struct bu_hook_list *save_hlp);
-BU_EXPORT extern void bu_hook_delete_all(struct bu_hook_list *hlp);
-BU_EXPORT extern void bu_hook_restore_all(struct bu_hook_list *hlp,
-                                         struct bu_hook_list *restore_hlp);
-
 /** @brief parallel safe version of fprintf for logging */
 
 /**

Modified: brlcad/branches/brep-debug/include/bu/magic.h
===================================================================
--- brlcad/branches/brep-debug/include/bu/magic.h       2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/bu/magic.h       2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -70,7 +70,7 @@
 #define BU_RB_NODE_MAGIC               0x72626e6f /**< rbno */
 #define BU_RB_PKG_MAGIC                        0x7262706b /**< rbpk */
 #define BU_RB_TREE_MAGIC               0x72627472 /**< rbtr */
-#define BU_VLB_MAGIC                    0x5f564c42 /**< _VLB */
+#define BU_VLB_MAGIC                   0x5f564c42 /**< _VLB */
 #define BU_VLS_MAGIC                   0x89333bbb /**< ?3;? */
 
 /* libbn */
@@ -189,18 +189,18 @@
 /* fb */
 
 #define FB_MAGIC                       0xfbfb00fb /**< ???? */
-#define FB_WGL_MAGIC    0x574f4642 /**< WOFB */
-#define FB_OGL_MAGIC    0x584f4642 /**< XOFB */
-#define FB_X24_MAGIC    0x58324642 /**< X2FB */
-#define FB_TK_MAGIC     0x544b4642 /**< TKFB */
-#define FB_QT_MAGIC     0x51544642 /**< QTFB */
-#define FB_DEBUG_MAGIC  0x44424642 /**< DBFB */
-#define FB_DISK_MAGIC   0x44494642 /**< STFB */
-#define FB_STK_MAGIC    0x53544642 /**< STFB */
-#define FB_MEMORY_MAGIC 0x4d454642 /**< MEFB */
-#define FB_REMOTE_MAGIC 0x524d4642 /**< MEFB */
-#define FB_NULL_MAGIC   0x4e554642 /**< NUFB */
-#define FB_OSGL_MAGIC   0x4f474642 /**< OGFB */
+#define FB_WGL_MAGIC                   0x574f4642 /**< WOFB */
+#define FB_OGL_MAGIC                   0x584f4642 /**< XOFB */
+#define FB_X24_MAGIC                   0x58324642 /**< X2FB */
+#define FB_TK_MAGIC                    0x544b4642 /**< TKFB */
+#define FB_QT_MAGIC                    0x51544642 /**< QTFB */
+#define FB_DEBUG_MAGIC                 0x44424642 /**< DBFB */
+#define FB_DISK_MAGIC                  0x44494642 /**< STFB */
+#define FB_STK_MAGIC                   0x53544642 /**< STFB */
+#define FB_MEMORY_MAGIC                        0x4d454642 /**< MEFB */
+#define FB_REMOTE_MAGIC                        0x524d4642 /**< MEFB */
+#define FB_NULL_MAGIC                  0x4e554642 /**< NUFB */
+#define FB_OSGL_MAGIC                  0x4f474642 /**< OGFB */
 
 /* misc */
 
@@ -224,7 +224,7 @@
 #define WDB_METABALLPT_MAGIC           0x6d627074 /**< mbpt */
 #define WDB_PIPESEG_MAGIC              0x9723ffef /**< ?\#?? */
 #define WMEMBER_MAGIC                  0x43128912 /**< C??? */
-#define ICV_IMAGE_MAGIC                0x6269666d /**< bifm */
+#define ICV_IMAGE_MAGIC                        0x6269666d /**< bifm */
 
 /** @brief Routines involved with handling "magic numbers" used to identify 
various in-memory data structures. */
 
@@ -235,19 +235,20 @@
 #ifdef NO_BOMBING_MACROS
 #  define BU_CKMAG(_ptr, _magic, _str) (void)(_ptr)
 #else
-#  define BU_CKMAG(_ptr, _magic, _str) { \
-        const uintptr_t _ptrval = (const uintptr_t)(_ptr); \
-        if (UNLIKELY((_ptrval == 0) || (_ptrval & (sizeof(_ptrval)-1)) || 
*((const uint32_t *)(_ptr)) != (uint32_t)(_magic))) { \
-            bu_badmagic((const uint32_t *)(_ptr), (uint32_t)_magic, _str, 
__FILE__, __LINE__); \
+#  define BU_CKMAG(_ptr, _magic, _str) do { \
+        if (UNLIKELY(((const uintptr_t)(_ptr) == 0) || ((const 
uintptr_t)(_ptr) & (sizeof((const uintptr_t)(_ptr))-1)) || *((const uint32_t 
*)(_ptr)) != (uint32_t)(_magic))) { \
+            bu_badmagic((const uint32_t *)(_ptr), (uint32_t)(_magic), _str, 
__FILE__, __LINE__); \
         } \
-    }
+    } while (0)
 #endif
 
 
 /**
- *  Support routine for BU_CKMAG macro.
+ * This function is called when there is something wrong with a
+ * pointer.  It's primarily a support routine for BU_CKMAG macro, but
+ * may be used elsewhere.  This function never returns.
  */
-BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const 
char *str, const char *file, int line) _BU_ATTR_NORETURN;
+BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const 
char *str, const char *file, int line) _BU_ATTR_ANALYZE_NORETURN 
_BU_ATTR_NORETURN;
 
 
 /** @brief Routines involved with handling "magic numbers" used to identify 
various in-memory data structures. */

Modified: brlcad/branches/brep-debug/include/bu/str.h
===================================================================
--- brlcad/branches/brep-debug/include/bu/str.h 2016-10-18 02:04:14 UTC (rev 
69108)
+++ brlcad/branches/brep-debug/include/bu/str.h 2016-10-18 02:29:54 UTC (rev 
69109)
@@ -249,11 +249,14 @@
  * Returns truthfully if a given input string represents an
  * "affirmative string".
  *
- * Input values that are case-insensitively NULL, empty, "n", "no",
- * "false", "off", "(null)", or are 0-valued return as false.  Any
- * other input value return true.  Strings strongly indicating true
- * such as "y", "yes", "true", "on", or are 1-valued will return as 1,
- * other strings still return as true but may be greater than 1.
+ * Input values that are case-insensitively NULL, empty (i.e., ""
+ * after disregarding whitespace), "n", "no", "false", "off",
+ * "(null)", or are 0-valued return as false.  Any other input value
+ * returns true.
+ *
+ * Strings strongly indicating true such as "y", "yes", "true", "on",
+ * or are 1-valued will return as 1, other non-empty strings still
+ * return as true but may be greater than 1.
  */
 BU_EXPORT extern int bu_str_true(const char *str);
 
@@ -261,9 +264,10 @@
  * Returns truthfully if a given input string represents a
  * "negative string".
  *
- * Input values that are case-insensitively NULL, empty, "n", "no",
- * "false", "off", "(null)", or are 0-valued return as true.  Any
- * other input value returns as false.
+ * Input values that are case-insensitively NULL, empty (i.e., ""
+ * after disregarding whitespace), "n", "no", "false", "off",
+ * "(null)", or are 0-valued return as true.  Any other input value
+ * returns as false.
  */
 BU_EXPORT extern int bu_str_false(const char *str);
 

Modified: brlcad/branches/brep-debug/include/bu/uuid.h
===================================================================
--- brlcad/branches/brep-debug/include/bu/uuid.h        2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/bu/uuid.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -45,7 +45,7 @@
  * entropy).  Providing a byte array and namespace will create a (SHA1-based)
  * version 5 UUID suitable for repeatable identifier hashing.
  */
-int
+BU_EXPORT int
 bu_uuid_create(uint8_t uuid[STATIC_ARRAY(16)], size_t nbytes, const uint8_t 
*bytes, const uint8_t namespace_uuid[STATIC_ARRAY(16)]);
 
 /**

Modified: brlcad/branches/brep-debug/include/ged/objects.h
===================================================================
--- brlcad/branches/brep-debug/include/ged/objects.h    2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/ged/objects.h    2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -215,6 +215,11 @@
 GED_EXPORT extern int ged_group(struct ged *gedp, int argc, const char 
*argv[]);
 
 /**
+ * Heal command to heal the defects in bots
+ */
+GED_EXPORT extern int ged_heal(struct ged *gedp, int argc, const char *argv[]);
+
+/**
  * Set the "hidden" flag for the specified objects so they do not
  * appear in an "ls" command output
  */

Modified: brlcad/branches/brep-debug/include/nmg.h
===================================================================
--- brlcad/branches/brep-debug/include/nmg.h    2016-10-18 02:04:14 UTC (rev 
69108)
+++ brlcad/branches/brep-debug/include/nmg.h    2016-10-18 02:29:54 UTC (rev 
69109)
@@ -754,7 +754,7 @@
     void (*vis_shell_a)(uint32_t *, void *, int);
 
     void (*bef_faceuse)(uint32_t *, void *, int);
-    void (*aft_faceuse)(uint32_t *, void *, int);
+    void (*aft_faceuse)(uint32_t *, void *, int, struct bu_list *);
 
     void (*vis_face)(uint32_t *, void *, int);
     void (*vis_face_g)(uint32_t *, void *, int);

Modified: brlcad/branches/brep-debug/include/rt/func.h
===================================================================
--- brlcad/branches/brep-debug/include/rt/func.h        2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/rt/func.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -180,7 +180,7 @@
 /**
  * if `stp` is prepped, serialize; otherwise, deserialize from `external`
  */
-RT_EXPORT extern int rt_obj_prep_serialize(struct soltab *stp, const struct 
rt_db_internal *ip, struct bu_external *external, uint32_t *version);
+RT_EXPORT extern int rt_obj_prep_serialize(struct soltab *stp, const struct 
rt_db_internal *ip, struct bu_external *external, size_t *version);
 
 __END_DECLS
 

Modified: brlcad/branches/brep-debug/include/rt/functab.h
===================================================================
--- brlcad/branches/brep-debug/include/rt/functab.h     2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/rt/functab.h     2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -263,8 +263,8 @@
 #define RTFUNCTAB_FUNC_PROCESS_SELECTION_CAST(_func) ((int (*)(struct 
rt_db_internal *, struct db_i *, const struct rt_selection *, const struct 
rt_selection_operation *))_func)
 
     /** cache and uncache prep data for faster future lookup */
-    int (*ft_prep_serialize)(struct soltab *stp, const struct rt_db_internal 
*ip, struct bu_external *external, uint32_t *version);
-#define RTFUNCTAB_FUNC_PREP_SERIALIZE_CAST(_func) ((int (*)(struct soltab *, 
const struct rt_db_internal *, struct bu_external *, uint32_t *))_func)
+    int (*ft_prep_serialize)(struct soltab *stp, const struct rt_db_internal 
*ip, struct bu_external *external, size_t *version);
+#define RTFUNCTAB_FUNC_PREP_SERIALIZE_CAST(_func) ((int (*)(struct soltab *, 
const struct rt_db_internal *, struct bu_external *, size_t *))_func)
 };
 
 

Modified: brlcad/branches/brep-debug/include/rt/global.h
===================================================================
--- brlcad/branches/brep-debug/include/rt/global.h      2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/rt/global.h      2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -40,12 +40,10 @@
     /* DEPRECATED:  rtg_parallel is not used by LIBRT any longer (and will be 
removed) */
     int8_t              rtg_parallel;   /**< @brief  !0 = trying to use multi 
CPUs */
     struct bu_list      rtg_vlfree;     /**< @brief  head of bn_vlist freelist 
*/
-    uint32_t            NMG_debug;      /**< @brief  debug bits for NMG's see 
nmg.h */
     struct rt_wdb       rtg_headwdb;    /**< @brief  head of database object 
list */
 };
-#define RT_G_INIT_ZERO { 0, 0, BU_LIST_INIT_ZERO, 0, RT_WDB_INIT_ZERO }
+#define RT_G_INIT_ZERO { 0, 0, BU_LIST_INIT_ZERO, RT_WDB_INIT_ZERO }
 
-
 /**
  * global ray-trace geometry state
  */

Modified: brlcad/branches/brep-debug/include/rt/nmg.h
===================================================================
--- brlcad/branches/brep-debug/include/rt/nmg.h 2016-10-18 02:04:14 UTC (rev 
69108)
+++ brlcad/branches/brep-debug/include/rt/nmg.h 2016-10-18 02:29:54 UTC (rev 
69109)
@@ -37,6 +37,8 @@
 
 __BEGIN_DECLS
 
+RT_EXPORT extern uint32_t nmg_debug;      /**< @brief  debug bits for NMG's 
see nmg.h */
+
 
/*********************************************************************************
  *      The following section is an exact copy of what was previously 
"nmg_rt.h" *
  *      (with minor changes to NMG_GET_HITMISS and NMG_FREE_HITLIST            
  *
@@ -228,16 +230,16 @@
 
 
 #ifdef NO_BOMBING_MACROS
-#  define nmg_bu_bomb(rd, str) (void)(rd)
+#  define nmg_bu_bomb(rd, vlfree, str) (void)(rd)
 #else
-#  define nmg_bu_bomb(rd, str) { \
+#  define nmg_bu_bomb(rd, vlfree, str) { \
         bu_log("%s", str); \
-        if (RTG.NMG_debug & DEBUG_NMGRT) bu_bomb("End of diagnostics"); \
+        if (nmg_debug & DEBUG_NMGRT) bu_bomb("End of diagnostics"); \
         BU_LIST_INIT(&rd->rd_hit); \
         BU_LIST_INIT(&rd->rd_miss); \
-        RTG.NMG_debug |= DEBUG_NMGRT; \
-        nmg_isect_ray_model(rd); \
-        (void) nmg_ray_segs(rd); \
+        nmg_debug |= DEBUG_NMGRT; \
+        nmg_isect_ray_model(rd,vlfree); \
+        (void) nmg_ray_segs(rd,vlfree); \
         bu_bomb("Should have bombed before this\n"); \
     }
 #endif
@@ -283,14 +285,17 @@
 /* nmg_class.c */
 RT_EXPORT extern int nmg_classify_pt_loop(const point_t pt,
                                           const struct loopuse *lu,
+                                         struct bu_list *vlfree,
                                           const struct bn_tol *tol);
 
 RT_EXPORT extern int nmg_classify_s_vs_s(struct shell *s,
                                          struct shell *s2,
+                                        struct bu_list *vlfree,
                                          const struct bn_tol *tol);
 
 RT_EXPORT extern int nmg_classify_lu_lu(const struct loopuse *lu1,
                                         const struct loopuse *lu2,
+                                       struct bu_list *vlfree,
                                         const struct bn_tol *tol);
 
 RT_EXPORT extern int nmg_class_pt_f(const point_t pt,
@@ -299,6 +304,7 @@
 RT_EXPORT extern int nmg_class_pt_s(const point_t pt,
                                     const struct shell *s,
                                     const int in_or_out_only,
+                                   struct bu_list *vlfree,
                                     const struct bn_tol *tol);
 
 /* From nmg_pt_fu.c */
@@ -307,6 +313,7 @@
 RT_EXPORT extern int nmg_class_pt_lu_except(point_t             pt,
                                             const struct loopuse        *lu,
                                             const struct edge           *e_p,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol *tol);
 
 RT_EXPORT extern int nmg_class_pt_fu_except(const point_t pt,
@@ -317,12 +324,14 @@
                                             const char *priv,
                                             const int call_on_hits,
                                             const int in_or_out_only,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol *tol);
 
 /* From nmg_plot.c */
 RT_EXPORT extern void nmg_pl_shell(FILE *fp,
                                    const struct shell *s,
-                                   int fancy);
+                                   int fancy,
+                                  struct bu_list *vlfree);
 
 RT_EXPORT extern void nmg_vu_to_vlist(struct bu_list *vhead,
                                       const struct vertexuse    *vu);
@@ -369,19 +378,24 @@
                                 long *b,
                                 int red,
                                 int green,
-                                int blue);
+                                int blue,
+                               struct bu_list *vlfree);
 RT_EXPORT extern void nmg_pl_fu(FILE *fp,
                                 const struct faceuse *fu,
                                 long *b,
                                 int red,
                                 int green,
-                                int blue);
+                                int blue,
+                               struct bu_list *vlfree);
 RT_EXPORT extern void nmg_pl_s(FILE *fp,
-                               const struct shell *s);
+                               const struct shell *s,
+                              struct bu_list *vlfree);
 RT_EXPORT extern void nmg_pl_r(FILE *fp,
-                               const struct nmgregion *r);
+                               const struct nmgregion *r,
+                              struct bu_list *vlfree);
 RT_EXPORT extern void nmg_pl_m(FILE *fp,
-                               const struct model *m);
+                               const struct model *m,
+                              struct bu_list *vlfree);
 RT_EXPORT extern void nmg_vlblock_v(struct bn_vlblock *vbp,
                                     const struct vertex *v,
                                     long *tab);
@@ -439,36 +453,45 @@
                                                const struct bn_tol      *tol);
 RT_EXPORT extern void nmg_pl_isect(const char           *filename,
                                    const struct shell   *s,
+                                  struct bu_list *vlfree,
                                    const struct bn_tol  *tol);
 RT_EXPORT extern void nmg_pl_comb_fu(int num1,
                                      int num2,
-                                     const struct faceuse *fu1);
+                                     const struct faceuse *fu1,
+                                    struct bu_list *vlfree);
 RT_EXPORT extern void nmg_pl_2fu(const char *str,
                                  const struct faceuse *fu1,
                                  const struct faceuse *fu2,
-                                 int show_mates);
+                                 int show_mates,
+                                struct bu_list *vlfree);
 /* graphical display of classifier results */
 RT_EXPORT extern void nmg_show_broken_classifier_stuff(uint32_t *p,
                                                        char     **classlist,
                                                        int      all_new,
                                                        int      fancy,
-                                                       const char       
*a_string);
-RT_EXPORT extern void nmg_face_plot(const struct faceuse *fu);
+                                                       const char       
*a_string,
+                                                      struct bu_list *vlfree);
+RT_EXPORT extern void nmg_face_plot(const struct faceuse *fu, struct bu_list 
*vlfree);
 RT_EXPORT extern void nmg_2face_plot(const struct faceuse *fu1,
-                                     const struct faceuse *fu2);
+                                     const struct faceuse *fu2,
+                                    struct bu_list *vlfree);
 RT_EXPORT extern void nmg_face_lu_plot(const struct loopuse *lu,
                                        const struct vertexuse *vu1,
-                                       const struct vertexuse *vu2);
+                                       const struct vertexuse *vu2,
+                                      struct bu_list *vlfree);
 RT_EXPORT extern void nmg_plot_lu_ray(const struct loopuse              *lu,
                                       const struct vertexuse            *vu1,
                                       const struct vertexuse            *vu2,
-                                      const vect_t                      left);
+                                      const vect_t                      left,
+                                     struct bu_list *vlfree);
 RT_EXPORT extern void nmg_plot_ray_face(const char *fname,
                                         point_t pt,
                                         const vect_t dir,
-                                        const struct faceuse *fu);
+                                        const struct faceuse *fu,
+                                       struct bu_list *vlfree);
 RT_EXPORT extern void nmg_plot_lu_around_eu(const char          *prefix,
                                             const struct edgeuse        *eu,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol *tol);
 RT_EXPORT extern int nmg_snurb_to_vlist(struct bu_list          *vhead,
                                         const struct face_g_snurb       *fg,
@@ -508,12 +531,14 @@
                                          const struct bn_tol *tol);
 RT_EXPORT extern void nmg_mesh_faces(struct faceuse *fu1,
                                      struct faceuse *fu2,
-                                     const struct bn_tol *tol);
+                                    struct bu_list *vlfree,
+                                    const struct bn_tol *tol);
 RT_EXPORT extern int nmg_mesh_face_shell(struct faceuse *fu1,
                                          struct shell *s,
                                          const struct bn_tol *tol);
 RT_EXPORT extern int nmg_mesh_shell_shell(struct shell *s1,
                                           struct shell *s2,
+                                         struct bu_list *vlfree,
                                           const struct bn_tol *tol);
 RT_EXPORT extern double nmg_measure_fu_angle(const struct edgeuse *eu,
                                              const vect_t xvec,
@@ -523,10 +548,7 @@
 /* from nmg_bool.c */
 RT_EXPORT extern struct nmgregion *nmg_do_bool(struct nmgregion *s1,
                                                struct nmgregion *s2,
-                                               const int oper, const struct 
bn_tol *tol);
-RT_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s,
-                                                    const struct bn_tol *tol,
-                                                    const int simplify);
+                                               const int oper, struct bu_list 
*vlfree, const struct bn_tol *tol);
 RT_EXPORT extern int nmg_two_region_vertex_fuse(struct nmgregion *r1,
                                                 struct nmgregion *r2,
                                                 const struct bn_tol *tol);
@@ -543,10 +565,12 @@
 
 RT_EXPORT extern int nmg_bool_eval_silent;      /* quell output from 
nmg_booltree_evaluate */
 RT_EXPORT extern union tree *nmg_booltree_evaluate(union tree *tp,
+                                                  struct bu_list *vlfree,
                                                    const struct bn_tol *tol,
                                                    struct resource *resp);
 RT_EXPORT extern int nmg_boolean(union tree *tp,
                                  struct model *m,
+                                struct bu_list *vlfree,
                                  const struct bn_tol *tol,
                                  struct resource *resp);
 
@@ -554,6 +578,7 @@
 RT_EXPORT extern void nmg_class_shells(struct shell *sA,
                                        struct shell *sB,
                                        char **classlist,
+                                      struct bu_list *vlfree,
                                        const struct bn_tol *tol);
 
 /* from nmg_fcut.c */
@@ -581,12 +606,14 @@
                                                       point_t pt,
                                                       vect_t dir,
                                                       struct edge_g_lseg *eg,
+                                                     struct bu_list *vlfree,
                                                       const struct bn_tol 
*tol);
 RT_EXPORT extern void nmg_fcut_face_2d(struct bu_ptbl *vu_list,
                                        fastf_t *mag,
                                        struct faceuse *fu1,
                                        struct faceuse *fu2,
-                                       struct bn_tol *tol);
+                                      struct bu_list *vlfree,
+                                      struct bn_tol *tol);
 RT_EXPORT extern int nmg_insert_vu_if_on_edge(struct vertexuse *vu1,
                                               struct vertexuse *vu2,
                                               struct edgeuse *new_eu,
@@ -603,6 +630,7 @@
                                            struct shell *sB,
                                            int          op,
                                            char         **classlist,
+                                          struct bu_list *vlfree,
                                            const struct bn_tol  *tol);
 
 /* The following functions cannot be publicly declared because struct
@@ -621,9 +649,10 @@
 RT_EXPORT extern int nmg_class_ray_vs_shell(struct xray *rp,
                                             const struct shell *s,
                                             const int in_or_out_only,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol *tol);
 
-RT_EXPORT extern void nmg_isect_ray_model(struct ray_data *rd);
+RT_EXPORT extern void nmg_isect_ray_model(struct ray_data *rd, struct bu_list 
*vlfree);
 
 /* From nmg_ck.c */
 RT_EXPORT extern void nmg_vvg(const struct vertex_g *vg);
@@ -686,6 +715,7 @@
 RT_EXPORT extern int nmg_ck_eg_verts(const struct edge_g_lseg *eg,
                                      const struct bn_tol *tol);
 RT_EXPORT extern size_t nmg_ck_geometry(const struct model *m,
+                                       struct bu_list *vlfree,
                                        const struct bn_tol *tol);
 RT_EXPORT extern int nmg_ck_face_worthless_edges(const struct faceuse *fu);
 RT_EXPORT extern void nmg_ck_lueu(const struct loopuse *lu, const char *s);
@@ -703,6 +733,7 @@
                                        const struct faceuse *fu2,
                                        const struct bn_tol *tol);
 RT_EXPORT extern void nmg_ck_vs_in_region(const struct nmgregion *r,
+                                         struct bu_list *vlfree,
                                           const struct bn_tol *tol);
 
 
@@ -763,6 +794,7 @@
 RT_EXPORT extern struct edge_g_lseg     *nmg_find_eg_on_line(const uint32_t 
*magic_p,
                                                              const point_t     
         pt,
                                                              const vect_t      
         dir,
+                                                            struct bu_list 
*vlfree,
                                                              const struct 
bn_tol        *tol);
 RT_EXPORT extern int nmg_k0eu(struct vertex     *v);
 RT_EXPORT extern struct vertex *nmg_repair_v_near_v(struct vertex              
 *hit_v,
@@ -783,7 +815,8 @@
 RT_EXPORT extern int nmg_is_vertex_on_inter(struct vertex *v,
                                             struct faceuse *fu1,
                                             struct faceuse *fu2,
-                                            struct nmg_inter_struct *is);
+                                            struct nmg_inter_struct *is,
+                                           struct bu_list *vlfree);
 RT_EXPORT extern void nmg_isect_eu_verts(struct edgeuse *eu,
                                          struct vertex_g *vg1,
                                          struct vertex_g *vg2,
@@ -801,22 +834,26 @@
 RT_EXPORT extern void nmg_isect_eu_fu(struct nmg_inter_struct *is,
                                       struct bu_ptbl            *verts,
                                       struct edgeuse            *eu,
-                                      struct faceuse          *fu);
+                                      struct faceuse          *fu,
+                                     struct bu_list *vlfree);
 RT_EXPORT extern void nmg_isect_fu_jra(struct nmg_inter_struct  *is,
                                        struct faceuse           *fu1,
                                        struct faceuse           *fu2,
                                        struct bu_ptbl           *eu1_list,
-                                       struct bu_ptbl           *eu2_list);
+                                       struct bu_ptbl           *eu2_list,
+                                      struct bu_list *vlfree);
 RT_EXPORT extern void nmg_isect_line2_face2pNEW(struct nmg_inter_struct *is,
                                                 struct faceuse *fu1, struct 
faceuse *fu2,
                                                 struct bu_ptbl *eu1_list,
-                                                struct bu_ptbl *eu2_list);
+                                                struct bu_ptbl *eu2_list,
+                                               struct bu_list *vlfree);
 RT_EXPORT extern int    nmg_is_eu_on_line3(const struct edgeuse *eu,
                                            const point_t                pt,
                                            const vect_t         dir,
                                            const struct bn_tol  *tol);
 RT_EXPORT extern struct edge_g_lseg     *nmg_find_eg_between_2fg(const struct 
faceuse   *ofu1,
                                                                  const struct 
faceuse   *fu2,
+                                                                struct bu_list 
*vlfree,
                                                                  const struct 
bn_tol    *tol);
 RT_EXPORT extern struct edgeuse *nmg_does_fu_use_eg(const struct faceuse       
 *fu1,
                                                     const uint32_t      *eg);
@@ -826,20 +863,25 @@
                                       const struct bn_tol       *tol);
 RT_EXPORT extern void nmg_cut_lu_into_coplanar_and_non(struct loopuse *lu,
                                                        plane_t pl,
-                                                       struct nmg_inter_struct 
*is);
+                                                       struct nmg_inter_struct 
*is,
+                                                      struct bu_list *vlfree);
 RT_EXPORT extern void nmg_check_radial_angles(char *str,
                                               struct shell *s,
+                                             struct bu_list *vlfree,
                                               const struct bn_tol *tol);
 RT_EXPORT extern int nmg_faces_can_be_intersected(struct nmg_inter_struct *bs,
                                                   const struct faceuse *fu1,
                                                   const struct faceuse *fu2,
+                                                 struct bu_list *vlfree,
                                                   const struct bn_tol *tol);
 RT_EXPORT extern void nmg_isect_two_generic_faces(struct faceuse               
 *fu1,
                                                   struct faceuse               
 *fu2,
+                                                 struct bu_list *vlfree,
                                                   const struct bn_tol   *tol);
 RT_EXPORT extern void nmg_crackshells(struct shell *s1,
                                       struct shell *s2,
-                                      const struct bn_tol *tol);
+                                     struct bu_list *vlfree,
+                                     const struct bn_tol *tol);
 RT_EXPORT extern int nmg_fu_touchingloops(const struct faceuse *fu);
 
 
@@ -962,9 +1004,11 @@
 /*      SHELL Routines */
 RT_EXPORT extern void nmg_shell_coplanar_face_merge(struct shell *s,
                                                     const struct bn_tol *tol,
-                                                    const int simplify);
-RT_EXPORT extern int nmg_simplify_shell(struct shell *s);
+                                                    const int simplify,
+                                                   struct bu_list *vlfree);
+RT_EXPORT extern int nmg_simplify_shell(struct shell *s, struct bu_list 
*vlfree);
 RT_EXPORT extern void nmg_rm_redundancies(struct shell *s,
+                                          struct bu_list *vlfree,
                                           const struct bn_tol *tol);
 RT_EXPORT extern void nmg_sanitize_s_lv(struct shell *s,
                                         int orient);
@@ -974,6 +1018,7 @@
                                                const struct bn_tol      *tol);
 RT_EXPORT extern void nmg_js(struct shell       *s1,
                              struct shell       *s2,
+                            struct bu_list *vlfree,
                              const struct bn_tol        *tol);
 RT_EXPORT extern void nmg_invert_shell(struct shell             *s);
 
@@ -993,8 +1038,9 @@
                                      const struct bn_tol *tol);
 RT_EXPORT extern void nmg_gluefaces(struct faceuse *fulist[],
                                     int n,
+                                   struct bu_list *vlfree,
                                     const struct bn_tol *tol);
-RT_EXPORT extern int nmg_simplify_face(struct faceuse *fu);
+RT_EXPORT extern int nmg_simplify_face(struct faceuse *fu, struct bu_list 
*vlfree);
 RT_EXPORT extern void nmg_reverse_face(struct faceuse *fu);
 RT_EXPORT extern void nmg_mv_fu_between_shells(struct shell *dest,
                                                struct shell *src,
@@ -1013,7 +1059,8 @@
 RT_EXPORT extern struct vertexuse *nmg_join_2singvu_loops(struct vertexuse 
*vu1,
                                                           struct vertexuse 
*vu2);
 RT_EXPORT extern struct loopuse *nmg_cut_loop(struct vertexuse *vu1,
-                                              struct vertexuse *vu2);
+                                              struct vertexuse *vu2,
+                                             struct bu_list *vlfree);
 RT_EXPORT extern struct loopuse *nmg_split_lu_at_vu(struct loopuse *lu,
                                                     struct vertexuse *vu);
 RT_EXPORT extern struct vertexuse *nmg_find_repeated_v_in_lu(struct vertexuse 
*vu);
@@ -1026,8 +1073,8 @@
 RT_EXPORT extern void nmg_kill_accordions(struct loopuse *lu);
 RT_EXPORT extern int nmg_loop_split_at_touching_jaunt(struct loopuse           
 *lu,
                                                       const struct bn_tol      
 *tol);
-RT_EXPORT extern void nmg_simplify_loop(struct loopuse *lu);
-RT_EXPORT extern int nmg_kill_snakes(struct loopuse *lu);
+RT_EXPORT extern void nmg_simplify_loop(struct loopuse *lu, struct bu_list 
*vlfree);
+RT_EXPORT extern int nmg_kill_snakes(struct loopuse *lu, struct bu_list 
*vlfree);
 RT_EXPORT extern void nmg_mv_lu_between_shells(struct shell *dest,
                                                struct shell *src,
                                                struct loopuse *lu);
@@ -1124,10 +1171,12 @@
 RT_EXPORT extern const struct edgeuse *nmg_radial_face_edge_in_shell(const 
struct edgeuse *eu);
 RT_EXPORT extern const struct edgeuse *nmg_find_edge_between_2fu(const struct 
faceuse *fu1,
                                                                  const struct 
faceuse *fu2,
+                                                                struct bu_list 
*vlfree,
                                                                  const struct 
bn_tol *tol);
 RT_EXPORT extern struct edge *nmg_find_e_nearest_pt2(uint32_t *magic_p,
                                                      const point_t pt2,
                                                      const mat_t mat,
+                                                    struct bu_list *vlfree,
                                                      const struct bn_tol *tol);
 RT_EXPORT extern struct edgeuse *nmg_find_matching_eu_in_s(const struct 
edgeuse *eu1,
                                                            const struct shell 
*s2);
@@ -1182,40 +1231,48 @@
 
 /* Tabulation routines */
 RT_EXPORT extern void nmg_vertex_tabulate(struct bu_ptbl *tab,
-                                          const uint32_t *magic_p);
+                                          const uint32_t *magic_p,
+                                         struct bu_list *vlfree);
 RT_EXPORT extern void nmg_vertexuse_normal_tabulate(struct bu_ptbl *tab,
-                                                    const uint32_t *magic_p);
+                                                    const uint32_t *magic_p,
+                                                   struct bu_list *vlfree);
 RT_EXPORT extern void nmg_edgeuse_tabulate(struct bu_ptbl *tab,
-                                           const uint32_t *magic_p);
+                                           const uint32_t *magic_p,
+                                          struct bu_list *vlfree);
 RT_EXPORT extern void nmg_edge_tabulate(struct bu_ptbl *tab,
-                                        const uint32_t *magic_p);
+                                        const uint32_t *magic_p,
+                                       struct bu_list *vlfree);
 RT_EXPORT extern void nmg_edge_g_tabulate(struct bu_ptbl *tab,
-                                          const uint32_t *magic_p);
+                                          const uint32_t *magic_p,
+                                         struct bu_list *vlfree);
 RT_EXPORT extern void nmg_face_tabulate(struct bu_ptbl *tab,
-                                        const uint32_t *magic_p);
+                                        const uint32_t *magic_p,
+                                       struct bu_list *vlfree);
 RT_EXPORT extern void nmg_edgeuse_with_eg_tabulate(struct bu_ptbl *tab,
                                                    const struct edge_g_lseg 
*eg);
 RT_EXPORT extern void nmg_edgeuse_on_line_tabulate(struct bu_ptbl *tab,
                                                    const uint32_t *magic_p,
                                                    const point_t pt,
                                                    const vect_t dir,
+                                                  struct bu_list *vlfree,
                                                    const struct bn_tol *tol);
 RT_EXPORT extern void nmg_e_and_v_tabulate(struct bu_ptbl *eutab,
                                            struct bu_ptbl *vtab,
-                                           const uint32_t *magic_p);
+                                           const uint32_t *magic_p,
+                                          struct bu_list *vlfree);
 RT_EXPORT extern int nmg_2edgeuse_g_coincident(const struct edgeuse     *eu1,
                                                const struct edgeuse     *eu2,
                                                const struct bn_tol      *tol);
 
 /* From nmg_extrude.c */
-RT_EXPORT extern void nmg_translate_face(struct faceuse *fu, const vect_t Vec);
-RT_EXPORT extern int nmg_extrude_face(struct faceuse *fu, const vect_t Vec, 
const struct bn_tol *tol);
+RT_EXPORT extern void nmg_translate_face(struct faceuse *fu, const vect_t Vec, 
struct bu_list *vlfree);
+RT_EXPORT extern int nmg_extrude_face(struct faceuse *fu, const vect_t Vec, 
struct bu_list *vlfree, const struct bn_tol *tol);
 RT_EXPORT extern struct vertexuse *nmg_find_vertex_in_lu(const struct vertex 
*v, const struct loopuse *lu);
-RT_EXPORT extern void nmg_fix_overlapping_loops(struct shell *s, const struct 
bn_tol *tol);
+RT_EXPORT extern void nmg_fix_overlapping_loops(struct shell *s, struct 
bu_list *vlfree, const struct bn_tol *tol);
 RT_EXPORT extern void nmg_break_crossed_loops(struct shell *is, const struct 
bn_tol *tol);
-RT_EXPORT extern struct shell *nmg_extrude_cleanup(struct shell *is, const int 
is_void, const struct bn_tol *tol);
-RT_EXPORT extern void nmg_hollow_shell(struct shell *s, const fastf_t thick, 
const int approximate, const struct bn_tol *tol);
-RT_EXPORT extern struct shell *nmg_extrude_shell(struct shell *s, const 
fastf_t dist, const int normal_ward, const int approximate, const struct bn_tol 
*tol);
+RT_EXPORT extern struct shell *nmg_extrude_cleanup(struct shell *is, const int 
is_void, struct bu_list *vlfree, const struct bn_tol *tol);
+RT_EXPORT extern void nmg_hollow_shell(struct shell *s, const fastf_t thick, 
const int approximate, struct bu_list *vlfree, const struct bn_tol *tol);
+RT_EXPORT extern struct shell *nmg_extrude_shell(struct shell *s, const 
fastf_t dist, const int normal_ward, const int approximate, struct bu_list 
*vlfree, const struct bn_tol *tol);
 
 /* From nmg_pr.c */
 RT_EXPORT extern char *nmg_orientation(int orientation);
@@ -1286,7 +1343,7 @@
                                                const struct bn_tol *tol);
 RT_EXPORT extern void nmg_pr_fu_around_eu(const struct edgeuse *eu,
                                           const struct bn_tol *tol);
-RT_EXPORT extern void nmg_pl_lu_around_eu(const struct edgeuse *eu);
+RT_EXPORT extern void nmg_pl_lu_around_eu(const struct edgeuse *eu, struct 
bu_list *vlfree);
 RT_EXPORT extern void nmg_pr_fus_in_fg(const uint32_t *fg_magic);
 
 /* From nmg_misc.c */
@@ -1302,7 +1359,7 @@
 RT_EXPORT extern void nmg_snurb_fu_get_norm_at_vu(const struct faceuse *fu,
                                                   const struct vertexuse *vu,
                                                   vect_t norm);
-RT_EXPORT extern void nmg_find_zero_length_edges(const struct model *m);
+RT_EXPORT extern void nmg_find_zero_length_edges(const struct model *m, struct 
bu_list *vlfree);
 RT_EXPORT extern struct face *nmg_find_top_face_in_dir(const struct shell *s,
                                                        int dir, long *flags);
 RT_EXPORT extern struct face *nmg_find_top_face(const struct shell *s,
@@ -1310,11 +1367,13 @@
                                                 long *flags);
 RT_EXPORT extern int nmg_find_outer_and_void_shells(struct nmgregion *r,
                                                     struct bu_ptbl ***shells,
+                                                   struct bu_list *vlfree,
                                                     const struct bn_tol *tol);
-RT_EXPORT extern int nmg_mark_edges_real(const uint32_t *magic_p);
+RT_EXPORT extern int nmg_mark_edges_real(const uint32_t *magic_p, struct 
bu_list *vlfree);
 RT_EXPORT extern void nmg_tabulate_face_g_verts(struct bu_ptbl *tab,
                                                 const struct face_g_plane *fg);
 RT_EXPORT extern void nmg_isect_shell_self(struct shell *s,
+                                          struct bu_list *vlfree,
                                            const struct bn_tol *tol);
 RT_EXPORT extern struct edgeuse *nmg_next_radial_eu(const struct edgeuse *eu,
                                                     const struct shell *s,
@@ -1337,8 +1396,8 @@
                                               plane_t pl,
                                               const struct bn_tol *tol);
 RT_EXPORT extern int nmg_calc_face_plane(struct faceuse *fu_in,
-                                         plane_t pl);
-RT_EXPORT extern int nmg_calc_face_g(struct faceuse *fu);
+                                         plane_t pl, struct bu_list *vlfree);
+RT_EXPORT extern int nmg_calc_face_g(struct faceuse *fu, struct bu_list 
*vlfree);
 RT_EXPORT extern fastf_t nmg_faceuse_area(const struct faceuse *fu);
 RT_EXPORT extern fastf_t nmg_shell_area(const struct shell *s);
 RT_EXPORT extern fastf_t nmg_region_area(const struct nmgregion *r);
@@ -1356,10 +1415,11 @@
                                            size_t *total_wires,
                                            size_t *total_faces,
                                            size_t *total_points);
-RT_EXPORT extern void nmg_close_shell(struct shell *s,
+RT_EXPORT extern void nmg_close_shell(struct shell *s, struct bu_list *vlfree,
                                       const struct bn_tol *tol);
 RT_EXPORT extern struct shell *nmg_dup_shell(struct shell *s,
                                              long ***copy_tbl,
+                                            struct bu_list *vlfree,
                                              const struct bn_tol *tol);
 RT_EXPORT extern struct edgeuse *nmg_pop_eu(struct bu_ptbl *stack);
 RT_EXPORT extern void nmg_reverse_radials(struct faceuse *fu,
@@ -1374,20 +1434,21 @@
 RT_EXPORT extern void nmg_fix_decomposed_shell_normals(struct shell *s,
                                                        const struct bn_tol 
*tol);
 RT_EXPORT extern struct model *nmg_mk_model_from_region(struct nmgregion *r,
-                                                        int reindex);
+                                                        int reindex, struct 
bu_list *vlfree);
 RT_EXPORT extern void nmg_fix_normals(struct shell *s_orig,
+                                     struct bu_list *vlfree,
                                       const struct bn_tol *tol);
 RT_EXPORT extern int nmg_break_long_edges(struct shell *s,
                                           const struct bn_tol *tol);
 RT_EXPORT extern struct faceuse *nmg_mk_new_face_from_loop(struct loopuse *lu);
-RT_EXPORT extern int nmg_split_loops_into_faces(uint32_t *magic_p,
+RT_EXPORT extern int nmg_split_loops_into_faces(uint32_t *magic_p, struct 
bu_list *vlfree,
                                                 const struct bn_tol *tol);
-RT_EXPORT extern int nmg_decompose_shell(struct shell *s,
+RT_EXPORT extern int nmg_decompose_shell(struct shell *s, struct bu_list 
*vlfree,
                                          const struct bn_tol *tol);
 RT_EXPORT extern void nmg_stash_model_to_file(const char *filename,
                                               const struct model *m,
                                               const char *title);
-RT_EXPORT extern int nmg_unbreak_region_edges(uint32_t *magic_p);
+RT_EXPORT extern int nmg_unbreak_region_edges(uint32_t *magic_p, struct 
bu_list *vlfree);
 RT_EXPORT extern void nmg_vlist_to_eu(struct bu_list *vlist,
                                       struct shell *s);
 RT_EXPORT extern int nmg_mv_shell_to_region(struct shell *s,
@@ -1403,12 +1464,14 @@
                                         const struct bn_tol *tol);
 RT_EXPORT extern void nmg_make_faces_at_vert(struct vertex *new_v,
                                              struct bu_ptbl *int_faces,
+                                            struct bu_list *vlfree,
                                              const struct bn_tol *tol);
 RT_EXPORT extern void nmg_kill_cracks_at_vertex(const struct vertex *vp);
 RT_EXPORT extern int nmg_complex_vertex_solve(struct vertex *new_v,
                                               const struct bu_ptbl *faces,
                                               const int free_edges,
                                               const int approximate,
+                                             struct bu_list *vlfree,
                                               const struct bn_tol *tol);
 RT_EXPORT extern int nmg_bad_face_normals(const struct shell *s,
                                           const struct bn_tol *tol);
@@ -1432,19 +1495,22 @@
 RT_EXPORT extern int nmg_open_shells_connect(struct shell *dst,
                                              struct shell *src,
                                              const long **copy_tbl,
+                                            struct bu_list *vlfree,
                                              const struct bn_tol *tol);
 RT_EXPORT extern int nmg_in_vert(struct vertex *new_v,
                                  const int approximate,
+                                struct bu_list *vlfree,
                                  const struct bn_tol *tol);
-RT_EXPORT extern void nmg_mirror_model(struct model *m);
+RT_EXPORT extern void nmg_mirror_model(struct model *m, struct bu_list 
*vlfree);
 RT_EXPORT extern int nmg_kill_cracks(struct shell *s);
 RT_EXPORT extern int nmg_kill_zero_length_edgeuses(struct model *m);
 RT_EXPORT extern void nmg_make_faces_within_tol(struct shell *s,
+                                               struct bu_list *vlfree,
                                                 const struct bn_tol *tol);
 RT_EXPORT extern void nmg_intersect_loops_self(struct shell *s,
                                                const struct bn_tol *tol);
-RT_EXPORT extern struct edge_g_cnurb *rt_join_cnurbs(struct bu_list *crv_head);
-RT_EXPORT extern struct edge_g_cnurb *rt_arc2d_to_cnurb(point_t i_center,
+RT_EXPORT extern struct edge_g_cnurb *nmg_join_cnurbs(struct bu_list 
*crv_head);
+RT_EXPORT extern struct edge_g_cnurb *nmg_arc2d_to_cnurb(point_t i_center,
                                                         point_t i_start,
                                                         point_t i_end,
                                                         int point_type,
@@ -1452,13 +1518,12 @@
 RT_EXPORT extern int nmg_break_edge_at_verts(struct edge *e,
                                              struct bu_ptbl *verts,
                                              const struct bn_tol *tol);
-RT_EXPORT extern void nmg_isect_shell_self(struct shell *s,
-                                           const struct bn_tol *tol);
 RT_EXPORT extern fastf_t nmg_loop_plane_area(const struct loopuse *lu,
                                              plane_t pl);
-RT_EXPORT extern int nmg_break_edges(uint32_t *magic_p,
+RT_EXPORT extern int nmg_break_edges(uint32_t *magic_p, struct bu_list *vlfree,
                                      const struct bn_tol *tol);
 RT_EXPORT extern int nmg_lu_is_convex(struct loopuse *lu,
+                                     struct bu_list *vlfree,
                                       const struct bn_tol *tol);
 RT_EXPORT extern int nmg_to_arb(const struct model *m,
                                 struct rt_arb_internal *arb_int);
@@ -1467,8 +1532,10 @@
                                 const struct bn_tol *tol);
 RT_EXPORT extern int nmg_to_poly(const struct model *m,
                                  struct rt_pg_internal *poly_int,
+                                struct bu_list *vlfree,
                                  const struct bn_tol *tol);
 RT_EXPORT extern struct rt_bot_internal *nmg_bot(struct shell *s,
+                                                struct bu_list *vlfree,
                                                  const struct bn_tol *tol);
 
 RT_EXPORT extern int nmg_simplify_shell_edges(struct shell *s,
@@ -1476,19 +1543,23 @@
 RT_EXPORT extern int nmg_edge_collapse(struct model *m,
                                        const struct bn_tol *tol,
                                        const fastf_t tol_coll,
-                                       const fastf_t min_angle);
+                                       const fastf_t min_angle,
+                                      struct bu_list *vlfree);
 
 /* From nmg_copy.c */
 RT_EXPORT extern struct model *nmg_clone_model(const struct model *original);
 
 /* From nmg_tri.c */
 RT_EXPORT extern void nmg_triangulate_shell(struct shell *s,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol  *tol);
 
 
 RT_EXPORT extern void nmg_triangulate_model(struct model *m,
+                                           struct bu_list *vlfree,
                                             const struct bn_tol *tol);
 RT_EXPORT extern int nmg_triangulate_fu(struct faceuse *fu,
+                                       struct bu_list *vlfree,
                                         const struct bn_tol *tol);
 RT_EXPORT extern void nmg_dump_model(struct model *m);
 
@@ -1517,13 +1588,13 @@
 RT_EXPORT extern char *nmg_manifolds(struct model *m);
 
 /* nmg.c */
-RT_EXPORT extern int nmg_ray_segs(struct ray_data       *rd);
+RT_EXPORT extern int nmg_ray_segs(struct ray_data       *rd, struct bu_list 
*vlfree);
 
 
 /* From nmg_fuse.c */
 RT_EXPORT extern int nmg_is_common_bigloop(const struct face *f1,
                                           const struct face *f2);
-RT_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1,
+RT_EXPORT extern void nmg_region_v_unique(struct nmgregion *r1, struct bu_list 
*vlfree,
                                          const struct bn_tol *tol);
 RT_EXPORT extern int nmg_ptbl_vfuse(struct bu_ptbl *t,
                                    const struct bn_tol *tol);
@@ -1531,7 +1602,7 @@
                                              struct bu_ptbl *t2,
                                              const struct bn_tol *tol);
 /* nmg_two_region_vertex_fuse replaced with nmg_vertex_fuse */
-RT_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_vertex_fuse(const uint32_t *magic_p,struct bu_list 
*vlfree,
                                     const struct bn_tol *tol);
 RT_EXPORT extern int nmg_cnurb_is_linear(const struct edge_g_cnurb *cnrb);
 RT_EXPORT extern int nmg_snurb_is_planar(const struct face_g_snurb *srf,
@@ -1567,9 +1638,9 @@
                                            const struct face_g_snurb *snrb,
                                            const struct bu_list *head,
                                            const struct bn_tol *tol);
-RT_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_edge_fuse(const uint32_t *magic_p,struct bu_list 
*vlfree,
                                   const struct bn_tol *tol);
-RT_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_edge_g_fuse(const uint32_t *magic_p,struct bu_list 
*vlfree,
                                           const struct bn_tol  *tol);
 RT_EXPORT extern int nmg_ck_fu_verts(struct faceuse *fu1,
                                     struct face *f2,
@@ -1580,17 +1651,19 @@
 RT_EXPORT extern int   nmg_two_face_fuse(struct face   *f1,
                                          struct face *f2,
                                          const struct bn_tol *tol);
-RT_EXPORT extern int nmg_model_face_fuse(struct model *m,
+RT_EXPORT extern int nmg_model_face_fuse(struct model *m,struct bu_list 
*vlfree,
                                         const struct bn_tol *tol);
 RT_EXPORT extern int nmg_break_all_es_on_v(uint32_t *magic_p,
-                                          struct vertex *v,
+                                          struct vertex *v,struct bu_list 
*vlfree,
                                           const struct bn_tol *tol);
-RT_EXPORT extern int nmg_break_e_on_v(const uint32_t *magic_p,
+RT_EXPORT extern int nmg_break_e_on_v(const uint32_t *magic_p,struct bu_list 
*vlfree,
                                      const struct bn_tol *tol);
 /* DEPRECATED: use nmg_break_e_on_v */
 RT_EXPORT extern int nmg_model_break_e_on_v(const uint32_t *magic_p,
+                                           struct bu_list *vlfree,
                                            const struct bn_tol *tol);
 RT_EXPORT extern int nmg_model_fuse(struct model *m,
+                                   struct bu_list *vlfree,
                                    const struct bn_tol *tol);
 
 /* radial routines */
@@ -1614,6 +1687,7 @@
                                             struct bu_list             *src,
                                             const struct bn_tol        *tol);
 RT_EXPORT extern int    nmg_is_crack_outie(const struct edgeuse        *eu,
+                                           struct bu_list *vlfree,
                                            const struct bn_tol *tol);
 RT_EXPORT extern struct nmg_radial     *nmg_find_radial_eu(const struct 
bu_list *hd,
                                                            const struct 
edgeuse *eu);
@@ -1623,6 +1697,7 @@
 RT_EXPORT extern void nmg_radial_mark_cracks(struct bu_list    *hd,
                                             const struct edge  *e1,
                                             const struct edge  *e2,
+                                            struct bu_list *vlfree,
                                             const struct bn_tol        *tol);
 RT_EXPORT extern struct nmg_radial *nmg_radial_find_an_original(const struct 
bu_list   *hd,
                                                                const struct 
shell      *s,
@@ -1654,10 +1729,13 @@
 RT_EXPORT extern void nmg_radial_exchange_marked(struct bu_list                
*hd,
                                                 const struct bn_tol    *tol);
 RT_EXPORT extern void nmg_s_radial_harmonize(struct shell              *s,
+                                            struct bu_list *vlfree,
                                             const struct bn_tol        *tol);
 RT_EXPORT extern void nmg_s_radial_check(struct shell          *s,
+                                        struct bu_list *vlfree,
                                         const struct bn_tol    *tol);
 RT_EXPORT extern void nmg_r_radial_check(const struct nmgregion        *r,
+                                        struct bu_list *vlfree,
                                         const struct bn_tol    *tol);
 
 
@@ -1689,19 +1767,24 @@
                                     void *                     state);
 RT_EXPORT extern void nmg_visit_faceuse(struct faceuse                 *fu,
                                        const struct nmg_visit_handlers *htab,
-                                       void *                  state);
+                                       void *                  state,
+                                       struct bu_list *vlfree);
 RT_EXPORT extern void nmg_visit_shell(struct shell                     *s,
                                      const struct nmg_visit_handlers   *htab,
-                                     void *                    state);
+                                     void *                    state,
+                                     struct bu_list *vlfree);
 RT_EXPORT extern void nmg_visit_region(struct nmgregion                *r,
                                       const struct nmg_visit_handlers  *htab,
-                                      void *                   state);
+                                      void *                   state,
+                                      struct bu_list *vlfree);
 RT_EXPORT extern void nmg_visit_model(struct model                     *model,
                                      const struct nmg_visit_handlers   *htab,
-                                     void *                    state);
+                                     void *                    state,
+                                     struct bu_list *vlfree);
 RT_EXPORT extern void nmg_visit(const uint32_t         *magicp,
                                const struct nmg_visit_handlers *htab,
-                               void *                  state);
+                               void *                  state,
+                               struct bu_list *vlfree);
 
 
 #endif

Modified: brlcad/branches/brep-debug/include/rt/nurb.h
===================================================================
--- brlcad/branches/brep-debug/include/rt/nurb.h        2016-10-18 02:04:14 UTC 
(rev 69108)
+++ brlcad/branches/brep-debug/include/rt/nurb.h        2016-10-18 02:29:54 UTC 
(rev 69109)
@@ -99,14 +99,14 @@
 
 /* ----- Internal structures ----- */
 
-struct rt_nurb_poly {
-    struct rt_nurb_poly * next;
+struct nmg_nurb_poly {
+    struct nmg_nurb_poly * next;
     point_t            ply[3];         /**< @brief Vertices */
     fastf_t            uv[3][2];       /**< @brief U, V parametric values */
 };
 
-struct rt_nurb_uv_hit {
-    struct rt_nurb_uv_hit * next;
+struct nmg_nurb_uv_hit {
+    struct nmg_nurb_uv_hit * next;
     int                sub;
     fastf_t            u;
     fastf_t            v;
@@ -130,154 +130,154 @@
 __BEGIN_DECLS
 
 /* nurb_basis.c */
-RT_EXPORT extern fastf_t rt_nurb_basis_eval(struct knot_vector *knts, int 
interval,
+RT_EXPORT extern fastf_t nmg_nurb_basis_eval(struct knot_vector *knts, int 
interval,
                                                 int order, fastf_t mu);
 
 /* nurb_bezier.c */
-RT_EXPORT extern int rt_nurb_bezier(struct bu_list *bezier_hd, const struct 
face_g_snurb * srf, struct resource *res);
-RT_EXPORT extern int rt_bez_check(const struct face_g_snurb * srf);
+RT_EXPORT extern int nmg_nurb_bezier(struct bu_list *bezier_hd, const struct 
face_g_snurb * srf, struct resource *res);
+RT_EXPORT extern int nmg_bez_check(const struct face_g_snurb * srf);
 RT_EXPORT extern int nurb_crv_is_bezier(const struct edge_g_cnurb *crv);
 RT_EXPORT extern void nurb_c_to_bezier(struct bu_list *clist, struct 
edge_g_cnurb *crv);
 
 /* nurb_bound.c */
-RT_EXPORT extern int rt_nurb_s_bound(struct face_g_snurb *srf, point_t bmin, 
point_t bmax);
-RT_EXPORT extern int rt_nurb_c_bound(struct edge_g_cnurb *crv, point_t bmin, 
point_t bmax);
-RT_EXPORT extern int rt_nurb_s_check(struct face_g_snurb *srf);
-RT_EXPORT extern int rt_nurb_c_check(struct edge_g_cnurb *crv);
+RT_EXPORT extern int nmg_nurb_s_bound(struct face_g_snurb *srf, point_t bmin, 
point_t bmax);
+RT_EXPORT extern int nmg_nurb_c_bound(struct edge_g_cnurb *crv, point_t bmin, 
point_t bmax);
+RT_EXPORT extern int nmg_nurb_s_check(struct face_g_snurb *srf);
+RT_EXPORT extern int nmg_nurb_c_check(struct edge_g_cnurb *crv);
 
 /* nurb_copy.c */
-RT_EXPORT extern struct face_g_snurb *rt_nurb_scopy(const struct face_g_snurb 
*srf, struct resource *res);
-RT_EXPORT extern struct edge_g_cnurb *rt_nurb_crv_copy(const struct 
edge_g_cnurb * crv);
+RT_EXPORT extern struct face_g_snurb *nmg_nurb_scopy(const struct face_g_snurb 
*srf, struct resource *res);
+RT_EXPORT extern struct edge_g_cnurb *nmg_nurb_crv_copy(const struct 
edge_g_cnurb * crv);
 
 /* nurb_diff.c */
-RT_EXPORT extern struct face_g_snurb *rt_nurb_s_diff(const struct face_g_snurb 
*srf, int dir);
-RT_EXPORT extern struct edge_g_cnurb *rt_nurb_c_diff(const struct edge_g_cnurb 
*crv);
-RT_EXPORT extern void rt_nurb_mesh_diff(int order, const fastf_t *o_pts,
+RT_EXPORT extern struct face_g_snurb *nmg_nurb_s_diff(const struct 
face_g_snurb *srf, int dir);
+RT_EXPORT extern struct edge_g_cnurb *nmg_nurb_c_diff(const struct 
edge_g_cnurb *crv);
+RT_EXPORT extern void nmg_nurb_mesh_diff(int order, const fastf_t *o_pts,
                                             fastf_t *n_pts,
                                             const fastf_t *knots, int 
o_stride, int n_stride,
                                             int o_size, int pt_type);
 
 /* nurb_eval.c */
-RT_EXPORT extern void rt_nurb_s_eval(const struct face_g_snurb *srf, fastf_t 
u, fastf_t v, fastf_t * final_value);
-RT_EXPORT extern void rt_nurb_c_eval(const struct edge_g_cnurb *crv, fastf_t 
param, fastf_t * final_value);
-RT_EXPORT extern fastf_t *rt_nurb_eval_crv(fastf_t *crv, int order,
+RT_EXPORT extern void nmg_nurb_s_eval(const struct face_g_snurb *srf, fastf_t 
u, fastf_t v, fastf_t * final_value);
+RT_EXPORT extern void nmg_nurb_c_eval(const struct edge_g_cnurb *crv, fastf_t 
param, fastf_t * final_value);
+RT_EXPORT extern fastf_t *nmg_nurb_eval_crv(fastf_t *crv, int order,
                                                fastf_t param,
                                                const struct knot_vector 
*k_vec, int k_index, int coords);
-RT_EXPORT extern void rt_nurb_pr_crv(fastf_t *crv, int c_size, int coords);
+RT_EXPORT extern void nmg_nurb_pr_crv(fastf_t *crv, int c_size, int coords);
 
 /* nurb_flat.c */
-RT_EXPORT extern int rt_nurb_s_flat(struct face_g_snurb *srf, fastf_t epsilon);
-RT_EXPORT extern fastf_t rt_nurb_crv_flat(fastf_t *crv, int    size, int 
pt_type);
+RT_EXPORT extern int nmg_nurb_s_flat(struct face_g_snurb *srf, fastf_t 
epsilon);
+RT_EXPORT extern fastf_t nmg_nurb_crv_flat(fastf_t *crv, int   size, int 
pt_type);
 
 /* nurb_knot.c */
-RT_EXPORT extern void rt_nurb_kvknot(struct knot_vector *new_knots, int order,
+RT_EXPORT extern void nmg_nurb_kvknot(struct knot_vector *new_knots, int order,
                                          fastf_t lower, fastf_t upper, int 
num, struct resource *res);
-RT_EXPORT extern void rt_nurb_kvmult(struct knot_vector *new_kv,
+RT_EXPORT extern void nmg_nurb_kvmult(struct knot_vector *new_kv,
                                          const struct knot_vector *kv,
                                          int num, fastf_t val, struct resource 
*res);
-RT_EXPORT extern void rt_nurb_kvgen(struct knot_vector *kv,
+RT_EXPORT extern void nmg_nurb_kvgen(struct knot_vector *kv,
                                         fastf_t lower, fastf_t upper, int num, 
struct resource *res);
-RT_EXPORT extern void rt_nurb_kvmerge(struct knot_vector *new_knots,
+RT_EXPORT extern void nmg_nurb_kvmerge(struct knot_vector *new_knots,
                                           const struct knot_vector *kv1,
                                           const struct knot_vector *kv2, 
struct resource *res);
-RT_EXPORT extern int rt_nurb_kvcheck(fastf_t val, const struct knot_vector 
*kv);
-RT_EXPORT extern void rt_nurb_kvextract(struct knot_vector *new_kv,
+RT_EXPORT extern int nmg_nurb_kvcheck(fastf_t val, const struct knot_vector 
*kv);
+RT_EXPORT extern void nmg_nurb_kvextract(struct knot_vector *new_kv,
                                             const struct knot_vector *kv,
                                             int lower, int upper, struct 
resource *res);
-RT_EXPORT extern void rt_nurb_kvcopy(struct knot_vector *new_kv,
+RT_EXPORT extern void nmg_nurb_kvcopy(struct knot_vector *new_kv,
                                          const struct knot_vector *old_kv, 
struct resource *res);
-RT_EXPORT extern void rt_nurb_kvnorm(struct knot_vector *kv);
-RT_EXPORT extern int rt_nurb_knot_index(const struct knot_vector *kv, fastf_t 
k_value, int order);
-RT_EXPORT extern void rt_nurb_gen_knot_vector(struct knot_vector *new_knots,
+RT_EXPORT extern void nmg_nurb_kvnorm(struct knot_vector *kv);
+RT_EXPORT extern int nmg_nurb_knot_index(const struct knot_vector *kv, fastf_t 
k_value, int order);
+RT_EXPORT extern void nmg_nurb_gen_knot_vector(struct knot_vector *new_knots,
                                                   int order, fastf_t lower, 
fastf_t upper, struct resource *res);
 
 /* nurb_norm.c */
-RT_EXPORT extern void rt_nurb_s_norm(struct face_g_snurb *srf, fastf_t u, 
fastf_t v, fastf_t * norm);
+RT_EXPORT extern void nmg_nurb_s_norm(struct face_g_snurb *srf, fastf_t u, 
fastf_t v, fastf_t * norm);
 
 /* nurb_c2.c */
-RT_EXPORT extern void rt_nurb_curvature(struct curvature *cvp,
+RT_EXPORT extern void nmg_nurb_curvature(struct curvature *cvp,
                                             const struct face_g_snurb *srf, 
fastf_t u, fastf_t v);
 
 /* nurb_plot.c */
-RT_EXPORT extern void rt_nurb_plot_snurb(FILE *fp, const struct face_g_snurb 
*srf);
-RT_EXPORT extern void rt_nurb_plot_cnurb(FILE *fp, const struct edge_g_cnurb 
*crv);
-RT_EXPORT extern void rt_nurb_s_plot(const struct face_g_snurb *srf);
+RT_EXPORT extern void nmg_nurb_plot_snurb(FILE *fp, const struct face_g_snurb 
*srf);
+RT_EXPORT extern void nmg_nurb_plot_cnurb(FILE *fp, const struct edge_g_cnurb 
*crv);
+RT_EXPORT extern void nmg_nurb_s_plot(const struct face_g_snurb *srf);
 
 /* nurb_interp.c */
-RT_EXPORT extern void rt_nurb_cinterp(struct edge_g_cnurb *crv, int order,
+RT_EXPORT extern void nmg_nurb_cinterp(struct edge_g_cnurb *crv, int order,
                                           const fastf_t *data, int n);
-RT_EXPORT extern void rt_nurb_sinterp(struct face_g_snurb *srf, int order,
+RT_EXPORT extern void nmg_nurb_sinterp(struct face_g_snurb *srf, int order,
                                           const fastf_t *data, int ymax, int 
xmax);
 
 /* nurb_poly.c */
-RT_EXPORT extern struct rt_nurb_poly *rt_nurb_to_poly(struct face_g_snurb 
*srf);
-RT_EXPORT extern struct rt_nurb_poly *rt_nurb_mk_poly(fastf_t *v1, fastf_t 
*v2, fastf_t *v3,
+RT_EXPORT extern struct nmg_nurb_poly *nmg_nurb_to_poly(struct face_g_snurb 
*srf);
+RT_EXPORT extern struct nmg_nurb_poly *nmg_nurb_mk_poly(fastf_t *v1, fastf_t 
*v2, fastf_t *v3,
                     fastf_t uv1[2], fastf_t uv2[2], fastf_t uv3[2]);
 
 /* nurb_ray.c */
-RT_EXPORT extern struct face_g_snurb *rt_nurb_project_srf(const struct 
face_g_snurb *srf,
+RT_EXPORT extern struct face_g_snurb *nmg_nurb_project_srf(const struct 
face_g_snurb *srf,
                                                               plane_t plane1, 
plane_t plane2, struct resource *res);
-RT_EXPORT extern void rt_nurb_clip_srf(const struct face_g_snurb *srf,
+RT_EXPORT extern void nmg_nurb_clip_srf(const struct face_g_snurb *srf,
                                            int dir, fastf_t *min, fastf_t 
*max);
-RT_EXPORT extern struct face_g_snurb *rt_nurb_region_from_srf(const struct 
face_g_snurb *srf,
+RT_EXPORT extern struct face_g_snurb *nmg_nurb_region_from_srf(const struct 
face_g_snurb *srf,
                                                                   int dir, 
fastf_t param1, fastf_t param2, struct resource *res);
-RT_EXPORT extern struct rt_nurb_uv_hit *rt_nurb_intersect(const struct 
face_g_snurb * srf,
+RT_EXPORT extern struct nmg_nurb_uv_hit *nmg_nurb_intersect(const struct 
face_g_snurb * srf,
                                                               plane_t plane1, 
plane_t plane2, double uv_tol, struct resource *res, struct bu_list *plist);
 
 /* nurb_refine.c */
-RT_EXPORT extern struct face_g_snurb *rt_nurb_s_refine(const struct 
face_g_snurb *srf,
+RT_EXPORT extern struct face_g_snurb *nmg_nurb_s_refine(const struct 
face_g_snurb *srf,
                                                            int dir, struct 
knot_vector *kv, struct resource *res);
-RT_EXPORT extern struct edge_g_cnurb *rt_nurb_c_refine(const struct 
edge_g_cnurb * crv,

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to