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

Reply via email to