Revision: 57139
http://sourceforge.net/p/brlcad/code/57139
Author: tbrowder2
Date: 2013-08-26 11:15:21 +0000 (Mon, 26 Aug 2013)
Log Message:
-----------
refactor some dup code (more pearls remain)
Modified Paths:
--------------
brlcad/trunk/src/libged/attr.c
Modified: brlcad/trunk/src/libged/attr.c
===================================================================
--- brlcad/trunk/src/libged/attr.c 2013-08-26 10:40:30 UTC (rev 57138)
+++ brlcad/trunk/src/libged/attr.c 2013-08-26 11:15:21 UTC (rev 57139)
@@ -61,9 +61,37 @@
((struct bu_attribute_value_pair *)p2)->value);
}
-void
-_ged_pretty_print()
+int
+_ged_pretty_print(struct ged *gedp, struct directory *dp, const char *name)
{
+ if (dp->d_flags & RT_DIR_COMB) {
+ if (dp->d_flags & RT_DIR_REGION) {
+ bu_vls_printf(gedp->ged_result_str, "%s region:\n", name);
+ } else {
+ bu_vls_printf(gedp->ged_result_str, "%s combination:\n", name);
+ }
+ } else if (dp->d_flags & RT_DIR_SOLID) {
+ struct rt_db_internal intern;
+ GED_DB_GET_INTERNAL(gedp, &intern, dp, (fastf_t *)NULL, &rt_uniresource,
GED_ERROR);
+ bu_vls_printf(gedp->ged_result_str, "%s %s:\n", name,
intern.idb_meth->ft_label);
+ rt_db_free_internal(&intern);
+
+ } else {
+ switch (dp->d_major_type) {
+ case DB5_MAJORTYPE_ATTRIBUTE_ONLY:
+ bu_vls_printf(gedp->ged_result_str, "%s global:\n", name);
+ break;
+ case DB5_MAJORTYPE_BINARY_MIME:
+ bu_vls_printf(gedp->ged_result_str, "%s binary(mime):\n", name);
+ break;
+ case DB5_MAJORTYPE_BINARY_UNIF:
+ bu_vls_printf(gedp->ged_result_str, "%s %s:\n", name,
+ binu_types[dp->d_minor_type]);
+ break;
+ }
+ }
+
+ return GED_OK;
}
int
@@ -122,33 +150,9 @@
int max_attr_name_len = 0;
/* pretty print */
- if (dp->d_flags & RT_DIR_COMB) {
- if (dp->d_flags & RT_DIR_REGION) {
- bu_vls_printf(gedp->ged_result_str, "%s region:\n", argv[2]);
- } else {
- bu_vls_printf(gedp->ged_result_str, "%s combination:\n",
argv[2]);
- }
- } else if (dp->d_flags & RT_DIR_SOLID) {
- struct rt_db_internal intern;
- GED_DB_GET_INTERNAL(gedp, &intern, dp, (fastf_t *)NULL,
&rt_uniresource, GED_ERROR);
- bu_vls_printf(gedp->ged_result_str, "%s %s:\n", argv[2],
intern.idb_meth->ft_label);
- rt_db_free_internal(&intern);
+ if ((_ged_pretty_print(gedp, dp, argv[2])) != GED_OK)
+ return GED_ERROR;
- } else {
- switch (dp->d_major_type) {
- case DB5_MAJORTYPE_ATTRIBUTE_ONLY:
- bu_vls_printf(gedp->ged_result_str, "%s global:\n",
argv[2]);
- break;
- case DB5_MAJORTYPE_BINARY_MIME:
- bu_vls_printf(gedp->ged_result_str, "%s binary(mime):\n",
argv[2]);
- break;
- case DB5_MAJORTYPE_BINARY_UNIF:
- bu_vls_printf(gedp->ged_result_str, "%s %s:\n", argv[2],
- binu_types[dp->d_minor_type]);
- break;
- }
- }
-
for (i = 0, avpp = avs.avp; i < avs.count; i++, avpp++) {
int len = (int)strlen(avpp->name);
if (len > max_attr_name_len) {
@@ -300,32 +304,9 @@
int tabs1 = 0;
/* pretty print */
- if (dp->d_flags & RT_DIR_COMB) {
- if (dp->d_flags & RT_DIR_REGION) {
- bu_vls_printf(gedp->ged_result_str, "%s region:\n", argv[2]);
- } else {
- bu_vls_printf(gedp->ged_result_str, "%s combination:\n",
argv[2]);
- }
- } else if (dp->d_flags & RT_DIR_SOLID) {
- struct rt_db_internal intern;
- GED_DB_GET_INTERNAL(gedp, &intern, dp, (fastf_t *)NULL,
&rt_uniresource, GED_ERROR);
- bu_vls_printf(gedp->ged_result_str, "%s %s:\n", argv[2],
intern.idb_meth->ft_label);
- rt_db_free_internal(&intern);
+ if ((_ged_pretty_print(gedp, dp, argv[2])) != GED_OK)
+ return GED_ERROR;
- } else {
- switch (dp->d_major_type) {
- case DB5_MAJORTYPE_ATTRIBUTE_ONLY:
- bu_vls_printf(gedp->ged_result_str, "%s global:\n",
argv[2]);
- break;
- case DB5_MAJORTYPE_BINARY_MIME:
- bu_vls_printf(gedp->ged_result_str, "%s binary(mime):\n",
argv[2]);
- break;
- case DB5_MAJORTYPE_BINARY_UNIF:
- bu_vls_printf(gedp->ged_result_str, "%s %s:\n", argv[2],
- binu_types[dp->d_minor_type]);
- break;
- }
- }
if (argc == 3) {
/* just display all attributes */
for (i = 0, avpp = avs.avp; i < avs.count; i++, avpp++) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits