Revision: 76232
          http://sourceforge.net/p/brlcad/code/76232
Author:   brlcad
Date:     2020-06-27 06:57:31 +0000 (Sat, 27 Jun 2020)
Log Message:
-----------
provide a macro for getting the number of path/dp entries and protect against 
crashing if there aren't any (e.g. '/') in DB_FULL_PATH_CUR_DIR.  these macros 
need some help.

Modified Paths:
--------------
    brlcad/trunk/include/rt/db_fullpath.h

Modified: brlcad/trunk/include/rt/db_fullpath.h
===================================================================
--- brlcad/trunk/include/rt/db_fullpath.h       2020-06-27 05:59:39 UTC (rev 
76231)
+++ brlcad/trunk/include/rt/db_fullpath.h       2020-06-27 06:57:31 UTC (rev 
76232)
@@ -58,19 +58,23 @@
     struct directory **        fp_names;       /**< @brief array of dir 
pointers */
     int                      * fp_bool;        /**< @brief array of boolean 
flags */
 };
+#define RT_CK_FULL_PATH(_p) BU_CKMAG(_p, DB_FULL_PATH_MAGIC, "db_full_path")
+
+#define DB_FULL_PATH_CUR_DIR(_pp) (((_pp)->fp_len > 0) ? 
(_pp)->fp_names[(_pp)->fp_len-1] : NULL)
+#define DB_FULL_PATH_CUR_BOOL(_pp) ((_pp)->fp_bool[(_pp)->fp_len-1])
+#define DB_FULL_PATH_SET_CUR_BOOL(_pp, _i) ((_pp)->fp_bool[(_pp)->fp_len-1]) = 
_i
+
+#define DB_FULL_PATH_LEN(_pp) ((_pp)->fp_len)
 #define DB_FULL_PATH_POP(_pp) ((_pp)->fp_len > 0) ? (_pp)->fp_len-- : 
(_pp)->fp_len
 
-#define DB_FULL_PATH_CUR_DIR(_pp) ((_pp)->fp_names[(_pp)->fp_len-1])
-#define DB_FULL_PATH_CUR_BOOL(_pp) ((_pp)->fp_bool[(_pp)->fp_len-1])
-#define DB_FULL_PATH_SET_CUR_BOOL(_pp, _i) ((_pp)->fp_bool[(_pp)->fp_len-1] = 
_i)
-#define DB_FULL_PATH_ROOT_DIR(_pp) ((_pp)->fp_names[0])
 #define DB_FULL_PATH_GET(_pp, _i) ((_pp)->fp_names[(_i)])
 #define DB_FULL_PATH_GET_BOOL(_pp, _i) ((_pp)->fp_bool[(_i)])
 #define DB_FULL_PATH_SET_BOOL(_pp, _i, _j) ((_pp)->fp_bool[(_i)] = _j)
 
-#define RT_CK_FULL_PATH(_p) BU_CKMAG(_p, DB_FULL_PATH_MAGIC, "db_full_path")
+#define DB_FULL_PATH_ROOT_DIR(_pp) ((_pp)->fp_names[0])
 
 
+
 /* db_fullpath.c */
 RT_EXPORT extern void db_full_path_init(struct db_full_path *pathp);
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to