						 -*- coding: utf-8 -*-
BRL-CAD Deprecation Log
=======================

Included below is a deprecation log and notes for BRL-CAD public
interface changes that potentially impact external developers and
users.  Public interfaces include developer application programming
interface (API) calls as well as user application command-line
interface (CLI) and graphical user interface (GUI) behaviors.

The general practice is that public interface changes may go from
deprecated to obsolete, whereby previous behavior is removed or
changed, during one of the following events:

a) during a major release (e.g. going from 7.*.* to 8.*.*)

b) during a minor release provided the change was publicly announced
   as deprecated beforehand AND sufficient deprecation warning was
   given via i) two minor releases included the deprecation notice,
   and ii) at least three months (90 days) have passed since the
   deprecation was announced

c) during a minor release provided there still exists an equivalent
   alternative interface that will not impose an undue burden on users
   or developers (see "MINIMALLY IMPACTING API CHANGES" below)

d) during a patch release provided you can correctly prove P = NP

If a change will intentionally replace or remove functionality, then
they should be then marked as deprecated first.  Otherwise, changes to
interfaces that are never publicly announced, not installed, or are
not part of publicly available documentation are fair game to change
as needed.

Where feasible, interfaces should be visibly marked as deprecated
either during compile-time with #warning pre-processor declarations or
during run-time with print statements.

Example: Say we decided during 7.50.3 development to remove
rt_shootray() from our API without a replacement that would qualify as
"minimally impacting".  We'd annotate the deprecation here, mark the
function as DEPRECATED in the API header, and post the 7.50.4 release.
The soonest that function could be removed would be in the 7.54.0
release during 7.53 development.  It could NOT be removed in 7.54.2
since it's a patch version, prior to the 7.54 release line, nor even
during 7.54.0 if less than 90 days had passed since 7.50.6 was posted.

When it is finally removed, remove its entry in the DEPRECATED section
and move it to the OBSOLETE section under the version entry in which
it was removed.  Make sure the entry has a reference to the version
in which the item was first classified as deprecated.  See the %S
entry for an example.

DEPRECATED/OBSOLETE Items
-------------------------

The items listed below are interfaces that are deprecated or obsolete,
categorized by the release in which the change was made.  If the
change involved a rename/removal of a routine, both the original and
new names should be listed for reference.


**************
* DEPRECATED *
**************


7.24
----
include/raytrace.h librt
        RT_DBHASH and RT_DBNHASH [deprecation 7.24]

7.22
----
include/raytrace.h librt
	nmg_model_break_e_on_v -> nmg_break_e_on_v [deprecation 7.22]
	RT_GET_TREE -> BU_GET [deprecation 7.22]
	RT_FREE_TREE -> BU_PUT [deprecation 7.22]
include/bu.h
        bu_parse_mm() [deprecated 7.22]
librtserver
        becoming stand-alone project, removes optional java dependency [deprecated 7.22]
mged
	em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]

7.20
----
liborle
	remove liborle and the tools using it, fb-orle, orle-fb, orle-pix and
	pix-orle [deprecated 7.20]
tclscripts/lib
	Mged, Database, Db, Dm, Drawable, Display, QuadDisplay, View -> Ged [deprecated 7.20]
librt
	bspline primitive [deprecated 7.20]
	poly primitive [deprecated 7.20]
	hf primitive [deprecated 7.20]
include/bu.h
	bu_vls_init_if_uninit() -> bu_vls_init() [deprecated 7.20]
autogen.sh && configure
	GNU Autotools build system -> CMake build system [deprecated 7.20]
	./configure -> cmake . [deprecated 7.20]
include/raytrace.h
	rt_load_attrs() -> rt_gettrees_and_attrs() or db5_import_attributs() [deprecated 7.20]
	db_regexp_match() -> !bu_fnmatch() [deprecated 7.20]

7.18
----
include/raytrace.h rt_comb_internal members
	region_id -> region_id attribute [deprecated 7.18]
	aircode -> air attribute [deprecated 7.18]
	GIFTmater -> material_id attribute [deprecated 7.18]
	los -> los attribute [deprecated 7.18]
bu.h xdr API
	BU_GLONGLONG() -> ntohll() [deprecated 7.18]
	BU_GLONG() -> ntohl() [deprecated 7.18]
	BU_GSHORT() -> ntohs() [deprecated 7.18]
	bu_gshort() -> ntohs() [deprecated 7.18]
	bu_glong() -> ntohl() [deprecated 7.18]
	bu_pshort() -> htons() [deprecated 7.18]
	bu_plong() -> htonl() [deprecated 7.18]
	bu_plonglong() -> htonll() [deprecated 7.18]
db.h
	rt_fastf_float() -> ntohf() [deprecated 7.18]
	rt_mat_dbmat() -> htonf() [deprecated 7.18]
	rt_dbmat_mat() -> ntohf() [deprecated 7.18]
dbcp
	dbcp -> dd [deprecated 7.18]
mged
	?(*) -> ? -(*) [deprecated 7.18]
	apropos(*) -> apropos -(*) [deprecated 7.18]
	dbconcat -> db concat [deprecated 7.18]
	dbupgrade -> db upgrade [deprecated 7.18]
	dbversion -> db version [deprecated 7.18]
	dbfind -> search [deprecated 7.18]
	debug* -> debug [deprecated 7.18]
	comb_std -> comb [deprecated 7.18]
	comb_color -> comb [deprecated 7.18]
	combmem -> comb [deprecated 7.18]
	kill(*) -> kill [deprecated 7.18]
	rotobj -> rot [deprecated 7.18]
	qvrot -> rot -q -v [deprecated 7.18]
	qorot -> rot -q [deprecated 7.18]
	([amov])rot -> rot -([amv]) [deprecated 7.18]
	([op])scale -> sca -(p) [deprecated 7.18]
	([op])translate -> tra -(p) [deprecated 7.18]
	nmg_(*) -> nmg (*) [deprecated 7.18]
	bot_(*) -> bot (*) [deprecated 7.18]
	[so]ed -> edit [deprecated 7.18]
	[tr]ed -> edit -t [deprecated 7.18]
	ls -oA -> ls -O [deprecated 7.18]
	draw -oA -> draw -O [deprecated 7.18]
	erase -oA -> erase -O [deprecated 7.18]
	erase_all -> erase -r [deprecated 7.18]
	move_all -> move -r [deprecated 7.18]
	query_ray -> nirt [deprecated 7.18]
	vdraw -> draw -v [deprecated 7.18]
	vnirt -> nirt -v [deprecated 7.18]
	vquery_ray -> nirt -v [deprecated 7.18]
	xpush -> push -x [deprecated 7.18]

7.16
----
struct bu_structparse 'i' format
       'i' -> '%p' [deprecated 7.16]
SGI-specific tools
	pl-sgi -> pl-fb [ deprecated 7.16 ]
Dunn camera and Canon printer tools
	dunncolor [ deprecated 7.16 ]
	dunnsnap [ deprecated 7.16 ]
	canonize [ deprecated 7.16 ]
reserved attributes and case-sensitivity
	id -> region_id [deprecated 7.16]
	GIFTmater -> material_id [deprecated 7.16]
	GIFT_MATERIAL -> material_id [deprecated 7.16]
	mat -> material_id [deprecated 7.16]
	AIRCODE -> air [deprecated 7.16]
	rgb -> color [deprecated 7.16]
	oshader -> shader [deprecated 7.16]
genptr_t/GENPTR_NULL
	genptr_t -> void* [deprecated 7.16]
.pl file suffix
	.pl -> .plot3 [deprecated 7.16]
*-pl
	*-pl -> *-plot3 [deprecated 7.16]
pl*
	pl* -> plot3* [deprecated 7.16]
any-png.sh
	use pix tools [deprecated 7.16]
cadbug.sh
	use sf.net tracker [deprecated 7.16]
cray.sh
	obsolete hardware [deprecated 7.16]
pixwrite.sh
	obsolete hardware [deprecated 7.16]
pixread.sh
	obsolete hardware [deprecated 7.16]
sgisnap.sh
	obsolete hardware [deprecated 7.16]
include/bu.h
	bu_argv0() -> bu_basename(bu_argv0_full_path()); [deprecated 7.16]
include/raytrace.h
	rt_prep_timer() -> bu_timer() [deprecated 7.16]
	rt_get_timer() -> bu_elapsed() [deprecated 7.16]
mged
	make_bb -> bb [deprecated 7.16]

7.14
----
include/dm_color.h
	dm_color.h -> dm.h [deprecated 7.14]
include/fb.h
	FB_WPIXEL -> fb_wpixel [deprecated 7.14]
src/gtools
	g_[toolname] -> g[toolname] [deprecated 7.14]
include/raytrace.h
	rt_fdiff -> NEAR_ZERO [deprecated 7.14]
	rt_reldiff -> NEAR_ZERO [deprecated 7.14]
	DIR_* -> RT_DIR_* [deprecated 7.14]
mged
	tops -g -u -> now default behavior [deprecated 7.14]
	-n option -> -c option [deprecated 7.14]
	bots, per_line [deprecated 7.14]
include/vmath.h
	VADD2_2D -> V2ADD2 [deprecated 7.14]
	VSUB2_2D -> V2SUB2 [deprecated 7.14]
	MAGSQ_2D -> MAG2SQ [deprecated 7.14]
	VDOT_2D -> V2DOT [deprecated 7.14]
	VMOVE_2D -> V2MOVE [deprecated 7.14]
	VSCALE_2D -> V2SCALE [deprecated 7.14]
	VJOIN1_2D -> V2JOIN1 [deprecated 7.14]

7.12
----
include/raytrace.h
	rt_functab size -> growing ft_label and new callbacks [deprecated 7.12]
srt/librt/cmd.c
	rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
src/rt/viewarea.c
	terminology and output format [deprecated 7.12]
include/raytrace.h
	RT_HIT_NORM -> RT_HIT_NORMAL [deprecated 7.12]

pre 7.0
-------
include/raytrace.h
	struct hit.hit_point -> RT_HIT_POINT [deprecated pre-7.0]
	struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]


************
* OBSOLETE *
************

7.24.0
------
include/bu.h
	bu_get_public_cpus() [deprecated 7.16]
	bu_get_load_average() [deprecated 7.12]
	bu_fopen_uniq() -> fopen() [deprecated 7.14]
src/other/jove
	jove -> emacs [deprecated 7.14]

7.22.0
------
include/bu.h
	%S format specifier -> %V format specifier for bu_vls [deprecated 7.14]

7.20.2
------
cat-fb
	obsolete hardware
include/vmath.h
	ELEMENTS_PER_PT -> ELEMENTS_PER_POINT [deprecated 7.12]
	HVECT_LEN -> ELEMENTS_PER_HVECT [deprecated 7.12]
	HPT_LEN -> ELEMENTS_PER_HPOINT [deprecated 7.12]

7.20.0
------
include/bu.h
	bu_mro and related macros -> bu_attribute_value_set

7.18.2
------
include/raytrace.h
	RT_HIT_NORM -> RT_HIT_NORMAL [deprecated pre-7.0]
g-shell.rect
	g-shell.rect renamed to g-shell-rect [minor tool rename]

7.18.0
------
include/raytrace.h
	db_free_external -> bu_free_external [deprecated pre-7.0]
include/wdb.h
	mk_fastgen_region() -> mk_comb() [deprecated 7.12]
src/librt/bomb.c
	rt_bomb() -> bu_bomb() [deprecated 7.10]
include/machine.h
	machine.h -> common.h && bu.h [deprecated 7.10]
src/vas4
	vas4 [deprecated 7.12]

7.16.4
------
include/raytrace.h
	get_solidbitv() -> rt_get_solidbitv() [deprecated 7.16]

7.14.4
------
include/pkg.h
	uses size_t for lengths in API calls
include/bu.h
	bu_association() [unused]

7.14.0
------
include/raytrace.h
	GET_HITMISS -> NMG_GET_HITMISS
mged
	edcolor -> color -e
include/vmath.h
	PI -> M_PI
	M_SQRT2_DIV2 -> M_SQRT1_2

7.12.6
------
mged
	binary -> bo [rename]

7.12.4
------
include/mater.h
	rt_material_head -> rt_material_head()  [deprecated 7.12]
include/raytrace.h
	removed iterator from NMG_CK_HITMISS_LIST
include/bu.h
	BU_QFLSTR -> BU_FLSTR

7.12.2
------
include/wdb.h
	mk_trc() -> mk_trc_h() and mk_trc_top() [deprecated pre-7.0]
	mk_bsolid() [deprecated pre-7.0]
	mk_bsurf() [deprecated pre-7.0]
	mk_strsol() -> mk_dsp(), mk_ebm(), mk_vol(), mk_submodel() [deprecated pre-7.0]
	mk_rcomb(), mk_fcomb(), mk_memb() -> mk_lcomb() and mk_addmember() [deprecated pre-7.0]
	mk_fwrite_internal() [deprecated pre-7.0]

7.12.0
------
include/common.h
	NATURAL_IEEE -> bu_byteorder() == BU_BIG_ENDIAN || defined(WORDS_BIGENDIAN)
	REVERSE_IEEE -> bu_byteorder() == BU_LITTLE_ENDIAN
include/bu.h
	bu_log(char *, ...) -> bu_log(const char *, ...) [const]
	bu_flog(FILE *, char *, ...) -> bu_flog(FILE *, const char *, ...) [const]
	bu_vls_printf(struct bu_vls *, char *) -> bu_vls_printf(struct bu_vls *, const char *) [const]
	bu_vls_sprintf(struct bu_vls *, char *) -> bu_vls_sprintf(struct bu_vls *, const char *) [const]
include/wdb.h
	removed mk_poly() [deprecated pre-7.0]
	removed mk_polysolid() [deprecated pre-7.0]
	removed mk_fpoly() [deprecated pre-7.0]
	removed write_shell_as_polysolid() [deprecated 6.0]
include/bu.h
	char *bu_brlcad_path() -> const char *bu_brlcad_path() [const]
include/bn.h
	bn_mat_zero() -> MAT_ZERO() [deprecated pre-7.0]
	bn_mat_idn() -> MAT_IDN() [deprecated pre-7.0]
	bn_mat_copy() -> MAT_COPY() [deprecated pre-7.0]
include/compat4.h
	compat4.h -> bu.h && bn.h [deprecated 5.0]
include/raytrace.h
	rt_overlap_quietly() -> struct application.a_logoverlap = rt_silent_logoverlap [deprecated pre 7.0]
include/bu.h
	bu_brlcad_path() -> bu_brlcad_root() || bu_brlcad_data() [deprecated 7.4]
	bu_tcl_brlcad_path() -> bu_tcl_brlcad_root() || bu_tcl_brlcad_data() [deprecated 7.4]
include/fb.h
	fb_log(char *fmt) -> fb_log(const char *fmt) [const]
include/noalias-prag.h
	removed [non-stdc]
include/noalias.h
	removed [non-stdc]
src/librt/wdb_obj.c -> src/librt/db_obj.c
	removed wdb_tree_cmd(), added dgo_tree_cmd() [rename]
mged
	dbbinary -> binary [rename]

7.10.4
------
include/msr.h [pre 7.0]
	msr.h -> bu.h
include/rtlist.h [pre 7.0]
	rtlist.h -> bu.h
include/rtstring.h [pre 7.0]
	rtstring.h -> bu.h
include/shortvect.h [pre 7.0]
include/shortvect-pr.h [pre 7.0]

7.10.2
------
include/raytrace.h
	rt_version -> rt_version() [private]
include/[library].h (several)
	[library]_version -> [library]_version() [private]


***********************************
* MINIMALLY IMPACTING API CHANGES *
***********************************

If a change to an interface has a suitable and completely equivalent
alternative, the change is deemed to be "minimally impacting" and can
be made during any minor release.  Examples of such changes include
renaming an interface, reordering parameters, adding new parameters to
an interface for previously implicit or restricted behavior, and
removing unused parameters.

Basically, the impact can usually be considered minor if a static
regular expression search-and-replace is all that is needed to update.
Included in following are various minimally impacting API changes that
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


6.0 (sed lines)
---
g/struct structparse/s//struct bu_structparse/g
g/struct rt_mapped_file/s//struct bu_mapped_file/g
g/struct rt_list/s//struct bu_list/g
g/struct histogram/s//struct bu_hist/g
g/complex	/s//bn_complex_t	/g
g/GETSTRUCT/s//BU_GETSTRUCT/g
g/GETUNION/s//BU_GETUNION/g
g/nmg_tbl.*(\(.*\), TBL_INIT[ ]*, \(.*\))/s//bu_ptbl_init(\1, 64, "\1")/
g/nmg_tbl.*(\(.*\), TBL_RST[ ]*, \(.*\))/s//bu_ptbl_reset(\1)/
g/nmg_tbl.*(\(.*\), TBL_INS[ ]*, \(.*\))/s//bu_ptbl_ins(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_LOC[ ]*, \(.*\))/s//bu_ptbl_locate(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_ZERO[ ]*, \(.*\))/s//bu_ptbl_zero(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_INS_UNIQUE[ ]*, \(.*\))/s//bu_ptbl_ins_unique(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_RM[ ]*, \(.*\))/s//bu_ptbl_rm(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_CAT[ ]*, \(.*\))/s//bu_ptbl_cat(\1, \2)/
g/nmg_tbl.*(\(.*\), TBL_FREE[ ]*, \(.*\))/s//bu_ptbl_free(\1)/
g/nmg_tbl/s//bu_ptbl/g
g/nmg_ptbl/s//bu_ptbl/g
g/MSR_UNIF/s//BN_UNIF/g
g/MSR_GAUSS/s//BN_GAUSS/g
g/MSR_CK/s//BU_CK/g
g/msr_unif/s//bn_unif/g
g/msr_gauss/s//bn_gauss/g
g/RT_CKMAG/s//BU_CKMAG/g
g/RT_TOL_MAGIC/s//BN_TOL_MAGIC/g
g/RT_CK_TOL/s//BN_CK_TOL/g
g/RT_VECT_ARE_PARALLEL/s//BN_VECT_ARE_PARALLEL/g
g/RT_VECT_ARE_PERP/s//BN_VECT_ARE_PERP/g
g/rt_badmagic/s//bu_badmagic/g
g/RT_SETJUMP/s//BU_SETJUMP/g
g/RT_UNSETJUMP/s//BU_UNSETJUMP/g
g/rt_twopi/s//bn_twopi/g
g/rt_halfpi/s//bn_halfpi/g
g/rt_quarterpi/s//bn_quarterpi/g
g/rt_invpi/s//bn_invpi/g
g/rt_inv2pi/s//bn_inv2pi/g
g/rt_inv4pi/s//bn_inv4pi/g
g/rt_inv255/s//bn_inv255/g
g/rt_degtorad/s//bn_degtorad/g
g/rt_radtodeg/s//bn_radtodeg/g
g/RT_HISTOGRAM_MAGIC/s//BU_HIST_MAGIC/g
g/RT_CK_HISTOGRAM/s//BU_CK_HIST/g
g/RT_HISTOGRAM_TALLY/s//BU_HIST_TALLY/g
g/rt_hist_free/s//bu_hist_free/g
g/rt_hist_init/s//bu_hist_init/g
g/rt_hist_range/s//bu_hist_range/g
g/rt_hist_pr/s//bu_hist_pr/g
g/RT_LIST_HEAD_MAGIC/s//BU_LIST_HEAD_MAGIC/g
g/RT_LIST_NULL/s//BU_LIST_NULL/g
g/RT_LIST_INSERT/s//BU_LIST_INSERT/g
g/RT_LIST_APPEND/s//BU_LIST_APPEND/g
g/RT_LIST_DEQUEUE/s//BU_LIST_DEQUEUE/g
g/RT_LIST_PUSH/s//BU_LIST_PUSH/g
g/RT_LIST_POP/s//BU_LIST_POP/g
g/RT_LIST_INSERT_LIST/s//BU_LIST_INSERT_LIST/g
g/RT_LIST_APPEND_LIST/s//BU_LIST_APPEND_LIST/g
g/RT_LIST_IS_EMPTY/s//BU_LIST_IS_EMPTY/g
g/RT_LIST_NON_EMPTY/s//BU_LIST_NON_EMPTY/g
g/RT_LIST_NON_EMPTY_P/s//BU_LIST_NON_EMPTY_P/g
g/RT_LIST_IS_CLEAR/s//BU_LIST_IS_CLEAR/g
g/RT_LIST_UNINITIALIZED/s//BU_LIST_UNINITIALIZED/g
g/RT_LIST_INIT/s//BU_LIST_INIT/g
g/RT_LIST_MAGIC_SET/s//BU_LIST_MAGIC_SET/g
g/RT_LIST_MAGIC_OK/s//BU_LIST_MAGIC_OK/g
g/RT_LIST_MAGIC_WRONG/s//BU_LIST_MAGIC_WRONG/g
g/RT_LIST_IS_HEAD/s//BU_LIST_IS_HEAD/g
g/RT_LIST_NOT_HEAD/s//BU_LIST_NOT_HEAD/g
g/RT_CK_LIST_HEAD/s//BU_CK_LIST_HEAD/g
g/RT_LIST_NEXT_IS_HEAD/s//BU_LIST_NEXT_IS_HEAD/g
g/RT_LIST_NEXT_NOT_HEAD/s//BU_LIST_NEXT_NOT_HEAD/g
g/RT_LIST_FOR2/s//BU_LIST_FOR2/g
g/RT_LIST_FOR/s//BU_LIST_FOR/g
g/RT_LIST_WHILE/s//BU_LIST_WHILE/g
g/RT_LIST_FIRST_MAGIC/s//BU_LIST_FIRST_MAGIC/g
g/RT_LIST_LAST_MAGIC/s//BU_LIST_LAST_MAGIC/g
g/RT_LIST_PNEXT_PNEXT/s//BU_LIST_PNEXT_PNEXT/g
g/RT_LIST_PNEXT_PLAST/s//BU_LIST_PNEXT_PLAST/g
g/RT_LIST_PLAST_PNEXT/s//BU_LIST_PLAST_PNEXT/g
g/RT_LIST_PLAST_PLAST/s//BU_LIST_PLAST_PLAST/g
g/RT_LIST_PNEXT_CIRC/s//BU_LIST_PNEXT_CIRC/g
g/RT_LIST_PPREV_CIRC/s//BU_LIST_PPREV_CIRC/g
g/RT_LIST_PLAST_CIRC/s//BU_LIST_PPREV_CIRC/g
g/RT_LIST_MAIN_PTR/s//BU_LIST_MAIN_PTR/g
g/RT_LIST_PNEXT/s//BU_LIST_PNEXT/g
g/RT_LIST_PLAST/s//BU_LIST_PLAST/g
g/RT_LIST_LAST/s//BU_LIST_LAST/g
g/RT_LIST_PREV/s//BU_LIST_PREV/g
g/RT_LIST_FIRST/s//BU_LIST_FIRST/g
g/RT_LIST_NEXT/s//BU_LIST_NEXT/g
g/rt_log/s//bu_log/g
g/rt_add_hook/s//bu_add_hook/g
g/rt_delete_hook/s//bu_delete_hook/g
g/rt_putchar/s//bu_putchar/g
g/rt_flog/s//bu_flog/g
g/rt_identify_magic/s//bu_identify_magic/g
g/rt_identity/s//bn_mat_identity/g
g/rt_prmem/s//bu_prmem/g
g/rt_strdup/s//bu_strdup/g
g/rt_malloc/s//bu_malloc/g
g/rt_calloc/s//bu_calloc/g
g/rt_free/s//bu_free/g
g/rt_byte_roundup/s//bu_malloc_len_roundup/g
g/rt_mem_barriercheck/s//bu_mem_barriercheck/g
g/rt_open_mapped_file/s//bu_open_mapped_file/g
g/rt_close_mapped_file/s//bu_close_mapped_file/g
g/RT_CK_MAPPED_FILE/s//BU_CK_MAPPED_FILE/g
g/noise_init/s//bn_noise_init/g
g/noise_perlin/s//bn_noise_perlin/g
g/noise_vec/s//bn_noise_vec/g
g/noise_fbm/s//bn_noise_fbm/g
g/noise_turb/s//bn_noise_turb/g
g/rt_pri_set/s//bu_nice_set/g
g/rt_cpuget/s//bu_cpulimit_get/g
g/rt_cpuset/s//bu_cpulimit_set/g
g/rt_avail_cpus/s//bu_avail_cpus/g
g/rt_parallel/s//bu_parallel/g
g/rt_struct_export/s//bu_struct_export/g
g/rt_struct_import/s//bu_struct_import/g
g/rt_struct_put/s//bu_struct_put/g
g/rt_struct_get/s//bu_struct_get/g
g/rt_gshort/s//bu_gshort/g
g/rt_glong/s//bu_glong/g
g/rt_pshort/s//bu_pshort/g
g/rt_plong/s//bu_plong/g
g/rt_struct_buf/s//bu_struct_wrap_buf/g
g/rt_structparse/s//bu_struct_parse/g
g/rt_structprint/s//bu_struct_print/g
g/rt_vls_structprint/s//bu_vls_struct_print/g
g/offsetofarray/s//bu_offsetofarray/g
g/ FUNC_NULL/s// BU_STRUCTPARSE_FUNC_NULL/g
g/rt_external/s//bu_external/g
g/RT_EXTERNAL_MAGIC/s//BU_EXTERNAL_MAGIC/g
g/RT_EXTERN/s//BU_EXTERN/g
g/RT_INIT_EXTERNAL/s//BU_INIT_EXTERNAL/g
g/RT_CK_EXTERNAL/s//BU_CK_EXTERNAL/g
g/rt_dist_pt3_lseg3/s//bn_dist_pt3_lseg3/g
g/rt_3pts_collinear/s//bn_3pts_collinear/g
g/rt_pt3_pt3_equal/s//bn_pt3_pt3_equal/g
g/rt_dist_pt2_lseg2/s//bn_dist_pt2_lseg2/g
g/rt_isect_lseg3_lseg3/s//bn_isect_lseg3_lseg3/g
g/rt_isect_line3_line3/s//bn_isect_line3_line3/g
g/rt_2line3_colinear/s//bn_2line3_colinear/g
g/rt_isect_pt2_lseg2/s//bn_isect_pt2_lseg2/g
g/rt_isect_line2_lseg2/s//bn_isect_line2_lseg2/g
g/rt_isect_lseg2_lseg2/s//bn_isect_lseg2_lseg2/g
g/rt_isect_line2_line2/s//bn_isect_line2_line2/g
g/rt_dist_line_point/s//bn_dist_line3_pt3/g
g/rt_dist_pt3_pt3/s//bn_dist_pt3_pt3/g
g/rt_3pts_distinct/s//bn_3pts_distinct/g
g/rt_mk_plane_3pts/s//bn_mk_plane_3pts/g
g/rt_mkpoint_3planes/s//bn_mkpoint_3planes/g
g/rt_isect_line3_plane/s//bn_isect_line3_plane/g
g/rt_isect_2planes/s//bn_isect_2planes/g
g/rt_isect_2lines/s//bn_isect_2lines/g
g/rt_isect_line_lseg/s//bn_isect_line_lseg/g
g/rt_dist_line3_pt3/s//bn_dist_line3_pt3/g
g/rt_distsq_line3_pt3/s//bn_distsq_line3_pt3/g
g/rt_dist_line_origin/s//bn_dist_line_origin/g
g/rt_dist_line2_point2/s//bn_dist_line2_point2/g
g/rt_distsq_line2_point2/s//bn_distsq_line2_point2/g
g/rt_area_of_triangle/s//bn_area_of_triangle/g
g/rt_isect_pt_lseg/s//bn_isect_pt_lseg/g
g/rt_dist_pt_lseg/s//bn_dist_pt_lseg/g
g/rt_rotate_bbox/s//bn_rotate_bbox/g
g/rt_rotate_plane/s//bn_rotate_plane/g
g/rt_coplanar/s//bn_coplanar/g
g/rt_angle_measure/s//bn_angle_measure/g
g/rt_dist_pt3_along_line3/s//bn_dist_pt3_along_line3/g
g/rt_dist_pt2_along_line2/s//bn_dist_pt2_along_line2/g
g/rt_between/s//bn_between/g
g/rt_printb/s//bu_printb/g
g/NMG_CK_PTBL/s//BU_CK_PTBL/g
g/NMG_TBL_BASEADDR/s//BU_PTBL_BASEADDR/g
g/NMG_TBL_LASTADDR/s//BU_PTBL_LASTADDR/g
g/NMG_TBL_END/s//BU_PTBL_END/g
g/NMG_TBL_GET/s//BU_PTBL_GET/g
g/RT_RAND_TABSIZE/s//BN_RAND_TABSIZE/g
g/RT_RANDSEED/s//BN_RANDSEED/g
g/RT_RANDOM/s//BN_RANDOM/g
g/rt_rand_table/s//bn_rand_table/g
g/rt_tol/s//bn_tol/g
g/RES_ACQUIRE(/s//bu_semaphore_acquire(/
g/RES_RELEASE(/s//bu_semaphore_release(/
g/&rt_g.res_syscall/s//BU_SEM_SYSCALL/
g/&rt_g.res_worker/s//RT_SEM_WORKER/
g/&rt_g.res_stats/s//RT_SEM_STATS/
g/&rt_g.res_results/s//RT_SEM_RESULTS/
g/&rt_g.res_model/s//RT_SEM_MODEL/
g/RES_INIT(/s/RES_INIT.*;/bu_semaphore_init( RT_SEM_LAST );/p
g/RT_VLS_CHECK/s//BU_CK_VLS/g
g/RT_VLS_ADDR/s//bu_vls_addr/g
g/RT_VLS_INIT/s//bu_vls_init/g
g/rt_vls_init/s//bu_vls_init/g
g/rt_vls_vlsinit/s//bu_vls_vlsinit/g
g/rt_vls_addr/s//bu_vls_addr/g
g/rt_vls_strdup/s//bu_vls_strdup/g
g/rt_vls_strgrab/s//bu_vls_strgrab/g
g/rt_vls_extend/s//bu_vls_extend/g
g/rt_vls_setlen/s//bu_vls_setlen/g
g/rt_vls_strlen/s//bu_vls_strlen/g
g/rt_vls_trunc/s//bu_vls_trunc/g
g/rt_vls_trunc2/s//bu_vls_trunc2/g
g/rt_vls_nibble/s//bu_vls_nibble/g
g/rt_vls_free/s//bu_vls_free/g
g/rt_vls_vlsfree/s//bu_vls_vlsfree/g
g/rt_vls_strcpy/s//bu_vls_strcpy/g
g/rt_vls_strncpy/s//bu_vls_strncpy/g
g/rt_vls_strcat/s//bu_vls_strcat/g
g/rt_vls_strncat/s//bu_vls_strncat/g
g/rt_vls_vlscat/s//bu_vls_vlscat/g
g/rt_vls_vlscatzap/s//bu_vls_vlscatzap/g
g/rt_vls_from_argv/s//bu_vls_from_argv/g
g/rt_vls_fwrite/s//bu_vls_fwrite/g
g/rt_vls_gets/s//bu_vls_gets/g
g/rt_vls_putc/s//bu_vls_putc/g
g/rt_vls_printf/s//bu_vls_printf/g
g/CxCopy/s//bn_cx_copy/g
g/CxNeg/s//bn_cx_neg/g
g/CxReal/s//bn_cx_real/g
g/CxImag/s//bn_cx_imag/g
g/CxAdd/s//bn_cx_add/g
g/CxAmplSq/s//bn_cx_amplsq/g
g/CxAmpl/s//bn_cx_ampl/g
g/CxConj/s//bn_cx_conj/g
g/CxCons/s//bn_cx_cons/g
g/CxPhas/s//bn_cx_phas/g
g/CxScal/s//bn_cx_scal/g
g/CxSub/s//bn_cx_sub/g
g/CxMul/s//bn_cx_mul/g
g/CxMul2/s//bn_cx_mul2/g
g/CxDiv/s//bn_cx_div/g
g/rt_poly_scale/s//bn_poly_scale/g
g/rt_pr_poly/s//bn_pr_poly/g
g/rt_pr_roots/s//bn_pr_roots/g
g/TBL_INIT/s//BU_PTBL_INIT/g
g/TBL_INS/s//BU_PTBL_INS/g
g/TBL_LOC/s//BU_PTBL_LOC/g
g/TBL_FREE/s//BU_PTBL_FREE/g
g/TBL_RST/s//BU_PTBL_RST/g
g/TBL_CAT/s//BU_PTBL_CAT/g
g/TBL_RM/s//BU_PTBL_RM/g
g/TBL_INS_UNIQUE/s//BU_PTBL_INS_UNIQUE/g
g/TBL_ZERO/s//BU_PTBL_ZERO/g
g/rt_pi/s//bn_pi/g
g/matXvec/s//bn_matXvec/g
g/mat_ae/s//bn_mat_ae/g
g/mat_ae_vec/s//bn_ae_vec/g
g/mat_aet_vec/s//bn_aet_vec/g
g/mat_angles/s//bn_mat_angles/g
g/mat_arb_rot/s//bn_mat_arb_rot/g
g/mat_atan2/s//bn_atan2/g
g/mat_copy/s//bn_mat_copy/g
g/mat_degtorad/s//bn_degtorad/g
g/mat_dup/s//bn_mat_dup/g
g/mat_eigen2x2/s//bn_eigen2x2/g
g/mat_fromto/s//bn_mat_fromto/g
g/mat_htov_move/s//bn_htov_move/g
g/mat_identity/s//bn_mat_identity/g
g/mat_idn/s//MAT_IDN/g
g/mat_inv/s//bn_mat_inv/g
g/rt_mat_is_equal/s//bn_mat_is_equal/g
g/mat_is_identity/s//bn_mat_is_identity/g
g/mat_lookat/s//bn_mat_lookat/g
g/mat_mul/s//bn_mat_mul/g
g/mat_mul2/s//bn_mat_mul2/g
g/mat_print/s//bn_mat_print/g
g/mat_radtodeg/s//bn_radtodeg/g
g/mat_scale_about_pt/s//bn_mat_scale_about_pt/g
g/mat_trn/s//bn_mat_trn/g
g/mat_vec_ortho/s//bn_vec_ortho/g
g/mat_vec_perp/s//bn_vec_perp/g
g/mat_vtoh_move/s//bn_vtoh_move/g
g/mat_xform_about_pt/s//bn_mat_xform_about_pt/g
g/mat_xrot/s//bn_mat_xrot/g
g/mat_yrot/s//bn_mat_yrot/g
g/mat_zrot/s//bn_mat_zrot/g
g/mat_zero/s//bn_mat_zero/g
g/rb_tree/s//bu_rb_tree/g
g/RB_TREE_NULL/s//BU_RB_TREE_NULL/g
g/rb_min/s//bu_rb_min/g
g/rb_max/s//bu_rb_max/g
g/rb_pred/s//bu_rb_pred/g
g/rb_succ/s//bu_rb_succ/g
g/rb_create/s//bu_rb_create/g
g/rb_create1/s//bu_rb_create1/g
g/rb_delete/s//bu_rb_delete/g
g/rb_diagnose_tree/s//bu_rb_diagnose_tree/g
g/rb_extreme/s//bu_rb_extreme/g
g/rb_insert/s//bu_rb_insert/g
g/rb_neighbor/s//bu_rb_neighbor/g
g/rb_search/s//bu_rb_search/g
g/rb_search1/s//bu_rb_search1/g
g/rb_summarize_tree/s//bu_rb_summarize_tree/g
g/rb_walk/s//bu_rb_walk/g
g/rb_walk1/s//bu_rb_walk1/g
g/RT_VLIST_CHUNK/s//BN_VLIST_CHUNK/g
g/rt_vlist/s//bn_vlist/g
g/RT_VLIST_NULL/s//BN_VLIST_NULL/g
g/RT_VLIST_MAGIC/s//BN_VLIST_MAGIC/g
g/RT_CK_VLIST/s//BN_CK_VLIST/g
g/RT_VLIST_LINE_MOVE/s//BN_VLIST_LINE_MOVE/g
g/RT_VLIST_LINE_DRAW/s//BN_VLIST_LINE_DRAW/g
g/RT_VLIST_POLY_START/s//BN_VLIST_POLY_START/g
g/RT_VLIST_POLY_MOVE/s//BN_VLIST_POLY_MOVE/g
g/RT_VLIST_POLY_DRAW/s//BN_VLIST_POLY_DRAW/g
g/RT_VLIST_POLY_END/s//BN_VLIST_POLY_END/g
g/RT_VLIST_POLY_VERTNORM/s//BN_VLIST_POLY_VERTNORM/g
g/rt_vlblock/s//bn_vlblock/g
g/RT_VLBLOCK_MAGIC/s//BN_VLBLOCK_MAGIC/g
g/RT_CK_VLBLOCK/s//BN_CK_VLBLOCK/g
g/BU_BU_/s//BU_/g
g/bu_bu_/s//bu_/g
g/bn_bn_/s//bn_/g
g/bn_pipe/s//rt_pipe/g
	major API overhaul [6.0]
7.14
----
s/rt_db_free_internal\(([^,]+),[^\)]*\)/rt_db_free_internal(\1)/g
	struct resource pointer parameter removed [7.14]

7.16
----
s/rt_ptalloc\(\);/(struct rt_pt_node *)bu_malloc(sizeof(struct rt_pt_node), "rt_pt_node");/g
	rt_ptalloc() removed [7.16]

7.18
----
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_INIT([^\)]*)\)/bu_ptbl_init(\1, 64, "init")/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_RST([^\)]*)\)/bu_ptbl_reset(\1)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_INS([^\)]*)\)/bu_ptbl_ins(\1\2)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_LOC([^\)]*)\)/bu_ptbl_locate(\1\2)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_ZERO([^\)]*)\)/bu_ptbl_zero(\1\2/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_INS_UNIQUE([^\)]*)\)/bu_ptbl_ins_unique(\1\2)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_RM([^\)]*)\)/bu_ptbl_rm(\1\2)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_CAT([^\)]*)\)/bu_ptbl_cat(\1\2)/g
s/bu_ptbl\(([^,]*),[[:space:]]*BU_PTBL_FREE([^\)]*)\)/bu_ptbl_free(\1)/g
	bu_ptbl() removed [7.18]

s/nmg_struct_counts\(/nmg_pr_m_struct_counts(/g
	nmg_struct_counts() renamed to nmg_pr_m_struct_counts() [7.18]

s/bu_vlb_getBuffer\(/bu_vlb_addr(/g
	bu_vlb_getBuffer() renamed to bu_vlb_addr() [7.18]

s/bu_vlb_getBufferLength\(/bu_vlb_buflen(/g
	bu_vlb_getBufferLength() renamed to bu_vlb_buflen() [7.18]

s/V2APPROXEQUAL\(/V2NEAR_EQUAL(/g
	V2APPROXEQUAL() renamed to V2NEAR_EQUAL() [7.18]

s/VAPPROXEQUAL\(/VNEAR_EQUAL(/g
	VAPPROXEQUAL() renamed to VNEAR_EQUAL() [7.18]

s/db_get_version\(/db_version(/g
	db_get_version() renamed to db_version() [7.18]

s/db_get_directory_size\(/db_directory_size(/g
	db_get_directory_size() renamed to db_directory_size() [7.18]

s/db_get_directory\(/db_alloc_directory_block(/g
	db_get_directory() renamed to db_alloc_directory_block() [7.18]

s/rt_get_seg\(/rt_alloc_sed_block(/g
	rt_get_seg() renamed to rt_alloc_seg_block() [7.18]

s/db_shader_mat\(/rt_shader_mat(/g
	db_shader_mat() renamed to rt_shader_mat() [7.18]

s/SMALL([^_])/SMALL_FAST\1/g
	SMALL renamed to SMALL_FASTF [7.18]

7.20
----
s/spm_([^\)]*)/bn_spm_\1/g
	spm functions and types renamed to bn_spm [7.20]

s/RT_CK_SPM/BN_CK_SPM_MAP/g
	RT_CK_SPM macro renamed to BN_CK_SPM MAP [7.20]

s/SPM_MAGIC/BN_SPM_MAGIC/g
	SPM_MAGIC renamed to BN_SPM_MAGIC [7.20]

s/SPM_NULL/BN_SPM_MAP_NULL/g
	SPM_NULL renamed to BN_SPM_MAP_NULL [7.20]

s/BU_EXTERN[[:space:]]*\([[:space:]]*([^,]*?)[[:space:]]*,[[:space:]]*\([[:space:]]*([^)]*)[[:space:]]*\)[[:space:]]*\)/extern \1(\2)/g
	BU_EXTERN() no longer necessary due to C89 minimum, use extern [7.20]

s/[[:space:]]*BU_ARGS[[:space:]]*\([[:space:]]*([^)]*[[:space:]]*)[[:space:]]*\)/\1/g
	BU_ARGS() no longer necessary due to C89 minimum, list args [7.20]

s/BU_LIST_UNINITIALIZED/!BU_LIST_IS_INITIALIZED/g
	BU_LIST_IS_INITIALIZED() removed for consistency [7.20]

s/BU_INIT_EXTERNAL/BU_EXTERNAL_INIT/g
	renamed for API consistency [7.20]

s/RT_CK_DBTR/RT_CK_DB_TRAVERSE/g
s/RT_DBTR_MAGIC/RT_DB_TRAVERSE_MAGIC/g
	renamed for API consistency [7.20]

s/RT_INIT_([A-Z_]*)/RT_\1_INIT/g
	renamed all RT_INIT_[type] macros to RT_[type]_INIT for API consistency [7.20]

s/BU_LIST_MAGIC_OK/BU_LIST_MAGIC_EQUAL/g
s/BU_LIST_MAGIC_WRONG/!BU_LIST_MAGIC_EQUAL/g
	renamed and consolidated to be consistent with libbn [7.20]

s/nmg_moveeu/nmg_je/g
	function has been renamed

7.22
----

s/rt_dist_pt3_line3/bn_dist_pt3_line3/g
s/rt_dist_line3_line3/bn_dist_line3_line3/g
s/rt_dist_line3_lseg3/bn_dist_line3_lseg3/g
	functions moved from librt to libbn [7.21]
s/bu_tcl_setup/Bu_Init/g
	removed bu_tcl_setup() in favor of Bu_Init() [7.21]
s/bu_tcl_([^(]*)\([^,]*?[[:space:]]*,[^,]*?[[:space:]]*,(.*)/bu_\1(\2/g
	removed all bu_tcl_*() functions, leaving off interp and using native bu function [7.21]
s/bu_badmagic_tcl\([^,]*?[[:space:]]*,(.*)/bu_badmagic(\1/g
	removed bu_badmagic_tcl() in favor of bu_badmagic() [7.21]
s/(.*)_CK(.*)_TCL\([^,]*?[[:space:]]*,(.*)/\1_CK\2(\3/g
	removed all *_CK*_TCL() macros (e.g., BU_CKMAG_TCL, RT_CK_DBI_TCL, etc.) in favor of non-TCL macros [7.21]
s/bu_image/icv_image/g
	moved bu_image* functions to libicv as icv_image* [7.21]
s/BU_IMAGE/ICV_IMAGE/g
	moved BU_IMAGE* macros to icv.h as ICV_IMAGE* [7.21]
s/bu_cmd\(([^,]*?),[[:space:]]*([^,]*?),[[:space:]]*([^,]*?),[[:space:]]*([^,)]*?),[[:space:]]*([^)]*?)\)/bu_cmd(\4, \2, \3, \5, \1, NULL)/g
	inputs then outputs.  swapped bu_cmd's 4th parameter to 1st, 1st to 5th, and added a new return value hook last. [7.21]
s/V3(.*)_TOL\(([^,]*,)([^,]*,)([^,]*,)([^)]*)\)/V3\1_TOL(\1\2\3(\4)->dist)/g
	V3RPP_OVERLAP_TOL(), V3PT_IN_RPP_TOL(), and V3PT_OUT_RPP_TOL() tol parameter changed to value [7.21]
s/BU_GETSTRUCT\([[:space:]]*([^,)]+,)[[:space:]]*([^)]+)[[:space:]]*\)/BU_GET(\1 struct \2)/g
	BU_GETSTRUCT(ptr, struct_type) changed to BU_GET(ptr, struct struct_t) [7.21]
s/BU_GETUNION\([[:space:]]*([^,)]+,)[[:space:]]*([^)]+)[[:space:]]*\)/BU_GET(\1 union \2)/g
s/BU_GETTYPE\([[:space:]]*([^,)]+,)[[:space:]]*([^)]+)[[:space:]]*\)/BU_GET(\1 \2)/g
	BU_GETUNION() and BU_GETTYPE() macros changed to BU_GET() [7.21]
s/CMD_NULL/BU_CMD_NULL/g
s/CMDHIST/BU_CMDHIST/g
	prefix the cmd.h defines with BU_ since they are part of libbu [7.21]
s/bu_shader_to_tcl_list/bu_shader_to_list/g
	renamed as it applies to any list in {} form, tcl or otherwise [7.21]
s/bu_(add|delete|call)_hook/bu_hook_\1/g
	renamed hook functions to be consistent with other libbu API [7.21]
s/bu_file_exists\(([^)]*)\)/bu_file_exists(\1, NULL)/g
	new file descriptor parameter added [7.21]
s/bu_list_path\(([^,]*),([^,]*),[[:space:]]([^)]*)\)/bu_dir_list(\1,\2, &(\3))/g
s/bu_count_path(.*)\);/bu_dir_list\1, NULL);/g
	made bu_dir_list() return the number of entries [7.21]
s/bu_strcmpm\((.*),([^,]*)\)/bu_strcmp(\1)/g
	no use for label parameter, convert to bu_strcmp() [7.21]
        bu_set_realtime() [deprecated 7.22]

7.24
----
s/bu_set_realtime([[:space:]]);//g
        didn't do anything [7.23]
s/.*bu_cpulimit_[sg]et([[:space:]]);//g
        didn't do anything [7.23]
