Thread: [brlcad-commits] SF.net SVN: brlcad:[32495] brlcad/trunk/include/bu.h
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <ma...@us...> - 2008-08-20 13:54:44
|
Revision: 32495 http://brlcad.svn.sourceforge.net/brlcad/?rev=32495&view=rev Author: mafm Date: 2008-08-20 13:54:53 +0000 (Wed, 20 Aug 2008) Log Message: ----------- Comment typo Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-08-20 12:22:32 UTC (rev 32494) +++ brlcad/trunk/include/bu.h 2008-08-20 13:54:53 UTC (rev 32495) @@ -27,7 +27,7 @@ * This library provides several layers of low-level utility routines, * providing features that make coding much easier. * Parallel processing support: threads, sempahores, parallel-malloc. - * Consolodated logging support: bu_log(), bu_exit(), and bu_bomb(). + * Consolidated logging support: bu_log(), bu_exit(), and bu_bomb(). * * The intention is that these routines are general extensions to * the data types offered by the C language itself, and to the This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-09-10 20:05:43
|
Revision: 32626 http://brlcad.svn.sourceforge.net/brlcad/?rev=32626&view=rev Author: brlcad Date: 2008-09-10 20:05:53 +0000 (Wed, 10 Sep 2008) Log Message: ----------- document the new argv functions testing out the migration of API documentation from source files to the public header files. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-09-10 20:04:49 UTC (rev 32625) +++ brlcad/trunk/include/bu.h 2008-09-10 20:05:53 UTC (rev 32626) @@ -2977,27 +2977,56 @@ /* fchmod.c */ BU_EXPORT BU_EXTERN(int bu_fchmod, - (FILE *fp, - unsigned long pmode)); + (FILE *fp, unsigned long pmode)); /* argv.c */ + +/** + * Deallocate all strings in a given argv array and the array itself + * + * This call presumes the array has been allocated with bu_dup_argv() + * or bu_argv_from_path(). + */ BU_EXPORT BU_EXTERN(void bu_free_argv, - (int argc, - char *argv[])); -BU_EXPORT BU_EXTERN(char ** bu_dup_argv, - (int argc, - const char *argv[])); -BU_EXPORT BU_EXTERN(char ** bu_dupinsert_argv, - (int insert, - int insertArgc, - const char *insertArgv[], - int argc, - const char *argv[])); -BU_EXPORT BU_EXTERN(char ** bu_argv_from_path, - (const char *path, - int *ac)); + (int argc, char *argv[])); +/** + * Dynamically duplicate an argv array and all elements in the array + * + * Duplicate an argv array by duplicating all strings and the array + * itself. It is the caller's responsibility to free the array + * returned including all elements in the array by calling bu_free() + * or bu_free_argv(). + */ +BU_EXPORT BU_EXTERN(char **bu_dup_argv, + (int argc, const char *argv[])); +/** + * Combine two argv arrays into one new (duplicated) argv array. + * + * If insert is negative, the insertArgv array elements will be + * prepended into the new argv array. If insert is greater than or + * equal to argc, the insertArgv array elements will be appended after + * all duplicated elementes in the specified argv array. Otherwise, + * the insert argument is the position where the insertArgv array + * elements will be merged with the specified argv array. + */ +BU_EXPORT BU_EXTERN(char **bu_dupinsert_argv, + (int insert, int insertArgc, const char *insertArgv[], int argc, const char *argv[])); + +/** + * Generate an argv array from a path + * + * Given a path string, separate the path elements into a dynamically + * allocated argv array with the path separators removed. It is the + * caller's responsibility to free the array that is returned as well + * as all elements in the array using bu_free_argv() or manually + * calling bu_free(). + */ +BU_EXPORT BU_EXTERN(char **bu_argv_from_path, + (const char *path, int *ac)); + + __END_DECLS #endif /* __BU_H__ */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-10-12 20:01:10
|
Revision: 32913 http://brlcad.svn.sourceforge.net/brlcad/?rev=32913&view=rev Author: brlcad Date: 2008-10-12 20:01:02 +0000 (Sun, 12 Oct 2008) Log Message: ----------- ws Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-10-12 18:54:45 UTC (rev 32912) +++ brlcad/trunk/include/bu.h 2008-10-12 20:01:02 UTC (rev 32913) @@ -22,22 +22,23 @@ /** @file bu.h * * @brief - * Header file for the BRL-CAD Utility Library, LIBBU. + * Header file for the BRL-CAD Utility Library, LIBBU. * - * This library provides several layers of low-level utility routines, - * providing features that make coding much easier. - * Parallel processing support: threads, sempahores, parallel-malloc. - * Consolidated logging support: bu_log(), bu_exit(), and bu_bomb(). + * This library provides several layers of low-level utility routines, + * providing features that make coding much easier. * - * The intention is that these routines are general extensions to - * the data types offered by the C language itself, and to the - * basic C runtime support provided by the system LIBC. + * Parallel processing support: threads, sempahores, parallel-malloc. + * Consolidated logging support: bu_log(), bu_exit(), and bu_bomb(). * - * All of the data types provided by this library are defined in bu.h; - * none of the routines in this library will depend on data types defined - * in other BRL-CAD header files, such as vmath.h. - * Look for those routines in LIBBN. + * The intention is that these routines are general extensions to the + * data types offered by the C language itself, and to the basic C + * runtime support provided by the system LIBC. * + * All of the data types provided by this library are defined in bu.h; + * none of the routines in this library will depend on data types + * defined in other BRL-CAD header files, such as vmath.h. Look for + * those routines in LIBBN. + * */ #ifndef __BU_H__ #define __BU_H__ @@ -68,8 +69,9 @@ #define BU_CASEFOLD 0x10 -/** @def BU_DIR_SEPARATOR - * define BU_DIR_SEPARATOR to the directory separator character +/** + * @def BU_DIR_SEPARATOR + * the default directory separator character */ #ifdef DIR_SEPARATOR # define BU_DIR_SEPARATOR DIR_SEPARATOR @@ -86,8 +88,8 @@ #endif /* DIR_SEPARATOR */ /** - * Maximum length of a filesystem path. Typically defined in a system file - * but if it isn't set, we create it. + * Maximum length of a filesystem path. Typically defined in a system + * file but if it isn't set, we create it. */ #ifndef MAXPATHLEN # ifdef _MAX_PATH @@ -111,11 +113,11 @@ #endif /* PATH_SEPARATOR */ -/** @def BU_FLSTR +/** + * @def BU_FLSTR * - * Macro for getting a concatenated string of the current - * file and line number. Produces something of the form: - * "filename.c"":""1234" + * Macro for getting a concatenated string of the current file and + * line number. Produces something of the form: "filename.c"":""1234" */ #define bu_cpp_str(s) # s #define bu_cpp_xstr(s) bu_cpp_str(s) @@ -124,11 +126,10 @@ #define BU_FLSTR __FILE__ ":" bu_cpp_xstr(__LINE__) /* - * Macros for providing function prototypes, regardless of whether - * the compiler understands them or not. - * It is vital that the argument list given for "args" be enclosed - * in parens. - * The setting of USE_PROTOTYPES is determined during configure + * Macros for providing function prototypes, regardless of whether + * the compiler understands them or not. It is vital that the + * argument list given for "args" be enclosed in parens. The setting + * of USE_PROTOTYPES is determined during configure */ #if __STDC__ || USE_PROTOTYPES # define BU_EXTERN(type_and_name, args) extern type_and_name args @@ -227,19 +228,22 @@ * B U _ A S S E R T * * @def BU_ASSERT(eqn) - * Quick and easy macros to generate an informative error message and - * abort execution if the specified condition does not hold true. + * Quick and easy macros to generate an informative error message and + * abort execution if the specified condition does not hold true. + * * @def BU_ASSERT_PTR(eqn) - * Quick and easy macros to generate an informative error message and - * abort execution if the specified condition does not hold true. + * Quick and easy macros to generate an informative error message and + * abort execution if the specified condition does not hold true. + * * @def BU_ASSERT_LONG(eqn) - * Quick and easy macros to generate an informative error message and - * abort execution if the specified condition does not hold true. + * Quick and easy macros to generate an informative error message and + * abort execution if the specified condition does not hold true. + * * @def BU_ASSERT_DOUBLE(eqn) - * Quick and easy macros to generate an informative error message and - * abort execution if the specified condition does not hold true. + * Quick and easy macros to generate an informative error message and + * abort execution if the specified condition does not hold true. * - * Example: BU_ASSERT_LONG( j+7, <, 42 ); + * Example: BU_ASSERT_LONG(j+7, <, 42); */ #ifdef NO_BOMBING_MACROS # define BU_ASSERT(_equation) @@ -325,11 +329,10 @@ /** @addtogroup hton */ /** @{ */ /** - * Sizes of "network" format data. - * We use the same convention as the TCP/IP specification, - * namely, big-Endian, IEEE format, twos compliment. - * This is the BRL-CAD external data representation (XDR). - * See also the support routines in libbu/xdr.c + * Sizes of "network" format data. We use the same convention as the + * TCP/IP specification, namely, big-Endian, IEEE format, twos + * compliment. This is the BRL-CAD external data representation + * (XDR). See also the support routines in libbu/xdr.c * */ #define SIZEOF_NETWORK_SHORT 2 /* htons(), bu_gshort(), bu_pshort() */ @@ -951,22 +954,21 @@ typedef long bitv_t; /** - * * @brief - * Bit vector data structure. + * Bit vector data structure. * - * bu_bitv uses a little-endian encoding, placing bit 0 on the - * right side of the 0th word. - * This is done only because left-shifting a 1 can be done in an - * efficient word-length-independent manner; - * going the other way would require a compile-time constant with - * only the sign bit set, and an unsigned right shift, which some - * machines don't have in hardware, or an extra subtraction. + * bu_bitv uses a little-endian encoding, placing bit 0 on the right + * side of the 0th word. * - * Application code should *never* peak at the bit-buffer; use the macros. + * This is done only because left-shifting a 1 can be done in an + * efficient word-length-independent manner; going the other way would + * require a compile-time constant with only the sign bit set, and an + * unsigned right shift, which some machines don't have in hardware, + * or an extra subtraction. * - * The external hex form is most signigicant byte first (bit 0 is at the right). - * Note that MUVES does it differently + * Application code should *never* peak at the bit-buffer; use the + * macros. The external hex form is most signigicant byte first (bit + * 0 is at the right). Note that MUVES does it differently. */ struct bu_bitv { struct bu_list l; /**< @brief linked list for caller's use */ @@ -993,8 +995,8 @@ #define BU_BITV_MASK ((1<<BU_BITV_SHIFT)-1) /* - * Bit-string manipulators for arbitrarily long bit strings - * stored as an array of bitv_t's. + * Bit-string manipulators for arbitrarily long bit strings stored as + * an array of bitv_t's. */ #define BU_BITS2BYTES(_nb) (BU_BITS2WORDS(_nb)*sizeof(bitv_t)) #define BU_BITS2WORDS(_nb) (((_nb)+BU_BITV_MASK)>>BU_BITV_SHIFT) @@ -1054,11 +1056,12 @@ /** - * Macros to efficiently find all the ONE bits in a bit vector. - * Counts words down, counts bits in words going up, for speed & portability. - * It does not matter if the shift causes the sign bit to smear to the right. + * Macros to efficiently find all the ONE bits in a bit vector. + * Counts words down, counts bits in words going up, for speed & + * portability. It does not matter if the shift causes the sign bit + * to smear to the right. * - * @par Example: + * @par Example: @code BU_BITV_LOOP_START(bv) { fiddle(BU_BITV_LOOP_INDEX); @@ -1078,8 +1081,8 @@ if ( !(_val & 1) ) continue; /** - * This macro is valid only between a BU_BITV_LOOP_START/LOOP_END pair, - * and gives the bit number of the current iteration. + * This macro is valid only between a BU_BITV_LOOP_START/LOOP_END + * pair, and gives the bit number of the current iteration. */ #define BU_BITV_LOOP_INDEX ((_wd << BU_BITV_SHIFT) | _b) @@ -1095,7 +1098,7 @@ /** @addtogroup bu_hist */ /** @{ */ /** - * B U _ H I S T + * B U _ H I S T * * @struct bu_hist bu.h * @brief histogram support @@ -1139,7 +1142,7 @@ * @addtogroup ptbl * @struct bu_ptbl * @brief - * Support for generalized "pointer tables". + * Support for generalized "pointer tables". */ /** @{ */ @@ -1161,7 +1164,7 @@ #define BU_PTBL_INS_UNIQUE 7 /**< @brief insert item into table, if not present */ #define BU_PTBL_ZERO 8 /**< @brief replace all occurrences of an item by 0 */ /* - * For those routines that have to "peek" into the ptbl a little bit. + * For those routines that have to "peek" into the ptbl a little bit. */ #define BU_PTBL_BASEADDR(ptbl) ((ptbl)->buffer) #define BU_PTBL_LASTADDR(ptbl) ((ptbl)->buffer + (ptbl)->end - 1) @@ -1173,14 +1176,14 @@ #define BU_PTBL_CLEAR_I(_ptbl, _i) ((_ptbl)->buffer[(_i)] = (long *)0) /** - * A handy way to visit all the elements of the table is: + * A handy way to visit all the elements of the table is: * * struct edgeuse **eup; * for ( eup = (struct edgeuse **)BU_PTBL_LASTADDR(&eutab); * eup >= (struct edgeuse **)BU_PTBL_BASEADDR(&eutab); eup-- ) { * NMG_CK_EDGEUSE(*eup); * } - * or + * or * for ( BU_PTBL_FOR( eup, (struct edgeuse **), &eutab ) ) { * NMG_CK_EDGEUSE(*eup); * } @@ -1193,39 +1196,43 @@ /** @} */ /*----------------------------------------------------------------------*/ -/* mappedfile.c */ -/** - * B U _ M A P P E D _ F I L E +/* mappedfile.c * @addtogroup mf * @struct bu_mapped_file bu.h + * @{ + */ + +/** + * B U _ M A P P E D _ F I L E + * * @brief - * Structure for opening a mapped file. - * Each file is opened and mapped only once (per application, - * as tagged by the string in "appl" field). - * Subsequent opens require an exact match on both strings. + * Structure for opening a mapped file. * - * Before allocating apbuf and performing data conversion into it, - * openers should check to see if the file has already been opened and - * converted previously. + * Each file is opened and mapped only once (per application, as + * tagged by the string in "appl" field). Subsequent opens require an + * exact match on both strings. * - * When used in RT, the mapped files are not closed at the end of a frame, - * so that subsequent frames may take advantage of the large data files - * having already been read and converted. - * Examples include EBMs, texture maps, and height fields. + * Before allocating apbuf and performing data conversion into it, + * openers should check to see if the file has already been opened and + * converted previously. * - * For appl == "db_i", file is a ".g" database & apbuf is (struct db_i *). + * When used in RT, the mapped files are not closed at the end of a + * frame, so that subsequent frames may take advantage of the large + * data files having already been read and converted. Examples + * include EBMs, texture maps, and height fields. + * + * For appl == "db_i", file is a ".g" database & apbuf is (struct db_i *). */ -/** @{ */ struct bu_mapped_file { struct bu_list l; - char *name; /**< @brief bu_strdup() of file name */ + char *name; /**< @brief bu_strdup() of file name */ genptr_t buf; /**< @brief In-memory copy of file (may be mmapped) */ - long buflen; /**< @brief # bytes in 'buf' */ + long buflen; /**< @brief # bytes in 'buf' */ int is_mapped; /**< @brief 1=mmap() used, 0=bu_malloc/fread */ - char *appl; /**< @brief bu_strdup() of tag for application using 'apbuf' */ + char *appl; /**< @brief bu_strdup() of tag for application using 'apbuf' */ genptr_t apbuf; /**< @brief opt: application-specific buffer */ - long apbuflen; /**< @brief opt: application-specific buflen */ - long modtime; /**< @brief date stamp, in case file is modified */ + long apbuflen; /**< @brief opt: application-specific buflen */ + long modtime; /**< @brief date stamp, in case file is modified */ int uses; /**< @brief # ptrs to this struct handed out */ int dont_restat; /**< @brief 1=on subsequent opens, don't re-stat() */ }; @@ -1258,10 +1265,10 @@ */ /** - * B U _ A T T R I B U T E _ V A L U E _ P A I R + * B U _ A T T R I B U T E _ V A L U E _ P A I R * - * These strings may or may not be individually allocated, - * it depends on usage. + * These strings may or may not be individually allocated, it depends + * on usage. */ struct bu_attribute_value_pair { const char *name; /**< @brief attribute name */ @@ -1269,20 +1276,18 @@ }; /** - * B U _ A T T R I B U T E _ V A L U E _ S E T + * B U _ A T T R I B U T E _ V A L U E _ S E T * - * A variable-sized attribute-value-pair array. + * A variable-sized attribute-value-pair array. * - * avp points to an array of [max] slots. - * The interface routines will realloc to extend as needed. + * avp points to an array of [max] slots. The interface routines will + * realloc to extend as needed. * - * In general, - * each of the names and values is a local copy made with bu_strdup(), - * and each string needs to be freed individually. - * However, if a name or value pointer is between - * readonly_min and readonly_max, then it is part of a big malloc - * block that is being freed by the caller, and should not be individually - * freed. + * In general, each of the names and values is a local copy made with + * bu_strdup(), and each string needs to be freed individually. + * However, if a name or value pointer is between readonly_min and + * readonly_max, then it is part of a big malloc block that is being + * freed by the caller, and should not be individually freed. */ struct bu_attribute_value_set { unsigned long magic; @@ -1298,10 +1303,10 @@ (_pp) = &(_avp)->avp[(_avp)->count-1]; (_pp) >= (_avp)->avp; (_pp)-- /** - * Some (but not all) attribute name and value string pointers are - * taken from an on-disk format bu_external block, - * while others have been bu_strdup()ed and need to be freed. - * This macro indicates whether the pointer needs to be freed or not. + * Some (but not all) attribute name and value string pointers are + * taken from an on-disk format bu_external block, while others have + * been bu_strdup()ed and need to be freed. This macro indicates + * whether the pointer needs to be freed or not. */ #define AVS_IS_FREEABLE(_avsp, _p) \ ( (_avsp)->readonly_max == NULL || \ @@ -1313,7 +1318,7 @@ /** @addtogroup vls */ /** @{ */ /* - * Variable Length Strings: bu_vls support + * Variable Length Strings: bu_vls support */ struct bu_vls { unsigned long vls_magic; @@ -1332,7 +1337,7 @@ /** @addtogroup vlb */ /** @{ */ /* - * Variable Length Buffer: bu_vlb support + * Variable Length Buffer: bu_vlb support */ struct bu_vlb { unsigned long magic; @@ -1348,7 +1353,7 @@ /*----------------------------------------------------------------------*/ /* - * Section for manifest constants for bu_semaphore_acquire() + * Section for manifest constants for bu_semaphore_acquire() */ #define BU_SEM_SYSCALL 0 #define BU_SEM_LISTS 1 @@ -1356,11 +1361,10 @@ #define BU_SEM_MAPPEDFILE 3 #define BU_SEM_LAST (BU_SEM_MAPPEDFILE+1) /* allocate this many for LIBBU+LIBBN */ /* - * Automatic restart capability in bu_bomb(). - * The return from BU_SETJUMP is the return from the setjmp(). - * It is 0 on the first pass through, and non-zero when - * re-entered via a longjmp() from bu_bomb(). - * This is only safe to use in non-parallel applications. + * Automatic restart capability in bu_bomb(). The return from + * BU_SETJUMP is the return from the setjmp(). It is 0 on the first + * pass through, and non-zero when re-entered via a longjmp() from + * bu_bomb(). This is only safe to use in non-parallel applications. */ #define BU_SETJUMP setjmp((bu_setjmp_valid=1, bu_jmpbuf)) #define BU_UNSETJUMP (bu_setjmp_valid=0) @@ -1371,9 +1375,10 @@ /*-------------------------------------------------------------------------*/ /** @addtogroup mro */ /** @{ */ -/** B U _ M R O +/** + * B U _ M R O * - * Support for Multiply Represented Objects + * Support for Multiply Represented Objects */ struct bu_mro { @@ -1406,10 +1411,12 @@ /** @} */ /*----------------------------------------------------------------------*/ -/** @addtogroup bu_debug Debugging +/** + * @addtogroup bu_debug Debugging * @ingroup libbu + * @{ */ -/** @{ */ + /* * Section for BU_DEBUG values * @@ -1459,11 +1466,11 @@ /** @addtogroup parse */ /** @{ */ /* - * Structure parse/print + * Structure parse/print * - * Definitions and data structures needed for routines that assign values - * to elements of arbitrary data structures, the layout of which is - * described by tables of "bu_structparse" structures. + * Definitions and data structures needed for routines that assign + * values to elements of arbitrary data structures, the layout of + * which is described by tables of "bu_structparse" structures. */ /** @@ -1488,14 +1495,15 @@ /** - * b u _ b y t e o f f s e t + * b u _ b y t e o f f s e t * - * Convert address of global data object into byte "offset" from address 0. + * Convert address of global data object into byte "offset" from + * address 0. * - * Strictly speaking, the C language only permits initializers of the - * form: address +- constant, where here the intent is to measure the - * byte address of the indicated variable. - * Matching compensation code for the CRAY is located in librt/parse.c + * Strictly speaking, the C language only permits initializers of the + * form: address +- constant, where here the intent is to measure the + * byte address of the indicated variable. Matching compensation code + * for the CRAY is located in librt/parse.c */ #if defined(CRAY) # define bu_byteoffset(_i) (((size_t)&(_i))) /* actually a word offset */ @@ -1576,11 +1584,11 @@ * this will parse the vls string and assign values to the members of the * structure my_values * - * A gross hack: To set global variables (or others for that matter) you - * can store the actual address of the variable in the sp_offset field - * and pass a null pointer as the last argument to bu_struct_parse(). - * If you don't understand why this would work, you probably shouldn't - * use this technique. + * A gross hack: To set global variables (or others for that matter) + * you can store the actual address of the variable in the sp_offset + * field and pass a null pointer as the last argument to + * bu_struct_parse. If you don't understand why this would work, you + * probably shouldn't use this technique. */ struct bu_structparse { char sp_fmt[4]; /**< @brief "i" or "%f", etc */ @@ -1596,13 +1604,14 @@ /*----------------------------------------------------------------------*/ /** - * B U _ E X T E R N A L + * B U _ E X T E R N A L * - * An "opaque" handle for holding onto objects, - * typically in some kind of external form that is not directly - * usable without passing through an "importation" function. - * A "bu_external" struct holds the "external binary" representation of a - * structure or other block of arbitrary data. + * An "opaque" handle for holding onto objects, typically in some kind + * of external form that is not directly usable without passing + * through an "importation" function. + * + * A "bu_external" struct holds the "external binary" representation + * of a structure or other block of arbitrary data. */ struct bu_external { unsigned long ext_magic; @@ -1634,25 +1643,23 @@ /** @addtogroup rb */ /** @{ */ /* - * The data structures and constants for red-black trees. + * The data structures and constants for red-black trees. * - * Many of these routines are based on the algorithms in chapter 13 - * of T. H. Cormen, C. E. Leiserson, and R. L. Rivest, - * _Introduction to algorithms_, MIT Press, Cambridge, MA, 1990. + * Many of these routines are based on the algorithms in chapter 13 of + * T. H. Cormen, C. E. Leiserson, and R. L. Rivest, "_Introduction to + * algorithms", MIT Press, Cambridge, MA, 1990. * - * Author: Paul Tanenbaum - * */ /** - * B U _ R B _ L I S T + * B U _ R B _ L I S T * - * List of nodes or packages + * List of nodes or packages * - * The red-black tree package uses this structure to maintain lists - * of all the nodes and all the packages in the tree. Applications - * should not muck with these things. They are maintained only to - * facilitate freeing bu_rb_trees. + * The red-black tree package uses this structure to maintain lists of + * all the nodes and all the packages in the tree. Applications + * should not muck with these things. They are maintained only to + * facilitate freeing bu_rb_trees. */ struct bu_rb_list { @@ -1670,20 +1677,20 @@ /** - * B U _ R B _ T R E E + * B U _ R B _ T R E E * - * This is the only data structure used in the red-black tree package - * to which application software need make any explicit reference. + * This is the only data structure used in the red-black tree package + * to which application software need make any explicit reference. * - * The members of this structure are grouped into three - * classes: - * Class I: Reading is appropriate, when necessary, - * but applications should not modify. - * Class II: Reading and modifying are both appropriate, - * when necessary. - * Class III: All access should be through routines - * provided in the package. Touch these - * at your own risk! + * The members of this structure are grouped into three classes: + * + * Class I: Reading is appropriate, when necessary, + * but applications should not modify. + * Class II: Reading and modifying are both appropriate, + * when necessary. + * Class III: All access should be through routines + * provided in the package. Touch these + * at your own risk! */ typedef struct { @@ -1707,7 +1714,7 @@ #define BU_RB_TREE_NULL ((bu_rb_tree *) 0) /* - * Debug bit flags for member rbt_debug + * Debug bit flags for member rbt_debug */ #define BU_RB_DEBUG_INSERT 0x00000001 /**< @brief Insertion process */ #define BU_RB_DEBUG_UNIQ 0x00000002 /**< @brief Uniqueness of inserts */ @@ -1716,17 +1723,16 @@ #define BU_RB_DEBUG_DELETE 0x00000010 /**< @brief Deletion process */ /** - * B U _ R B _ P A C K A G E + * B U _ R B _ P A C K A G E * - * Wrapper for application data + * Wrapper for application data * - * This structure provides a level of indirection between - * the application software's data and the red-black nodes - * in which the data is stored. It is necessary because of - * the algorithm for deletion, which generally shuffles data - * among nodes in the tree. The package structure allows - * the application data to remember which node "contains" it - * for each order. + * This structure provides a level of indirection between the + * application software's data and the red-black nodes in which the + * data is stored. It is necessary because of the algorithm for + * deletion, which generally shuffles data among nodes in the tree. + * The package structure allows the application data to remember which + * node "contains" it for each order. */ struct bu_rb_package { @@ -1738,14 +1744,13 @@ #define BU_RB_PKG_NULL ((struct bu_rb_package *) 0) /** - * B U _ R B _ N O D E + * B U _ R B _ N O D E * - * For the most part, there is a one-to-one correspondence - * between nodes and chunks of application data. When a - * node is created, all of its package pointers (one per - * order of the tree) point to the same chunk of data. - * However, subsequent deletions usually muddy this tidy - * state of affairs. + * For the most part, there is a one-to-one correspondence between + * nodes and chunks of application data. When a node is created, all + * of its package pointers (one per order of the tree) point to the + * same chunk of data. However, subsequent deletions usually muddy + * this tidy state of affairs. */ struct bu_rb_node { @@ -1763,7 +1768,7 @@ #define BU_RB_NODE_NULL ((struct bu_rb_node *) 0) /* - * Applications interface to bu_rb_extreme() + * Applications interface to bu_rb_extreme() */ #define SENSE_MIN 0 #define SENSE_MAX 1 @@ -1773,7 +1778,7 @@ #define bu_rb_succ(t, o) bu_rb_neighbor((t), (o), SENSE_MAX) /* - * Applications interface to bu_rb_walk() + * Applications interface to bu_rb_walk() */ #define PREORDER 0 #define INORDER 1 @@ -1781,8 +1786,7 @@ /** - * B U _ O B S E R V E R - * + * B U _ O B S E R V E R */ struct bu_observer { struct bu_list l; @@ -1792,7 +1796,7 @@ #define BU_OBSERVER_NULL ((struct bu_observer *)0) /** - * B U _ C M D T A B + * B U _ C M D T A B */ struct bu_cmdtab { char *ct_name; @@ -1805,8 +1809,8 @@ __FILE__, __LINE__) /*----------------------------------------------------------------------*/ /* - * Declarations of external functions in LIBBU. - * Source file names listed alphabetically. + * Declarations of external functions in LIBBU. Source file names + * listed alphabetically. */ /**@}*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-10-14 01:42:42
|
Revision: 32946 http://brlcad.svn.sourceforge.net/brlcad/?rev=32946&view=rev Author: brlcad Date: 2008-10-14 01:42:37 +0000 (Tue, 14 Oct 2008) Log Message: ----------- revert back to an unknown function callback. there are other front-end callers that make up their own arguments for the callback table. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-10-14 01:33:56 UTC (rev 32945) +++ brlcad/trunk/include/bu.h 2008-10-14 01:42:37 UTC (rev 32946) @@ -1800,7 +1800,7 @@ */ struct bu_cmdtab { char *ct_name; - int (*ct_func)(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv); + int (*ct_func)(); }; /*----------------------------------------------------------------------*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-10-24 21:07:07
|
Revision: 33052 http://brlcad.svn.sourceforge.net/brlcad/?rev=33052&view=rev Author: brlcad Date: 2008-10-24 21:07:03 +0000 (Fri, 24 Oct 2008) Log Message: ----------- ws Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-10-24 21:04:29 UTC (rev 33051) +++ brlcad/trunk/include/bu.h 2008-10-24 21:07:03 UTC (rev 33052) @@ -1291,11 +1291,11 @@ * freed by the caller, and should not be individually freed. */ struct bu_attribute_value_set { - unsigned long magic; - unsigned int count; /**< @brief # valid entries in avp */ - unsigned int max; /**< @brief # allocated slots in avp */ - genptr_t readonly_min; - genptr_t readonly_max; + unsigned long magic; + unsigned int count; /**< @brief # valid entries in avp */ + unsigned int max; /**< @brief # allocated slots in avp */ + genptr_t readonly_min; + genptr_t readonly_max; struct bu_attribute_value_pair *avp; /**< @brief array[max] */ }; #define BU_CK_AVS(_avp) BU_CKMAG(_avp, BU_AVS_MAGIC, "bu_attribute_value_set") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-11-13 08:18:32
|
Revision: 33168 http://brlcad.svn.sourceforge.net/brlcad/?rev=33168&view=rev Author: brlcad Date: 2008-11-13 08:18:29 +0000 (Thu, 13 Nov 2008) Log Message: ----------- don't speculate. only declare the interfaces that are actually provided by libbu. commented out a handful of bu_color_* conversion routines that were apparently never implemented. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2008-11-13 08:17:15 UTC (rev 33167) +++ brlcad/trunk/include/bu.h 2008-11-13 08:18:29 UTC (rev 33168) @@ -1915,24 +1915,30 @@ BU_EXPORT BU_EXTERN(int bu_str_to_rgb, (char *str, unsigned char *rgb)); -BU_EXPORT BU_EXTERN(void bu_color_of_rgb_chars, - (struct bu_color *cp, - unsigned char *rgb)); -BU_EXPORT BU_EXTERN(int bu_color_to_rgb_chars, - (struct bu_color *cp, - unsigned char *rgb)); BU_EXPORT BU_EXTERN(int bu_color_of_rgb_floats, (struct bu_color *cp, fastf_t *rgb)); BU_EXPORT BU_EXTERN(int bu_color_to_rgb_floats, (struct bu_color *cp, fastf_t *rgb)); -BU_EXPORT BU_EXTERN(int bu_color_of_hsv_floats, - (struct bu_color *cp, - fastf_t *hsv)); -BU_EXPORT BU_EXTERN(int bu_color_to_hsv_floats, - (struct bu_color *cp, - fastf_t *hsv)); + +/* UNIMPLEMENTED + * + * BU_EXPORT BU_EXTERN(void bu_color_of_rgb_chars, + * (struct bu_color *cp, + * unsigned char *rgb)); + * BU_EXPORT BU_EXTERN(int bu_color_to_rgb_chars, + * (struct bu_color *cp, + * unsigned char *rgb)); + * BU_EXPORT BU_EXTERN(int bu_color_of_hsv_floats, + * (struct bu_color *cp, + * fastf_t *hsv)); + * BU_EXPORT BU_EXTERN(int bu_color_to_hsv_floats, + * (struct bu_color *cp, + * fastf_t *hsv)); + */ + + /** @} */ /** @addtogroup bu_log */ /** @{ */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-01-12 14:30:12
|
Revision: 33533 http://brlcad.svn.sourceforge.net/brlcad/?rev=33533&view=rev Author: brlcad Date: 2009-01-12 14:30:06 +0000 (Mon, 12 Jan 2009) Log Message: ----------- minor comment Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-01-12 13:46:52 UTC (rev 33532) +++ brlcad/trunk/include/bu.h 2009-01-12 14:30:06 UTC (rev 33533) @@ -1052,7 +1052,7 @@ bu_log("BU_BITV_NBITS_CHECK number of bits (%u) out of range (> %u)", \ ((unsigned)(_nbits)), (_bv)->nbits ); \ bu_bomb("process self-terminating"); \ - } + } #endif @@ -1087,6 +1087,9 @@ */ #define BU_BITV_LOOP_INDEX ((_wd << BU_BITV_SHIFT) | _b) +/** + * Paired with BU_BITV_LOOP_START() + */ #define BU_BITV_LOOP_END \ } /* end for (_b) */ \ } /* end for (_wd) */ \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-01-16 00:35:06
|
Revision: 33559 http://brlcad.svn.sourceforge.net/brlcad/?rev=33559&view=rev Author: brlcad Date: 2009-01-16 00:35:02 +0000 (Fri, 16 Jan 2009) Log Message: ----------- rewrite the implementation of BU_BITV_ZEROALL to manually zero the bytes of the bit vector so that we don't call memset directly. that way we don't have to require string.h and make the function call. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-01-14 21:29:56 UTC (rev 33558) +++ brlcad/trunk/include/bu.h 2009-01-16 00:35:02 UTC (rev 33559) @@ -1027,11 +1027,20 @@ ((_bv)->bits[(bit)>>BU_BITV_SHIFT] &= ~(((bitv_t)1)<<((bit)&BU_BITV_MASK))) /** - * requires #include <string.h> + * zeros all of the internal storage bytes in a bit vector array */ #define BU_BITV_ZEROALL(_bv) \ - { memset((char *)((_bv)->bits), 0, BU_BITS2BYTES( (_bv)->nbits )); } +{ \ + if ((_bv) && (_bv)->nbits != 0) { \ + unsigned char *bvp = (unsigned char *)(_bv)->bits; \ + size_t nbytes = BU_BITS2BYTES((_bv)->nbits); \ + do { \ + *bvp++ = (unsigned char)0; \ + } while (--nbytes != 0); \ + } \ +} + /* This is not done by default for performance reasons */ #ifdef NO_BOMBING_MACROS # define BU_BITV_BITNUM_CHECK(_bv, _bit) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-01-16 06:37:37
|
Revision: 33561 http://brlcad.svn.sourceforge.net/brlcad/?rev=33561&view=rev Author: brlcad Date: 2009-01-16 06:37:35 +0000 (Fri, 16 Jan 2009) Log Message: ----------- ws Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-01-16 06:37:23 UTC (rev 33560) +++ brlcad/trunk/include/bu.h 2009-01-16 06:37:35 UTC (rev 33561) @@ -1802,9 +1802,9 @@ * B U _ O B S E R V E R */ struct bu_observer { - struct bu_list l; - struct bu_vls observer; - struct bu_vls cmd; + struct bu_list l; + struct bu_vls observer; + struct bu_vls cmd; }; #define BU_OBSERVER_NULL ((struct bu_observer *)0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-01-27 04:50:42
|
Revision: 33610 http://brlcad.svn.sourceforge.net/brlcad/?rev=33610&view=rev Author: brlcad Date: 2009-01-27 04:50:38 +0000 (Tue, 27 Jan 2009) Log Message: ----------- gah, hard-coding to 5 is a problem on 64-bit platforms where long's can be 64-bit and require a 6 shift. must have been asleep at the keyboard. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-01-27 02:16:49 UTC (rev 33609) +++ brlcad/trunk/include/bu.h 2009-01-27 04:50:38 UTC (rev 33610) @@ -966,7 +966,7 @@ * disabled for a handful of primitives that heavily rely on bit * vectors. */ -#define BU_BITV_SHIFT 5 +#define BU_BITV_SHIFT bu_bitv_shift() /** Bit vector mask */ #define BU_BITV_MASK ((1<<BU_BITV_SHIFT)-1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-01-29 19:44:03
|
Revision: 33615 http://brlcad.svn.sourceforge.net/brlcad/?rev=33615&view=rev Author: brlcad Date: 2009-01-29 19:43:55 +0000 (Thu, 29 Jan 2009) Log Message: ----------- clarify, it's a base2 log Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-01-29 18:09:05 UTC (rev 33614) +++ brlcad/trunk/include/bu.h 2009-01-29 19:43:55 UTC (rev 33615) @@ -960,8 +960,8 @@ /** * Bit vector shift size * - * Should equal to: log(sizeof(bitv_t)*8). Using bu_bitv_shift() will - * return a run-time computed shift size if the size of a bitv_t + * Should equal to: log2(sizeof(bitv_t)*8.0). Using bu_bitv_shift() + * will return a run-time computed shift size if the size of a bitv_t * changes. Performance impact is rather minimal for most models but * disabled for a handful of primitives that heavily rely on bit * vectors. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-02-19 19:31:29
|
Revision: 33829 http://brlcad.svn.sourceforge.net/brlcad/?rev=33829&view=rev Author: brlcad Date: 2009-02-19 19:31:25 +0000 (Thu, 19 Feb 2009) Log Message: ----------- quell log() shadow warning Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-02-19 19:30:27 UTC (rev 33828) +++ brlcad/trunk/include/bu.h 2009-02-19 19:31:25 UTC (rev 33829) @@ -2319,10 +2319,10 @@ BU_EXPORT BU_EXTERN(char *bu_next_token, (char *str)); BU_EXPORT BU_EXTERN(void bu_structparse_get_terse_form, - (struct bu_vls *log, + (struct bu_vls *logstr, const struct bu_structparse *sp)); BU_EXPORT BU_EXTERN(int bu_structparse_argv, - (struct bu_vls *log, + (struct bu_vls *logstr, int argc, char **argv, const struct bu_structparse *desc, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-04-23 11:40:39
|
Revision: 34303 http://brlcad.svn.sourceforge.net/brlcad/?rev=34303&view=rev Author: brlcad Date: 2009-04-23 11:40:32 +0000 (Thu, 23 Apr 2009) Log Message: ----------- include the logging example snippet in the header with a comment about stderr/stdout possibly changing. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-04-23 11:33:14 UTC (rev 34302) +++ brlcad/trunk/include/bu.h 2009-04-23 11:40:32 UTC (rev 34303) @@ -2142,7 +2142,35 @@ /** @} */ /** @addtogroup bu_log */ /** @{ */ -/* log.c */ +/** + * Here is an example of how to set up a custom logging callback. + * While bu_log presently writes to STDERR by default, this behavior + * should not be relied upon and may be changed to STDOUT in the + * future without notice. + * + * --- BEGIN EXAMPLE --- + * @code + int log_output_to_file(genptr_t data, genptr_t str) + { + FILE *fp = (FILE *)data; + fprintf(fp, "LOG: %s", str); + return 0; + } + + int main(int ac, char *av[]) + { + FILE *fp = fopen("whatever.log", "w+"); + bu_log_add_hook(log_output_to_file, (genptr_t)fp); + bu_log("Logging to file.\n"); + bu_log_delete_hook(log_output_to_file, (genptr_t)fp); + bu_log("Logging to stderr.\n"); + fclose(fp); + return 0; + } + * @endcode + * --- END EXAMPLE --- + * + */ BU_EXPORT BU_EXTERN(void bu_log_indent_delta, (int delta)); BU_EXPORT BU_EXTERN(void bu_log_indent_vls, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-05-01 19:02:14
|
Revision: 34398 http://brlcad.svn.sourceforge.net/brlcad/?rev=34398&view=rev Author: brlcad Date: 2009-05-01 19:02:12 +0000 (Fri, 01 May 2009) Log Message: ----------- meh Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-05-01 18:46:08 UTC (rev 34397) +++ brlcad/trunk/include/bu.h 2009-05-01 19:02:12 UTC (rev 34398) @@ -2722,16 +2722,10 @@ ((((short)((_cp)[0])) << 8) | \ (_cp)[1] ) -BU_EXPORT BU_EXTERN(unsigned short bu_gshort, - (const unsigned char *msgp)); -BU_EXPORT BU_EXTERN(unsigned long bu_glong, - (const unsigned char *msgp)); -BU_EXPORT BU_EXTERN(unsigned char *bu_pshort, - (unsigned char *msgp, - int s)); -BU_EXPORT BU_EXTERN(unsigned char *bu_plong, - (unsigned char *msgp, - unsigned long l)); +BU_EXPORT BU_EXTERN(unsigned short bu_gshort, (const unsigned char *msgp)); +BU_EXPORT BU_EXTERN(unsigned long bu_glong, (const unsigned char *msgp)); +BU_EXPORT BU_EXTERN(unsigned char *bu_pshort, (unsigned char *msgp, int s)); +BU_EXPORT BU_EXTERN(unsigned char *bu_plong, (unsigned char *msgp, unsigned long l)); /** @} */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-04 04:21:33
|
Revision: 36148 http://brlcad.svn.sourceforge.net/brlcad/?rev=36148&view=rev Author: brlcad Date: 2009-10-04 04:21:25 +0000 (Sun, 04 Oct 2009) Log Message: ----------- formatting and other misc cleanup Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-10-04 04:07:13 UTC (rev 36147) +++ brlcad/trunk/include/bu.h 2009-10-04 04:21:25 UTC (rev 36148) @@ -132,11 +132,11 @@ * of USE_PROTOTYPES is determined during configure */ #if __STDC__ || USE_PROTOTYPES -# define BU_EXTERN(type_and_name, args) extern type_and_name args -# define BU_ARGS(args) args +# define BU_EXTERN(type_and_name, args) extern type_and_name args +# define BU_ARGS(args) args #else -# define BU_EXTERN(type_and_name, args) extern type_and_name() -# define BU_ARGS(args) () +# define BU_EXTERN(type_and_name, args) extern type_and_name() +# define BU_ARGS(args) () #endif /** @@ -170,7 +170,7 @@ #define __BU_ATTR_NORETURN __attribute__ ((__noreturn__)) /* - * I N T E R F A C E H E A D E R S + * I N T E R F A C E H E A D E R S */ /* system interface headers */ @@ -312,7 +312,7 @@ */ #if !defined(GENPTR_NULL) typedef void *genptr_t; -# define GENPTR_NULL ((genptr_t)0) +# define GENPTR_NULL ((genptr_t)0) #endif @@ -323,7 +323,7 @@ * processors/threads that may be spawned. The actual number of * available processors is found at runtime by calling rt_avail_cpus() */ -#define MAX_PSW 1024 +#define MAX_PSW 1024 /*----------------------------------------------------------------------*/ @@ -336,10 +336,10 @@ * (XDR). See also the support routines in libbu/xdr.c * */ -#define SIZEOF_NETWORK_SHORT 2 /* htons(), bu_gshort(), bu_pshort() */ -#define SIZEOF_NETWORK_LONG 4 /* htonl(), bu_glong(), bu_plong() */ -#define SIZEOF_NETWORK_FLOAT 4 /* htonf() */ -#define SIZEOF_NETWORK_DOUBLE 8 /* htond() */ +#define SIZEOF_NETWORK_SHORT 2 /* htons(), bu_gshort(), bu_pshort() */ +#define SIZEOF_NETWORK_LONG 4 /* htonl(), bu_glong(), bu_plong() */ +#define SIZEOF_NETWORK_FLOAT 4 /* htonf() */ +#define SIZEOF_NETWORK_DOUBLE 8 /* htond() */ /** @} */ /*----------------------------------------------------------------------*/ @@ -405,47 +405,47 @@ unsigned long *, int)); -#define CV_CHANNEL_MASK 0x00ff -#define CV_HOST_MASK 0x0100 -#define CV_SIGNED_MASK 0x0200 -#define CV_TYPE_MASK 0x1c00 /* 0001 1100 0000 0000 */ +#define CV_CHANNEL_MASK 0x00ff +#define CV_HOST_MASK 0x0100 +#define CV_SIGNED_MASK 0x0200 +#define CV_TYPE_MASK 0x1c00 /* 0001 1100 0000 0000 */ #define CV_CONVERT_MASK 0x6000 /* 0110 0000 0000 0000 */ -#define CV_TYPE_SHIFT 10 +#define CV_TYPE_SHIFT 10 #define CV_CONVERT_SHIFT 13 -#define CV_8 0x0400 -#define CV_16 0x0800 -#define CV_32 0x0c00 -#define CV_64 0x1000 -#define CV_D 0x1400 +#define CV_8 0x0400 +#define CV_16 0x0800 +#define CV_32 0x0c00 +#define CV_64 0x1000 +#define CV_D 0x1400 -#define CV_CLIP 0x0000 -#define CV_NORMAL 0x2000 -#define CV_LIT 0x4000 +#define CV_CLIP 0x0000 +#define CV_NORMAL 0x2000 +#define CV_LIT 0x4000 /** deprecated */ -#define END_NOTSET 0 -#define END_BIG 1 /* PowerPC/MIPS */ -#define END_LITTLE 2 /* Intel */ -#define END_ILL 3 /* PDP-11 */ -#define END_CRAY 4 /* Old Cray */ +#define END_NOTSET 0 +#define END_BIG 1 /* PowerPC/MIPS */ +#define END_LITTLE 2 /* Intel */ +#define END_ILL 3 /* PDP-11 */ +#define END_CRAY 4 /* Old Cray */ /** deprecated */ -#define IND_NOTSET 0 -#define IND_BIG 1 -#define IND_LITTLE 2 -#define IND_ILL 3 -#define IND_CRAY 4 +#define IND_NOTSET 0 +#define IND_BIG 1 +#define IND_LITTLE 2 +#define IND_ILL 3 +#define IND_CRAY 4 /*----------------------------------------------------------------------*/ /* endian.c */ typedef enum { - BU_LITTLE_ENDIAN = 1234, /* LSB first: i386, VAX order */ - BU_BIG_ENDIAN = 4321, /* MSB first: 68000, IBM, network order */ - BU_PDP_ENDIAN = 3412 /* LSB first in word, MSW first in long */ + BU_LITTLE_ENDIAN = 1234, /* LSB first: i386, VAX order */ + BU_BIG_ENDIAN = 4321, /* MSB first: 68000, IBM, network order */ + BU_PDP_ENDIAN = 3412 /* LSB first in word, MSW first in long */ } bu_endian_t; @@ -549,11 +549,11 @@ /**@{*/ struct bu_list { - unsigned long magic; /**< @brief Magic # for mem id/check */ - struct bu_list *forw; /**< @brief "forward", "next" */ - struct bu_list *back; /**< @brief "back", "last" */ + unsigned long magic; /**< @brief Magic # for mem id/check */ + struct bu_list *forw; /**< @brief "forward", "next" */ + struct bu_list *back; /**< @brief "back", "last" */ }; -#define BU_LIST_NULL ((struct bu_list *)0) +#define BU_LIST_NULL ((struct bu_list *)0) typedef struct bu_list bu_list_t; @@ -657,8 +657,8 @@ */ #define BU_LIST_INSERT_LIST(dest_hp, src_hp) \ if ( BU_LIST_NON_EMPTY(src_hp) ) { \ - register struct bu_list *_first = (src_hp)->forw; \ - register struct bu_list *_last = (src_hp)->back; \ + register struct bu_list *_first = (src_hp)->forw; \ + register struct bu_list *_last = (src_hp)->back; \ (dest_hp)->forw->back = _last; \ _last->forw = (dest_hp)->forw; \ (dest_hp)->forw = _first; \ @@ -668,8 +668,8 @@ #define BU_LIST_APPEND_LIST(dest_hp, src_hp) \ if ( BU_LIST_NON_EMPTY(src_hp) ) {\ - register struct bu_list *_first = (src_hp)->forw; \ - register struct bu_list *_last = (src_hp)->back; \ + register struct bu_list *_first = (src_hp)->forw; \ + register struct bu_list *_last = (src_hp)->back; \ _first->back = (dest_hp)->back; \ (dest_hp)->back->forw = _first; \ (dest_hp)->back = _last; \ @@ -689,8 +689,8 @@ (hp)->back == BU_LIST_NULL) /* Handle list initialization */ -#define BU_LIST_UNINITIALIZED(hp) ((hp)->forw == BU_LIST_NULL) -#define BU_LIST_IS_INITIALIZED(hp) ((hp)->forw != BU_LIST_NULL) +#define BU_LIST_UNINITIALIZED(hp) ((hp)->forw == BU_LIST_NULL) +#define BU_LIST_IS_INITIALIZED(hp) ((hp)->forw != BU_LIST_NULL) #define BU_LIST_INIT(hp) { \ (hp)->forw = (hp)->back = (hp); \ (hp)->magic = BU_LIST_HEAD_MAGIC; /* used by circ. macros */ } @@ -788,7 +788,7 @@ * process( p1, p2 ); * } */ -#define BU_LIST_FOR2(p1, p2, structure, hp1, hp2) \ +#define BU_LIST_FOR2(p1, p2, structure, hp1, hp2) \ (p1)=BU_LIST_FIRST(structure, hp1), \ (p2)=BU_LIST_FIRST(structure, hp2); \ (p1) && BU_LIST_NOT_HEAD((struct bu_list *)(p1), (hp1)) && \ @@ -934,14 +934,14 @@ #endif /** DEPRECATED, do not use */ -#define SMALL SQRT_SMALL_FASTF +#define SMALL SQRT_SMALL_FASTF /*----------------------------------------------------------------------*/ /* bitv.c */ /* - * B U _ B I T V + * B U _ B I T V */ /** @addtogroup bitv */ /**@{*/ @@ -983,7 +983,7 @@ #endif /** Bit vector mask */ -#define BU_BITV_MASK ((1<<BU_BITV_SHIFT)-1) +#define BU_BITV_MASK ((1<<BU_BITV_SHIFT)-1) /** * @brief @@ -1003,9 +1003,9 @@ * 0 is at the right). Note that MUVES does it differently. */ struct bu_bitv { - struct bu_list l; /**< @brief linked list for caller's use */ - unsigned int nbits; /**< @brief actual size of bits[], in bits */ - bitv_t bits[2]; /**< @brief variable size array */ + struct bu_list l; /**< @brief linked list for caller's use */ + unsigned int nbits; /**< @brief actual size of bits[], in bits */ + bitv_t bits[2]; /**< @brief variable size array */ }; #define BU_CK_BITV(_vp) BU_CKMAG(_vp, BU_BITV_MAGIC, "bu_bitv") @@ -1106,11 +1106,11 @@ */ #define BU_BITV_LOOP_START(_bv) \ { \ - register int _wd; /* Current word number */ \ + register int _wd; /* Current word number */ \ BU_CK_BITV(_bv); \ for ( _wd=BU_BITS2WORDS((_bv)->nbits)-1; _wd>=0; _wd-- ) { \ - register int _b; /* Current bit-in-word number */ \ - register bitv_t _val; /* Current word value */ \ + register int _b; /* Current bit-in-word number */ \ + register bitv_t _val; /* Current word value */ \ if ((_val = (_bv)->bits[_wd])==0) continue; \ for (_b=0; _b < BU_BITV_MASK+1; _b++, _val >>= 1 ) { \ if ( !(_val & 1) ) continue; @@ -1119,7 +1119,7 @@ * This macro is valid only between a BU_BITV_LOOP_START/LOOP_END * pair, and gives the bit number of the current iteration. */ -#define BU_BITV_LOOP_INDEX ((_wd << BU_BITV_SHIFT) | _b) +#define BU_BITV_LOOP_INDEX ((_wd << BU_BITV_SHIFT) | _b) /** * Paired with BU_BITV_LOOP_START() @@ -1142,13 +1142,13 @@ * @brief histogram support */ struct bu_hist { - unsigned long magic; /**< @brief magic # for id/check */ - fastf_t hg_min; /**< @brief minimum value */ - fastf_t hg_max; /**< @brief maximum value */ - fastf_t hg_clumpsize; /**< @brief (max-min+1)/nbins+1 */ - long hg_nsamples; /**< @brief total number of samples spread into histogram */ - long hg_nbins; /**< @brief # of bins in hg_bins[] */ - long *hg_bins; /**< @brief array of counters */ + unsigned long magic; /**< @brief magic # for id/check */ + fastf_t hg_min; /**< @brief minimum value */ + fastf_t hg_max; /**< @brief maximum value */ + fastf_t hg_clumpsize; /**< @brief (max-min+1)/nbins+1 */ + long hg_nsamples; /**< @brief total number of samples spread into histogram */ + long hg_nbins; /**< @brief # of bins in hg_bins[] */ + long *hg_bins; /**< @brief array of counters */ }; #define BU_CK_HIST(_p) BU_CKMAG(_p, BU_HIST_MAGIC, "struct bu_hist") @@ -1163,7 +1163,7 @@ (_hp)->hg_nsamples++; } #define BU_HIST_TALLY_MULTIPLE( _hp, _val, _count ) { \ - register int __count = (_count); \ + register int __count = (_count); \ if ( (_val) <= (_hp)->hg_min ) { \ (_hp)->hg_bins[0] += __count; \ } else if ( (_val) >= (_hp)->hg_max ) { \ @@ -1185,22 +1185,22 @@ /** @{ */ struct bu_ptbl { - struct bu_list l; /**< @brief linked list for caller's use */ - int end; /**< @brief index into buffer of first available location */ - int blen; /**< @brief # of (long *)'s worth of storage at *buffer */ - long **buffer; /**< @brief data storage area */ + struct bu_list l; /**< @brief linked list for caller's use */ + int end; /**< @brief index into buffer of first available location */ + int blen; /**< @brief # of (long *)'s worth of storage at *buffer */ + long **buffer; /**< @brief data storage area */ }; #define BU_CK_PTBL(_p) BU_CKMAG(_p, BU_PTBL_MAGIC, "bu_ptbl") -#define BU_PTBL_INIT 0 /**< @brief initialize table pointer struct & get storage */ -#define BU_PTBL_INS 1 /**< @brief insert an item (long *) into a table */ -#define BU_PTBL_LOC 2 /**< @brief locate a (long *) in an existing table */ -#define BU_PTBL_FREE 3 /**< @brief deallocate buffer associated with a table */ -#define BU_PTBL_RST 4 /**< @brief empty a table, but keep storage on hand */ -#define BU_PTBL_CAT 5 /**< @brief catenate one table onto another */ -#define BU_PTBL_RM 6 /**< @brief remove all occurrences of an item from a table */ -#define BU_PTBL_INS_UNIQUE 7 /**< @brief insert item into table, if not present */ -#define BU_PTBL_ZERO 8 /**< @brief replace all occurrences of an item by 0 */ +#define BU_PTBL_INIT 0 /**< @brief initialize table pointer struct & get storage */ +#define BU_PTBL_INS 1 /**< @brief insert an item (long *) into a table */ +#define BU_PTBL_LOC 2 /**< @brief locate a (long *) in an existing table */ +#define BU_PTBL_FREE 3 /**< @brief deallocate buffer associated with a table */ +#define BU_PTBL_RST 4 /**< @brief empty a table, but keep storage on hand */ +#define BU_PTBL_CAT 5 /**< @brief catenate one table onto another */ +#define BU_PTBL_RM 6 /**< @brief remove all occurrences of an item from a table */ +#define BU_PTBL_INS_UNIQUE 7 /**< @brief insert item into table, if not present */ +#define BU_PTBL_ZERO 8 /**< @brief replace all occurrences of an item by 0 */ /* * For those routines that have to "peek" into the ptbl a little bit. */ @@ -1216,15 +1216,14 @@ /** * A handy way to visit all the elements of the table is: * - * struct edgeuse **eup; - * for ( eup = (struct edgeuse **)BU_PTBL_LASTADDR(&eutab); - * eup >= (struct edgeuse **)BU_PTBL_BASEADDR(&eutab); eup-- ) { - * NMG_CK_EDGEUSE(*eup); - * } - * or - * for ( BU_PTBL_FOR( eup, (struct edgeuse **), &eutab ) ) { - * NMG_CK_EDGEUSE(*eup); - * } + * struct edgeuse **eup; + * for (eup = (struct edgeuse **)BU_PTBL_LASTADDR(&eutab); eup >= (struct edgeuse **)BU_PTBL_BASEADDR(&eutab); eup--) { + * NMG_CK_EDGEUSE(*eup); + * } + * --- OR --- + * for (BU_PTBL_FOR( eup, (struct edgeuse **), &eutab )) { + * NMG_CK_EDGEUSE(*eup); + * } */ #define BU_PTBL_FOR(ip, cast, ptbl) \ ip = cast BU_PTBL_LASTADDR(ptbl); ip >= cast BU_PTBL_BASEADDR(ptbl); ip-- @@ -1262,17 +1261,17 @@ * For appl == "db_i", file is a ".g" database & apbuf is (struct db_i *). */ struct bu_mapped_file { - struct bu_list l; - char *name; /**< @brief bu_strdup() of file name */ - genptr_t buf; /**< @brief In-memory copy of file (may be mmapped) */ - long buflen; /**< @brief # bytes in 'buf' */ - int is_mapped; /**< @brief 1=mmap() used, 0=bu_malloc/fread */ - char *appl; /**< @brief bu_strdup() of tag for application using 'apbuf' */ - genptr_t apbuf; /**< @brief opt: application-specific buffer */ - long apbuflen; /**< @brief opt: application-specific buflen */ - long modtime; /**< @brief date stamp, in case file is modified */ - int uses; /**< @brief # ptrs to this struct handed out */ - int dont_restat; /**< @brief 1=on subsequent opens, don't re-stat() */ + struct bu_list l; + char *name; /**< @brief bu_strdup() of file name */ + genptr_t buf; /**< @brief In-memory copy of file (may be mmapped) */ + long buflen; /**< @brief # bytes in 'buf' */ + int is_mapped; /**< @brief 1=mmap() used, 0=bu_malloc/fread */ + char *appl; /**< @brief bu_strdup() of tag for application using 'apbuf' */ + genptr_t apbuf; /**< @brief opt: application-specific buffer */ + long apbuflen; /**< @brief opt: application-specific buflen */ + long modtime; /**< @brief date stamp, in case file is modified */ + int uses; /**< @brief # ptrs to this struct handed out */ + int dont_restat; /**< @brief 1=on subsequent opens, don't re-stat() */ }; #define BU_CK_MAPPED_FILE(_p) BU_CKMAG(_p, BU_MAPPED_FILE_MAGIC, "bu_mapped_file") @@ -1283,13 +1282,13 @@ typedef int (*bu_hook_t)BU_ARGS((genptr_t, genptr_t)); struct bu_hook_list { - struct bu_list l; /**< @brief linked list */ - bu_hook_t hookfunc; /**< @brief function to call */ - genptr_t clientdata; /**< @brief data for caller */ + struct bu_list l; /**< @brief linked list */ + bu_hook_t hookfunc; /**< @brief function to call */ + genptr_t clientdata; /**< @brief data for caller */ }; #define BU_HOOK_NULL 0 -#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0) +#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0) /** list of callbacks to call during bu_bomb, used by mged. */ BU_EXPORT extern struct bu_hook_list bu_bomb_hook_list; @@ -1299,7 +1298,7 @@ /** @addtogroup avs */ /** @{ */ /* - * Attribute/value sets + * Attribute/value sets */ /** @@ -1309,8 +1308,8 @@ * on usage. */ struct bu_attribute_value_pair { - const char *name; /**< @brief attribute name */ - const char *value; /**< @brief attribute value */ + const char *name; /**< @brief attribute name */ + const char *value; /**< @brief attribute value */ }; /** @@ -1328,12 +1327,12 @@ * freed by the caller, and should not be individually freed. */ struct bu_attribute_value_set { - unsigned long magic; - unsigned int count; /**< @brief # valid entries in avp */ - unsigned int max; /**< @brief # allocated slots in avp */ - genptr_t readonly_min; - genptr_t readonly_max; - struct bu_attribute_value_pair *avp; /**< @brief array[max] */ + unsigned long magic; + unsigned int count; /**< @brief # valid entries in avp */ + unsigned int max; /**< @brief # allocated slots in avp */ + genptr_t readonly_min; + genptr_t readonly_max; + struct bu_attribute_value_pair *avp; /**< @brief array[max] */ }; #define BU_CK_AVS(_avp) BU_CKMAG(_avp, BU_AVS_MAGIC, "bu_attribute_value_set") @@ -1359,11 +1358,11 @@ * Variable Length Strings: bu_vls support */ struct bu_vls { - unsigned long vls_magic; - char *vls_str; /**< @brief Dynamic memory for buffer */ - int vls_offset; /**< @brief Offset into vls_str where data is good */ - int vls_len; /**< @brief Length, not counting the null */ - int vls_max; + unsigned long vls_magic; + char *vls_str; /**< @brief Dynamic memory for buffer */ + int vls_offset; /**< @brief Offset into vls_str where data is good */ + int vls_len; /**< @brief Length, not counting the null */ + int vls_max; }; #define BU_CK_VLS(_vp) BU_CKMAG(_vp, BU_VLS_MAGIC, "bu_vls") #define BU_VLS_IS_INITIALIZED(_vp) \ @@ -1383,7 +1382,7 @@ int bufCapacity; /**< @brief Current capacity of the buffer */ int nextByte; /**< @brief Number of bytes currently used in the buffer */ }; -#define BU_VLB_BLOCK_SIZE 512 +#define BU_VLB_BLOCK_SIZE 512 #define BU_CK_VLB(_vp) BU_CKMAG(_vp, BU_VLB_MAGIC, "bu_vlb") #define BU_VLB_IS_INITIALIZED(_vp) \ ((_vp) && ((_vp)->magic == BU_VLB_MAGIC)) @@ -1393,22 +1392,22 @@ /* * Section for manifest constants for bu_semaphore_acquire() */ -#define BU_SEM_SYSCALL 0 -#define BU_SEM_LISTS 1 -#define BU_SEM_BN_NOISE 2 +#define BU_SEM_SYSCALL 0 +#define BU_SEM_LISTS 1 +#define BU_SEM_BN_NOISE 2 #define BU_SEM_MAPPEDFILE 3 -#define BU_SEM_LAST (BU_SEM_MAPPEDFILE+1) /* allocate this many for LIBBU+LIBBN */ +#define BU_SEM_LAST (BU_SEM_MAPPEDFILE+1) /* allocate this many for LIBBU+LIBBN */ /* * Automatic restart capability in bu_bomb(). The return from * BU_SETJUMP is the return from the setjmp(). It is 0 on the first * pass through, and non-zero when re-entered via a longjmp() from * bu_bomb(). This is only safe to use in non-parallel applications. */ -#define BU_SETJUMP setjmp((bu_setjmp_valid=1, bu_jmpbuf)) -#define BU_UNSETJUMP (bu_setjmp_valid=0) +#define BU_SETJUMP setjmp((bu_setjmp_valid=1, bu_jmpbuf)) +#define BU_UNSETJUMP (bu_setjmp_valid=0) /* These are global because BU_SETJUMP must be macro. Please don't touch. */ -BU_EXPORT extern int bu_setjmp_valid; /* !0 = bu_jmpbuf is valid */ -BU_EXPORT extern jmp_buf bu_jmpbuf; /* for BU_SETJMP() */ +BU_EXPORT extern int bu_setjmp_valid; /* !0 = bu_jmpbuf is valid */ +BU_EXPORT extern jmp_buf bu_jmpbuf; /* for BU_SETJMP() */ /** @} */ /*-------------------------------------------------------------------------*/ /** @addtogroup mro */ @@ -1420,12 +1419,12 @@ */ struct bu_mro { - unsigned long magic; - struct bu_vls string_rep; - char long_rep_is_valid; - long long_rep; - char double_rep_is_valid; - double double_rep; + unsigned long magic; + struct bu_vls string_rep; + char long_rep_is_valid; + long long_rep; + char double_rep_is_valid; + double double_rep; }; #define BU_CK_MRO(_vp) BU_CKMAG(_vp, BU_MRO_MAGIC, "bu_mro") @@ -1461,9 +1460,9 @@ * These can be set from the command-line of RT-compatible programs * using the "-!" option. */ -BU_EXPORT extern int bu_debug; +BU_EXPORT extern int bu_debug; /* These definitions are each for one bit */ -#define BU_DEBUG_OFF 0 /* No debugging */ +#define BU_DEBUG_OFF 0 /* No debugging */ #define BU_DEBUG_COREDUMP 0x00000001 /* bu_bomb() should dump core on exit */ #define BU_DEBUG_MEM_CHECK 0x00000002 /* Mem barrier & leak checking */ @@ -1574,11 +1573,11 @@ * desired. For example: *@code struct data_structure { - char a_char; - char str[32]; - short a_short; - int a_int; - double a_double; + char a_char; + char str[32]; + short a_short; + int a_int; + double a_double; } struct data_structure data_default = @@ -1617,7 +1616,7 @@ * * To parse a string, call: * - * bu_struct_parse( vls_string, data_sp, (char *)my_values) + * bu_struct_parse( vls_string, data_sp, (char *)my_values) * * this will parse the vls string and assign values to the members of the * structure my_values @@ -1629,15 +1628,15 @@ * probably shouldn't use this technique. */ struct bu_structparse { - char sp_fmt[4]; /**< @brief "i" or "%f", etc */ - long sp_count; /**< @brief number of elements */ - char *sp_name; /**< @brief Element's symbolic name */ - long sp_offset; /**< @brief Byte offset in struct */ - void (*sp_hook)(); /**< @brief Optional hooked function, or indir ptr */ - char *sp_desc; /**< @brief description of element */ - void *sp_default; /**< @brief ptr to default value */ + char sp_fmt[4]; /**< @brief "i" or "%f", etc */ + long sp_count; /**< @brief number of elements */ + char *sp_name; /**< @brief Element's symbolic name */ + long sp_offset; /**< @brief Byte offset in struct */ + void (*sp_hook)(); /**< @brief Optional hooked function, or indir ptr */ + char *sp_desc; /**< @brief description of element */ + void *sp_default; /**< @brief ptr to default value */ }; -#define BU_STRUCTPARSE_FUNC_NULL ((void (*)())0) +#define BU_STRUCTPARSE_FUNC_NULL ((void (*)())0) /*----------------------------------------------------------------------*/ @@ -1652,8 +1651,8 @@ * of a structure or other block of arbitrary data. */ struct bu_external { - unsigned long ext_magic; - long ext_nbytes; + unsigned long ext_magic; + long ext_nbytes; genptr_t ext_buf; }; #define BU_INIT_EXTERNAL(_p) {(_p)->ext_magic = BU_EXTERNAL_MAGIC; \ @@ -1663,17 +1662,17 @@ /** @} */ /*----------------------------------------------------------------------*/ /* color.c */ -#define HUE 0 -#define SAT 1 -#define VAL 2 -#define ACHROMATIC -1.0 +#define HUE 0 +#define SAT 1 +#define VAL 2 +#define ACHROMATIC -1.0 struct bu_color { unsigned long buc_magic; fastf_t buc_rgb[3]; }; -#define BU_COLOR_NULL ((struct bu_color *) 0) +#define BU_COLOR_NULL ((struct bu_color *) 0) #define BU_CK_COLOR(_bp) BU_CKMAG(_bp, BU_COLOR_MAGIC, "bu_color") /*----------------------------------------------------------------------*/ @@ -1701,17 +1700,17 @@ */ struct bu_rb_list { - struct bu_list l; + struct bu_list l; union { - struct bu_rb_node *rbl_n; + struct bu_rb_node *rbl_n; struct bu_rb_package *rbl_p; } rbl_u; }; -#define rbl_magic l.magic -#define rbl_node rbl_u.rbl_n -#define rbl_package rbl_u.rbl_p -#define BU_RB_LIST_NULL ((struct bu_rb_list *) 0) +#define rbl_magic l.magic +#define rbl_node rbl_u.rbl_n +#define rbl_package rbl_u.rbl_p +#define BU_RB_LIST_NULL ((struct bu_rb_list *) 0) /** @@ -1733,32 +1732,32 @@ typedef struct { /* CLASS I - Applications may read directly. */ - unsigned long rbt_magic; /**< @brief Magic no. for integrity check */ - int rbt_nm_nodes; /**< @brief Number of nodes */ + unsigned long rbt_magic; /**< @brief Magic no. for integrity check */ + int rbt_nm_nodes; /**< @brief Number of nodes */ /* CLASS II - Applications may read/write directly. */ - void (*rbt_print)(void *); /**< @brief Data pretty-print function */ - int rbt_debug; /**< @brief Debug bits */ - char *rbt_description; /**< @brief Comment for diagnostics */ + void (*rbt_print)(void *); /**< @brief Data pretty-print function */ + int rbt_debug; /**< @brief Debug bits */ + char *rbt_description; /**< @brief Comment for diagnostics */ /* CLASS III - Applications should not manipulate directly. */ - int rbt_nm_orders; /**< @brief Number of simultaneous orders */ - int (**rbt_order)(); /**< @brief Comparison functions */ - struct bu_rb_node **rbt_root; /**< @brief The actual trees */ - char *rbt_unique; /**< @brief Uniqueness flags */ - struct bu_rb_node *rbt_current; /**< @brief Current node */ - struct bu_rb_list rbt_nodes; /**< @brief All nodes */ - struct bu_rb_list rbt_packages; /**< @brief All packages */ - struct bu_rb_node *rbt_empty_node; /**< @brief Sentinel representing nil */ + int rbt_nm_orders; /**< @brief Number of simultaneous orders */ + int (**rbt_order)(); /**< @brief Comparison functions */ + struct bu_rb_node **rbt_root; /**< @brief The actual trees */ + char *rbt_unique; /**< @brief Uniqueness flags */ + struct bu_rb_node *rbt_current; /**< @brief Current node */ + struct bu_rb_list rbt_nodes; /**< @brief All nodes */ + struct bu_rb_list rbt_packages; /**< @brief All packages */ + struct bu_rb_node *rbt_empty_node; /**< @brief Sentinel representing nil */ } bu_rb_tree; -#define BU_RB_TREE_NULL ((bu_rb_tree *) 0) +#define BU_RB_TREE_NULL ((bu_rb_tree *) 0) /* * Debug bit flags for member rbt_debug */ -#define BU_RB_DEBUG_INSERT 0x00000001 /**< @brief Insertion process */ -#define BU_RB_DEBUG_UNIQ 0x00000002 /**< @brief Uniqueness of inserts */ -#define BU_RB_DEBUG_ROTATE 0x00000004 /**< @brief Rotation process */ -#define BU_RB_DEBUG_OS 0x00000008 /**< @brief Order-statistic operations */ -#define BU_RB_DEBUG_DELETE 0x00000010 /**< @brief Deletion process */ +#define BU_RB_DEBUG_INSERT 0x00000001 /**< @brief Insertion process */ +#define BU_RB_DEBUG_UNIQ 0x00000002 /**< @brief Uniqueness of inserts */ +#define BU_RB_DEBUG_ROTATE 0x00000004 /**< @brief Rotation process */ +#define BU_RB_DEBUG_OS 0x00000008 /**< @brief Order-statistic operations */ +#define BU_RB_DEBUG_DELETE 0x00000010 /**< @brief Deletion process */ /** * B U _ R B _ P A C K A G E @@ -1774,12 +1773,12 @@ */ struct bu_rb_package { - unsigned long rbp_magic; /**< @brief Magic no. for integrity check */ - struct bu_rb_node **rbp_node; /**< @brief Containing nodes */ - struct bu_rb_list *rbp_list_pos; /**< @brief Place in the list of all pkgs. */ - void *rbp_data; /**< @brief Application data */ + unsigned long rbp_magic; /**< @brief Magic no. for integrity check */ + struct bu_rb_node **rbp_node; /**< @brief Containing nodes */ + struct bu_rb_list *rbp_list_pos; /**< @brief Place in the list of all pkgs. */ + void *rbp_data; /**< @brief Application data */ }; -#define BU_RB_PKG_NULL ((struct bu_rb_package *) 0) +#define BU_RB_PKG_NULL ((struct bu_rb_package *) 0) /** * B U _ R B _ N O D E @@ -1792,35 +1791,35 @@ */ struct bu_rb_node { - unsigned long rbn_magic; /**< @brief Magic no. for integrity check */ - bu_rb_tree *rbn_tree; /**< @brief Tree containing this node */ - struct bu_rb_node **rbn_parent; /**< @brief Parents */ - struct bu_rb_node **rbn_left; /**< @brief Left subtrees */ - struct bu_rb_node **rbn_right; /**< @brief Right subtrees */ - char *rbn_color; /**< @brief Colors of this node */ - int *rbn_size; /**< @brief Sizes of subtrees rooted here */ - struct bu_rb_package **rbn_package; /**< @brief Contents of this node */ - int rbn_pkg_refs; /**< @brief How many orders are being used? */ - struct bu_rb_list *rbn_list_pos; /**< @brief Place in the list of all nodes */ + unsigned long rbn_magic; /**< @brief Magic no. for integrity check */ + bu_rb_tree *rbn_tree; /**< @brief Tree containing this node */ + struct bu_rb_node **rbn_parent; /**< @brief Parents */ + struct bu_rb_node **rbn_left; /**< @brief Left subtrees */ + struct bu_rb_node **rbn_right; /**< @brief Right subtrees */ + char *rbn_color; /**< @brief Colors of this node */ + int *rbn_size; /**< @brief Sizes of subtrees rooted here */ + struct bu_rb_package **rbn_package; /**< @brief Contents of this node */ + int rbn_pkg_refs; /**< @brief How many orders are being used? */ + struct bu_rb_list *rbn_list_pos; /**< @brief Place in the list of all nodes */ }; -#define BU_RB_NODE_NULL ((struct bu_rb_node *) 0) +#define BU_RB_NODE_NULL ((struct bu_rb_node *) 0) /* * Applications interface to bu_rb_extreme() */ -#define SENSE_MIN 0 -#define SENSE_MAX 1 -#define bu_rb_min(t, o) bu_rb_extreme((t), (o), SENSE_MIN) -#define bu_rb_max(t, o) bu_rb_extreme((t), (o), SENSE_MAX) +#define SENSE_MIN 0 +#define SENSE_MAX 1 +#define bu_rb_min(t, o) bu_rb_extreme((t), (o), SENSE_MIN) +#define bu_rb_max(t, o) bu_rb_extreme((t), (o), SENSE_MAX) #define bu_rb_pred(t, o) bu_rb_neighbor((t), (o), SENSE_MIN) #define bu_rb_succ(t, o) bu_rb_neighbor((t), (o), SENSE_MAX) /* * Applications interface to bu_rb_walk() */ -#define PREORDER 0 -#define INORDER 1 -#define POSTORDER 2 +#define PREORDER 0 +#define INORDER 1 +#define POSTORDER 2 /** @@ -1831,7 +1830,7 @@ struct bu_vls observer; struct bu_vls cmd; }; -#define BU_OBSERVER_NULL ((struct bu_observer *)0) +#define BU_OBSERVER_NULL ((struct bu_observer *)0) /** * B U _ C M D T A B @@ -1893,9 +1892,9 @@ * pair. * * Returns - - * 0 some error occured - * 1 existing attribute updated with new value - * 2 set extended with new attribute/value pair + * 0 some error occured + * 1 existing attribute updated with new value + * 2 set extended with new attribute/value pair */ BU_EXPORT BU_EXTERN(int bu_avs_add, (struct bu_attribute_value_set *avp, @@ -2123,21 +2122,11 @@ /** @{ */ /* color.c */ -BU_EXPORT BU_EXTERN(void bu_rgb_to_hsv, - (unsigned char *rgb, - fastf_t *hsv)); -BU_EXPORT BU_EXTERN(int bu_hsv_to_rgb, - (fastf_t *hsv, - unsigned char *rgb)); -BU_EXPORT BU_EXTERN(int bu_str_to_rgb, - (char *str, - unsigned char *rgb)); -BU_EXPORT BU_EXTERN(int bu_color_from_rgb_floats, - (struct bu_color *cp, - fastf_t *rgb)); -BU_EXPORT BU_EXTERN(int bu_color_to_rgb_floats, - (struct bu_color *cp, - fastf_t *rgb)); +BU_EXPORT BU_EXTERN(void bu_rgb_to_hsv, (unsigned char *rgb, fastf_t *hsv)); +BU_EXPORT BU_EXTERN(int bu_hsv_to_rgb, (fastf_t *hsv, unsigned char *rgb)); +BU_EXPORT BU_EXTERN(int bu_str_to_rgb, (char *str, unsigned char *rgb)); +BU_EXPORT BU_EXTERN(int bu_color_from_rgb_floats, (struct bu_color *cp, fastf_t *rgb)); +BU_EXPORT BU_EXTERN(int bu_color_to_rgb_floats, (struct bu_color *cp, fastf_t *rgb)); /* UNIMPLEMENTED * @@ -2161,12 +2150,12 @@ /** @{ */ /* stat.c */ -BU_EXPORT BU_EXTERN(int bu_file_exists, (const char *path)); -BU_EXPORT BU_EXTERN(int bu_same_file, (const char *fn1, const char *fn2)); -BU_EXPORT BU_EXTERN(int bu_same_fd, (int fd1, int fd2)); -BU_EXPORT BU_EXTERN(int bu_file_readable, (const char *path)); -BU_EXPORT BU_EXTERN(int bu_file_writable, (const char *path)); -BU_EXPORT BU_EXTERN(int bu_file_executable, (const char *path)); +BU_EXPORT BU_EXTERN(int bu_file_exists, (const char *path)); +BU_EXPORT BU_EXTERN(int bu_same_file, (const char *fn1, const char *fn2)); +BU_EXPORT BU_EXTERN(int bu_same_fd, (int fd1, int fd2)); +BU_EXPORT BU_EXTERN(int bu_file_readable, (const char *path)); +BU_EXPORT BU_EXTERN(int bu_file_writable, (const char *path)); +BU_EXPORT BU_EXTERN(int bu_file_executable, (const char *path)); /* fnmatch.c */ BU_EXPORT BU_EXTERN(int bu_fnmatch, (const char *, const char *, int)); @@ -2230,9 +2219,9 @@ * current directory * * @return - * A STATIC buffer is returned. - * It is the caller's responsibility to call bu_strdup() or make - * other provisions to save the returned string, before calling again. + * A STATIC buffer is returned. It is the caller's responsibility to + * call bu_strdup() or make other provisions to save the returned + * string, before calling again. */ BU_EXPORT BU_EXTERN(const char *bu_brlcad_root, (const char *rhs, int fail_quietly)); @@ -2251,9 +2240,9 @@ * bu_brlcad_root path * current directory * - * A STATIC buffer is returned. - * It is the caller's responsibility to call bu_strdup() or make - * other provisions to save the returned string, before calling again. + * A STATIC buffer is returned. It is the caller's responsibility to + * call bu_strdup() or make other provisions to save the returned + * string, before calling again. */ BU_EXPORT BU_EXTERN(const char *bu_brlcad_data, (const char *rhs, int fail_quietly)); @@ -2274,33 +2263,21 @@ /** @{ */ /* getopt.c */ -BU_EXPORT extern int bu_opterr; -BU_EXPORT extern int bu_optind; -BU_EXPORT extern int bu_optopt; -BU_EXPORT extern char * bu_optarg; -BU_EXPORT BU_EXTERN(int bu_getopt, - (int nargc, char * const nargv[], - const char *ostr)); +BU_EXPORT extern int bu_opterr; +BU_EXPORT extern int bu_optind; +BU_EXPORT extern int bu_optopt; +BU_EXPORT extern char * bu_optarg; +BU_EXPORT BU_EXTERN(int bu_getopt, (int nargc, char * const nargv[], const char *ostr)); /** @} */ /** @addtogroup bu_hist */ /** @{ */ /* hist.c */ -BU_EXPORT BU_EXTERN(void bu_hist_free, - (struct bu_hist *histp)); -BU_EXPORT BU_EXTERN(void bu_hist_init, - (struct bu_hist *histp, - fastf_t min, - fastf_t max, - unsigned int nbins)); -BU_EXPORT BU_EXTERN(void bu_hist_range, - (struct bu_hist *hp, - fastf_t low, - fastf_t high)); -BU_EXPORT BU_EXTERN(void bu_hist_pr, - (const struct bu_hist *histp, - const char *title)); +BU_EXPORT BU_EXTERN(void bu_hist_free, (struct bu_hist *histp)); +BU_EXPORT BU_EXTERN(void bu_hist_init, (struct bu_hist *histp, fastf_t min, fastf_t max, unsigned int nbins)); +BU_EXPORT BU_EXTERN(void bu_hist_range, (struct bu_hist *hp, fastf_t low, fastf_t high)); +BU_EXPORT BU_EXTERN(void bu_hist_pr, (const struct bu_hist *histp, const char *title)); /** @} */ /** @addtogroup hton */ @@ -2331,7 +2308,7 @@ /** @{ */ /* ispar.c */ -BU_EXPORT BU_EXTERN(int bu_is_parallel, +BU_EXPORT BU_EXTERN(int bu_is_parallel, ()); BU_EXPORT BU_EXTERN(void bu_kill_parallel, ()); @@ -2418,16 +2395,10 @@ * --- END EXAMPLE --- * */ -BU_EXPORT BU_EXTERN(void bu_log_indent_delta, - (int delta)); -BU_EXPORT BU_EXTERN(void bu_log_indent_vls, - (struct bu_vls *v)); -BU_EXPORT BU_EXTERN(void bu_log_add_hook, - (bu_hook_t func, - genptr_t clientdata)); -BU_EXPORT BU_EXTERN(void bu_log_delete_hook, - (bu_hook_t func, - genptr_t clientdata)); +BU_EXPORT BU_EXTERN(void bu_log_indent_delta, (int delta)); +BU_EXPORT BU_EXTERN(void bu_log_indent_vls, (struct bu_vls *v)); +BU_EXPORT BU_EXTERN(void bu_log_add_hook, (bu_hook_t func, genptr_t clientdata)); +BU_EXPORT BU_EXTERN(void bu_log_delete_hook, (bu_hook_t func, genptr_t clientdata)); BU_EXPORT BU_EXTERN(void bu_putchar, (int c)); BU_EXPORT BU_EXTERN(void bu_log, (const char *, ... )) __BU_ATTR_FORMAT12; BU_EXPORT BU_EXTERN(void bu_flog, (FILE *, const char *, ... )) __BU_ATTR_FORMAT23; @@ -2438,9 +2409,9 @@ /** @{ */ /* malloc.c */ -BU_EXPORT extern long bu_n_malloc; -BU_EXPORT extern long bu_n_free; -BU_EXPORT extern long bu_n_realloc; +BU_EXPORT extern long bu_n_malloc; +BU_EXPORT extern long bu_n_free; +BU_EXPORT extern long bu_n_realloc; BU_EXPORT BU_EXTERN(genptr_t bu_malloc, (size_t siz, const char *str)); @@ -2467,7 +2438,7 @@ (int nbytes)); BU_EXPORT BU_EXTERN(void bu_ck_malloc_ptr, (genptr_t ptr, const char *str)); -BU_EXPORT BU_EXTERN(int bu_mem_barriercheck, +BU_EXPORT BU_EXTERN(int bu_mem_barriercheck, ()); /** @} */ @@ -2624,7 +2595,7 @@ int len, const char *str)); BU_EXPORT BU_EXTERN(void bu_ptbl_reset, - (struct bu_ptbl *b)); + (struct bu_ptbl *b)); BU_EXPORT BU_EXTERN(int bu_ptbl_ins, (struct bu_ptbl *b, long *p)); @@ -2646,7 +2617,7 @@ (struct bu_ptbl *dest, const struct bu_ptbl *src)); BU_EXPORT BU_EXTERN(void bu_ptbl_free, - (struct bu_ptbl *b)); + (struct bu_ptbl *b)); BU_EXPORT BU_EXTERN(int bu_ptbl, (struct bu_ptbl *b, int func, long *p)); @@ -2664,44 +2635,44 @@ /* rb_create.c */ BU_EXPORT BU_EXTERN(bu_rb_tree *bu_rb_create, - (char *description, - int nm_orders, - int (**order_funcs)())); + (char *description, + int nm_orders, + int (**order_funcs)())); BU_EXPORT BU_EXTERN(bu_rb_tree *bu_rb_create1, - (char *description, - int (*order_func)())); + (char *description, + int (*order_func)())); /* rb_delete.c */ BU_EXPORT BU_EXTERN(void bu_rb_delete, - (bu_rb_tree *tree, - int order)); -#define bu_rb_delete1(t) bu_rb_delete((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_delete1(t) bu_rb_delete((t), 0) /* rb_diag.c */ BU_EXPORT BU_EXTERN(void bu_rb_diagnose_tree, - (bu_rb_tree *tree, - int order, - int trav_type)); + (bu_rb_tree *tree, + int order, + int trav_type)); BU_EXPORT BU_EXTERN(void bu_rb_summarize_tree, - (bu_rb_tree *tree)); + (bu_rb_tree *tree)); /* rb_extreme.c */ BU_EXPORT BU_EXTERN(void *bu_rb_curr, - (bu_rb_tree *tree, - int order)); -#define bu_rb_curr1(t) bu_rb_curr((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_curr1(t) bu_rb_curr((t), 0) BU_EXPORT BU_EXTERN(void *bu_rb_extreme, - (bu_rb_tree *tree, - int order, - int sense)); + (bu_rb_tree *tree, + int order, + int sense)); BU_EXPORT BU_EXTERN(void *bu_rb_neighbor, - (bu_rb_tree *tree, - int order, - int sense)); + (bu_rb_tree *tree, + int order, + int sense)); /* rb_free.c */ BU_EXPORT BU_EXTERN(void bu_rb_free, - (bu_rb_tree *tree, - void (*free_data)())); -#define BU_RB_RETAIN_DATA ((void (*)()) 0) -#define bu_rb_free1(t, f) \ + (bu_rb_tree *tree, + void (*free_data)())); +#define BU_RB_RETAIN_DATA ((void (*)()) 0) +#define bu_rb_free1(t, f) \ { \ BU_CKMAG((t), BU_RB_TREE_MAGIC, "red-black tree"); \ bu_free((char *) ((t) -> rbt_order), \ @@ -2710,53 +2681,53 @@ } /* rb_insert.c */ BU_EXPORT BU_EXTERN(int bu_rb_insert, - (bu_rb_tree *tree, - void *data)); + (bu_rb_tree *tree, + void *data)); BU_EXPORT BU_EXTERN(int bu_rb_is_uniq, - (bu_rb_tree *tree, - int order)); -#define bu_rb_is_uniq1(t) bu_rb_is_uniq((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_is_uniq1(t) bu_rb_is_uniq((t), 0) BU_EXPORT BU_EXTERN(void bu_rb_set_uniqv, - (bu_rb_tree *tree, - bitv_t vec)); + (bu_rb_tree *tree, + bitv_t vec)); BU_EXPORT BU_EXTERN(void bu_rb_uniq_all_off, - (bu_rb_tree *tree)); + (bu_rb_tree *tree)); BU_EXPORT BU_EXTERN(void bu_rb_uniq_all_on, - (bu_rb_tree *tree)); + (bu_rb_tree *tree)); BU_EXPORT BU_EXTERN(int bu_rb_uniq_off, - (bu_rb_tree *tree, - int order)); -#define bu_rb_uniq_off1(t) bu_rb_uniq_off((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_uniq_off1(t) bu_rb_uniq_off((t), 0) BU_EXPORT BU_EXTERN(int bu_rb_uniq_on, - (bu_rb_tree *tree, - int order)); -#define bu_rb_uniq_on1(t) bu_rb_uniq_on((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_uniq_on1(t) bu_rb_uniq_on((t), 0) /* rb_order_stats.c */ BU_EXPORT BU_EXTERN(int bu_rb_rank, - (bu_rb_tree *tree, - int order)); -#define bu_rb_rank1(t) bu_rb_rank1((t), 0) + (bu_rb_tree *tree, + int order)); +#define bu_rb_rank1(t) bu_rb_rank1((t), 0) BU_EXPORT BU_EXTERN(void *bu_rb_select, - (bu_rb_tree *tree, - int order, - int k)); -#define bu_rb_select1(t, k) bu_rb_select((t), 0, (k)) + (bu_rb_tree *tree, + int order, + int k)); +#define bu_rb_select1(t, k) bu_rb_select((t), 0, (k)) /* rb_search.c */ BU_EXPORT BU_EXTERN(void *bu_rb_search, - (bu_rb_tree *tree, - int order, - void *data)); -#define bu_rb_search1(t, d) bu_rb_search((t), 0, (d)) + (bu_rb_tree *tree, + int order, + void *data)); +#define bu_rb_search1(t, d) bu_rb_search((t), 0, (d)) /* rb_walk.c */ BU_EXPORT BU_EXTERN(void bu_rb_walk, - (bu_rb_tree *tree, - int order, - void (*visit)(), - int trav_type)); -#define bu_rb_walk1(t, v, d) bu_rb_walk((t), 0, (v), (d)) + (bu_rb_tree *tree, + int order, + void (*visit)(), + int trav_type)); +#define bu_rb_walk1(t, v, d) bu_rb_walk((t), 0, (v), (d)) /** @} */ /** @addtogroup thread */ @@ -2986,111 +2957,111 @@ BU_EXPORT BU_EXTERN(void bu_tcl_structparse_get_terse_form, - (Tcl_Interp *interp, + (Tcl_Interp *interp, const struct bu_structparse *sp)); BU_EXPORT BU_EXTERN(int bu_tcl_structparse_argv, - (Tcl_Interp *interp, - int argc, - char **argv, - const struct bu_structparse *desc, - char *base)); + (Tcl_Interp *interp, + int argc, + char **argv, + const struct bu_structparse *desc, + char *base)); BU_EXPORT BU_EXTERN(int bu_tcl_mem_barriercheck, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_ck_malloc_ptr, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_malloc_len_roundup, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_prmem, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_printb, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_get_value_by_keyword, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_get_all_keyword_values, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_rgb_to_hsv, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_hsv_to_rgb, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_key_eq_to_key_val, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_shader_to_key_val, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_key_val_to_key_eq, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_shader_to_key_eq, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_brlcad_root, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_brlcad_data, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(int bu_tcl_units_conversion, - (ClientData clientData, - Tcl_Interp *interp, - int argc, - const char **argv)); + (ClientData clientData, + Tcl_Interp *interp, + int argc, + const char **argv)); BU_EXPORT BU_EXTERN(void bu_tcl_setup, (Tcl_Interp *interp)); @@ -3104,41 +3075,41 @@ /** @{ */ /* lex.c */ -#define BU_LEX_ANY 0 /* pseudo type */ +#define BU_LEX_ANY 0 /* pseudo type */ struct bu_lex_t_int { int type; int value; }; -#define BU_LEX_INT 1 +#define BU_LEX_INT 1 struct bu_lex_t_dbl { - int type; - double value; + int type; + double value; }; -#define BU_LEX_DOUBLE 2 +#define BU_LEX_DOUBLE 2 struct bu_lex_t_key { - int type; - int value; + int type; + int value; }; -#define BU_LEX_SYMBOL 3 -#define BU_LEX_KEYWORD 4 +#define BU_LEX_SYMBOL 3 +#define BU_LEX_KEYWORD 4 struct bu_lex_t_id { - int type; - char *value; + int type; + char *value; }; -#define BU_LEX_IDENT 5 -#define BU_LEX_NUMBER 6 /* Pseudo type */ +#define BU_LEX_IDENT 5 +#define BU_LEX_NUMBER 6 /* Pseudo type */ union bu_lex_token { - int type; - struct bu_lex_t_int t_int; - struct bu_lex_t_dbl t_dbl; - struct bu_lex_t_key t_key; - struct bu_lex_t_id t_id; + int type; + struct bu_lex_t_int t_int; + struct bu_lex_t_dbl t_dbl; + struct bu_lex_t_key t_key; + struct bu_lex_t_id t_id; }; struct bu_lex_key { - int tok_val; - char *string; + int tok_val; + char *string; }; -#define BU_LEX_NEED_MORE 0 +#define BU_LEX_NEED_MORE 0 BU_EXPORT BU_EXTERN(int bu_lex, (union bu_lex_token *token, @@ -3298,8 +3269,7 @@ * This call presumes the array has been allocated with bu_dup_argv() * or bu_argv_from_path(). */ -BU_EXPORT BU_EXTERN(void bu_free_argv, - (int argc, char *argv[])); +BU_EXPORT BU_EXTERN(void bu_free_argv, (int argc, char *argv[])); /** * Dynamically duplicate an argv array and all elements in the array @@ -3309,8 +3279,7 @@ * returned including all elements in the array by calling bu_free() * or bu_free_argv(). */ -BU_EXPORT BU_EXTERN(char **bu_dup_argv, - (int argc, const char *argv[])); +BU_EXPORT BU_EXTERN(char **bu_dup_argv, (int argc, const char *argv[])); /** * Combine two argv arrays into one new (duplicated) argv array. @@ -3322,8 +3291,7 @@ * the insert argument is the position where the insertArgv array * elements will be merged with the specified argv array. */ -BU_EXPORT BU_EXTERN(char **bu_dupinsert_argv, - (int insert, int insertArgc, const char *insertArgv[], int argc, const char *argv[])); +BU_EXPORT BU_EXTERN(char **bu_dupinsert_argv, (int insert, int insertArgc, const char *insertArgv[], int argc, const char *argv[])); /** * Generate an argv array from a path @@ -3334,8 +3302,7 @@ * as all elements in the array using bu_free_argv() or manually * calling bu_free(). */ -BU_EXPORT BU_EXTERN(char **bu_argv_from_path, - (const char *path, int *ac)); +BU_EXPORT BU_EXTERN(char **bu_argv_from_path, (const char *path, int *ac)); /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-04 15:38:47
|
Revision: 36149 http://brlcad.svn.sourceforge.net/brlcad/?rev=36149&view=rev Author: brlcad Date: 2009-10-04 15:38:40 +0000 (Sun, 04 Oct 2009) Log Message: ----------- cleanup, though much more to come. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-10-04 04:21:25 UTC (rev 36148) +++ brlcad/trunk/include/bu.h 2009-10-04 15:38:40 UTC (rev 36149) @@ -207,7 +207,7 @@ * * @def BU_GETUNION(ptr, union_type) * Allocate storage for a union -*/ + */ #define BU_GETSTRUCT(_p, _str) \ _p = (struct _str *)bu_calloc(1, sizeof(struct _str), #_str " (getstruct)" BU_FLSTR) #define BU_GETUNION(_p, _unn) \ @@ -222,7 +222,7 @@ * for typedef'ed objects. */ #define BU_GETTYPE(_p, _type) \ - _p = (_type *)bu_calloc(1, sizeof(_type), #_type " (gettype)" ) + _p = (_type *)bu_calloc(1, sizeof(_type), #_type " (gettype)") /** @@ -250,9 +250,9 @@ # define BU_ASSERT(_equation) #else # define BU_ASSERT(_equation) \ - if ( !(_equation) ) { \ - bu_log("BU_ASSERT( " #_equation " ) failed, file %s, line %d\n", \ - __FILE__, __LINE__ ); \ + if (!(_equation)) { \ + bu_log("BU_ASSERT(" #_equation ") failed, file %s, line %d\n", \ + __FILE__, __LINE__); \ bu_bomb("BU_ASSERT failure\n"); \ } #endif @@ -261,10 +261,10 @@ # define BU_ASSERT_PTR(_lhs, _relation, _rhs) #else # define BU_ASSERT_PTR(_lhs, _relation, _rhs) \ - if ( !((_lhs) _relation (_rhs)) ) { \ - bu_log("BU_ASSERT_PTR( " #_lhs #_relation #_rhs " ) failed, lhs=x%lx, rhs=x%lx, file %s, line %d\n", \ + if (!((_lhs) _relation (_rhs))) { \ + bu_log("BU_ASSERT_PTR(" #_lhs #_relation #_rhs ") failed, lhs=x%lx, rhs=x%lx, file %s, line %d\n", \ (long)(_lhs), (long)(_rhs), \ - __FILE__, __LINE__ ); \ + __FILE__, __LINE__); \ bu_bomb("BU_ASSERT_PTR failure\n"); \ } #endif @@ -274,10 +274,10 @@ # define BU_ASSERT_LONG(_lhs, _relation, _rhs) #else # define BU_ASSERT_LONG(_lhs, _relation, _rhs) \ - if ( !((_lhs) _relation (_rhs)) ) { \ - bu_log("BU_ASSERT_LONG( " #_lhs #_relation #_rhs " ) failed, lhs=%ld, rhs=%ld, file %s, line %d\n", \ + if (!((_lhs) _relation (_rhs))) { \ + bu_log("BU_ASSERT_LONG(" #_lhs #_relation #_rhs ") failed, lhs=%ld, rhs=%ld, file %s, line %d\n", \ (long)(_lhs), (long)(_rhs), \ - __FILE__, __LINE__ ); \ + __FILE__, __LINE__); \ bu_bomb("BU_ASSERT_LONG failure\n"); \ } #endif @@ -287,10 +287,10 @@ # define BU_ASSERT_DOUBLE(_lhs, _relation, _rhs) #else # define BU_ASSERT_DOUBLE(_lhs, _relation, _rhs) \ - if ( !((_lhs) _relation (_rhs)) ) { \ - bu_log("BU_ASSERT_DOUBLE( " #_lhs #_relation #_rhs " ) failed, lhs=%lf, rhs=%lf, file %s, line %d\n", \ + if (!((_lhs) _relation (_rhs))) { \ + bu_log("BU_ASSERT_DOUBLE(" #_lhs #_relation #_rhs ") failed, lhs=%lf, rhs=%lf, file %s, line %d\n", \ (double)(_lhs), (double)(_rhs), \ - __FILE__, __LINE__ ); \ + __FILE__, __LINE__); \ bu_bomb("BU_ASSERT_DOUBLE failure\n"); \ } #endif @@ -497,34 +497,34 @@ * --- BEGIN EXAMPLE --- * @code - // make bu_list the first element in your structure - struct my_structure { - struct bu_list l; - int my_data; - }; + // make bu_list the first element in your structure + struct my_structure { + struct bu_list l; + int my_data; + }; - // your actual list - struct my_structure *my_list = NULL; + // your actual list + struct my_structure *my_list = NULL; - // allocate and initialize your list head - BU_GETSTRUCT(my_list, my_structure); - BU_LIST_INIT(&(my_list->l)); - my_list->my_data = -1; + // allocate and initialize your list head + BU_GETSTRUCT(my_list, my_structure); + BU_LIST_INIT(&(my_list->l)); + my_list->my_data = -1; - // add a new element to your list - struct my_structure *new_entry; - BU_GETSTRUCT(new_entry, my_structure); - new_entry->my_data = rand(); - BU_LIST_PUSH(&(my_list->l), &(new_entry->l)); + // add a new element to your list + struct my_structure *new_entry; + BU_GETSTRUCT(new_entry, my_structure); + new_entry->my_data = rand(); + BU_LIST_PUSH(&(my_list->l), &(new_entry->l)); - // iterate over your list, remove all items - struct my_structure *entry; - while (BU_LIST_WHILE(entry, my_structure, &(my_list->l))) { - bu_log("Entry value is %d\n", entry->my_data); - BU_LIST_DEQUEUE(&(entry->l)); - bu_free(entry, "free my_structure entry"); - } - bu_free(my_list, "free my_structure list head"); + // iterate over your list, remove all items + struct my_structure *entry; + while (BU_LIST_WHILE(entry, my_structure, &(my_list->l))) { + bu_log("Entry value is %d\n", entry->my_data); + BU_LIST_DEQUEUE(&(entry->l)); + bu_free(entry, "free my_structure entry"); + } + bu_free(my_list, "free my_structure list head"); * @endcode * --- END EXAMPLE --- @@ -542,9 +542,10 @@ * user "magic" numbers, as long as the head is properly marked. * * There is a dual set of terminology used in some of the macros: - * FIRST / LAST from the point of view of the list head - * NEXT / PREV from the point of view of a list member - * forw / back the actual pointer names + * + * FIRST/ LAST - from the point of view of the list head + * NEXT / PREV - from the point of view of a list member + * forw / back - the actual pointer names */ /**@{*/ @@ -560,22 +561,22 @@ BU_EXPORT BU_EXTERN(struct bu_list *bu_list_new, ()); BU_EXPORT BU_EXTERN(struct bu_list *bu_list_pop, (struct bu_list *hp)); -#define BU_LIST_CLOSE( hp ) { \ - BU_ASSERT( (hp) != NULL ); \ - if ( (hp) == NULL ) \ +#define BU_LIST_CLOSE(hp) { \ + BU_ASSERT((hp) != NULL); \ + if ((hp) == NULL) \ return; \ - BU_ASSERT( BU_LIST_IS_EMPTY( (hp) ) ); \ - bu_list_free( (hp) ); \ - bu_free( (char *)(hp), "bu_list head" ); \ + BU_ASSERT(BU_LIST_IS_EMPTY((hp))); \ + bu_list_free((hp)); \ + bu_free((char *)(hp), "bu_list head"); \ } /** * Insert "new" item in front of "old" item. Often, "old" is the * head. To put the new item at the tail of the list, insert before - * the head, e.g. * BU_LIST_INSERT( &(head.l), &((p)->l) ); + * the head, e.g. * BU_LIST_INSERT(&(head.l), &((p)->l)); */ -#define BU_LIST_INSERT(old, new) { \ +#define BU_LIST_INSERT(old, new) { \ (new)->back = (old)->back; \ (old)->back = (new); \ (new)->forw = (old); \ @@ -584,9 +585,9 @@ /** * Append "new" item after "old" item. Often, "old" is the head. To * put the new item at the head of the list, append after the head, - * e.g. * BU_LIST_APPEND( &(head.l), &((p)->l) ); + * e.g. * BU_LIST_APPEND(&(head.l), &((p)->l)); */ -#define BU_LIST_APPEND(old, new) { \ +#define BU_LIST_APPEND(old, new) { \ (new)->forw = (old)->forw; \ (new)->back = (old); \ (old)->forw = (new); \ @@ -595,7 +596,7 @@ /** * Dequeue "cur" item from anywhere in doubly-linked list */ -#define BU_LIST_DEQUEUE(cur) { \ +#define BU_LIST_DEQUEUE(cur) { \ (cur)->forw->back = (cur)->back; \ (cur)->back->forw = (cur)->forw; \ (cur)->forw = (cur)->back = BU_LIST_NULL; /* sanity */ } @@ -610,17 +611,17 @@ #define BU_LIST_DQ_T(cur, type) (\ (cur)->forw->back = (cur)->back, \ (cur)->back->forw = (cur)->forw, \ - (type *)(cur) ) + (type *)(cur)) /** * This version of BU_LIST_DEQUEUE uses the comma operator inorder to * return a typecast version of the dequeued pointer */ -#define BU_LIST_DEQUEUE_T( cur, type ) (\ +#define BU_LIST_DEQUEUE_T(cur, type) (\ (cur)->forw->back = (cur)->back, \ (cur)->back->forw = (cur)->forw, \ (cur)->forw = (cur)->back = BU_LIST_NULL, \ - (type *)(cur) ) + (type *)(cur)) /** @@ -644,8 +645,8 @@ (p) = (struct structure *) 0; \ } -#define BU_LIST_POP_T(hp, type ) \ - (type *)bu_list_pop( hp ) +#define BU_LIST_POP_T(hp, type) \ + (type *)bu_list_pop(hp) /** * "Bulk transfer" all elements from the list headed by src_hd onto @@ -656,7 +657,7 @@ * BU_LIST_APPEND_LIST places src_hd elements at end of dest_hd list. */ #define BU_LIST_INSERT_LIST(dest_hp, src_hp) \ - if ( BU_LIST_NON_EMPTY(src_hp) ) { \ + if (BU_LIST_NON_EMPTY(src_hp)) { \ register struct bu_list *_first = (src_hp)->forw; \ register struct bu_list *_last = (src_hp)->back; \ (dest_hp)->forw->back = _last; \ @@ -667,7 +668,7 @@ } #define BU_LIST_APPEND_LIST(dest_hp, src_hp) \ - if ( BU_LIST_NON_EMPTY(src_hp) ) {\ + if (BU_LIST_NON_EMPTY(src_hp)) {\ register struct bu_list *_first = (src_hp)->forw; \ register struct bu_list *_last = (src_hp)->back; \ _first->back = (dest_hp)->back; \ @@ -691,10 +692,10 @@ /* Handle list initialization */ #define BU_LIST_UNINITIALIZED(hp) ((hp)->forw == BU_LIST_NULL) #define BU_LIST_IS_INITIALIZED(hp) ((hp)->forw != BU_LIST_NULL) -#define BU_LIST_INIT(hp) { \ +#define BU_LIST_INIT(hp) { \ (hp)->forw = (hp)->back = (hp); \ (hp)->magic = BU_LIST_HEAD_MAGIC; /* used by circ. macros */ } -#define BU_LIST_MAGIC_SET(hp, val) {(hp)->magic = (val);} +#define BU_LIST_MAGIC_SET(hp, val) {(hp)->magic = (val);} #define BU_LIST_MAGIC_OK(hp, val) ((hp)->magic == (val)) #define BU_LIST_MAGIC_WRONG(hp, val) ((hp)->magic != (val)) @@ -721,7 +722,7 @@ (((struct bu_list *)(p)) == (hp)) #define BU_LIST_NOT_HEAD(p, hp) \ (((struct bu_list *)(p)) != (hp)) -#define BU_CK_LIST_HEAD( _p ) BU_CKMAG( (_p), BU_LIST_HEAD_MAGIC, "bu_list") +#define BU_CK_LIST_HEAD(_p) BU_CKMAG((_p), BU_LIST_HEAD_MAGIC, "bu_list") /** * Boolean test to see if previous list element is the head @@ -739,26 +740,26 @@ #define BU_LIST_NEXT_NOT_HEAD(p, hp) \ (((struct bu_list *)(p))->forw != (hp)) -#define BU_LIST_EACH( hp, p, type ) \ - for ( (p)=(type *)BU_LIST_FIRST(bu_list, hp); \ +#define BU_LIST_EACH(hp, p, type) \ + for ((p)=(type *)BU_LIST_FIRST(bu_list, hp); \ (p) && BU_LIST_NOT_HEAD(p, hp); \ - (p)=(type *)BU_LIST_PNEXT(bu_list, p) ) \ + (p)=(type *)BU_LIST_PNEXT(bu_list, p)) \ -#define BU_LIST_REVEACH( hp, p, type ) \ - for ( (p)=(type *)BU_LIST_LAST(bu_list, hp); \ +#define BU_LIST_REVEACH(hp, p, type) \ + for ((p)=(type *)BU_LIST_LAST(bu_list, hp); \ (p) && BU_LIST_NOT_HEAD(p, hp); \ - (p)=(type *)BU_LIST_PREV(bu_list, ((struct bu_list *)(p))) ) \ + (p)=(type *)BU_LIST_PREV(bu_list, ((struct bu_list *)(p)))) \ -#define BU_LIST_TAIL( hp, start, p, type ) \ - for ( (p)=(type *)start; \ +#define BU_LIST_TAIL(hp, start, p, type) \ + for ((p)=(type *)start; \ (p) && BU_LIST_NOT_HEAD(p, hp); \ - (p)=(type *)BU_LIST_PNEXT(bu_list, (p)) ) + (p)=(type *)BU_LIST_PNEXT(bu_list, (p))) /** * Intended as innards for a for loop to visit all nodes on list, e.g.: * - * for ( BU_LIST_FOR( p, structure, hp ) ) { - * work_on( p ); + * for (BU_LIST_FOR(p, structure, hp)) { + * work_on(p); * } */ #define BU_LIST_FOR(p, structure, hp) \ @@ -784,8 +785,8 @@ * Intended as innards for a for loop to visit elements of two lists * in tandem, e.g.: * - * for (BU_LIST_FOR2(p1, p2, structure, hp1, hp2) ) { - * process( p1, p2 ); + * for (BU_LIST_FOR2(p1, p2, structure, hp1, hp2)) { + * process(p1, p2); * } */ #define BU_LIST_FOR2(p1, p2, structure, hp1, hp2) \ @@ -801,9 +802,9 @@ * element. Useful mostly for a loop that will dequeue every list * element, e.g.: * - * while ( BU_LIST_WHILE(p, structure, hp) ) { - *@n BU_LIST_DEQUEUE( &(p->l) ); - *@n free( (char *)p ); + * while (BU_LIST_WHILE(p, structure, hp)) { + *@n BU_LIST_DEQUEUE(&(p->l)); + *@n free((char *)p); *@n } */ #define BU_LIST_WHILE(p, structure, hp) \ @@ -841,7 +842,7 @@ #define BU_LIST_PNEXT_CIRC(structure, p) \ ((BU_LIST_FIRST_MAGIC((struct bu_list *)(p)) == BU_LIST_HEAD_MAGIC) ? \ BU_LIST_PNEXT_PNEXT(structure, (struct bu_list *)(p)) : \ - BU_LIST_PNEXT(structure, p) ) + BU_LIST_PNEXT(structure, p)) /** * Return pointer to circular last element; ie, ignoring the list head @@ -849,7 +850,7 @@ #define BU_LIST_PPREV_CIRC(structure, p) \ ((BU_LIST_LAST_MAGIC((struct bu_list *)(p)) == BU_LIST_HEAD_MAGIC) ? \ BU_LIST_PLAST_PLAST(structure, (struct bu_list *)(p)) : \ - BU_LIST_PLAST(structure, p) ) + BU_LIST_PLAST(structure, p)) /** * Support for membership on multiple linked lists. @@ -860,7 +861,7 @@ * (an element called '_name2' in structure '_type') back into a * pointer to the overall enclosing structure. Examples: * - * eu = BU_LIST_MAIN_PTR( edgeuse, midway, l2 ); + * eu = BU_LIST_MAIN_PTR(edgeuse, midway, l2); * * eu1 = BU_LIST_MAIN_PTR(edgeuse, BU_LIST_FIRST(bu_list, &eg1->eu_hd2), l2); * @@ -916,13 +917,13 @@ * */ #if defined(vax) || (defined(sgi) && !defined(mips)) - /* DEC VAX "D" format, the most restrictive */ +/* DEC VAX "D" format, the most restrictive */ # define MAX_FASTF 1.0e37 /* Very close to the largest number */ # define SQRT_MAX_FASTF 1.0e18 /* This squared just avoids overflow */ # define SMALL_FASTF 1.0e-37 /* Anything smaller is zero */ # define SQRT_SMALL_FASTF 1.0e-18 /* This squared gives zero */ #else - /* IBM format, being the next most restrictive format */ +/* IBM format, being the next most restrictive format */ # define MAX_FASTF 1.0e73 /* Very close to the largest number */ # define SQRT_MAX_FASTF 1.0e36 /* This squared just avoids overflow */ # define SMALL_FASTF 1.0e-77 /* Anything smaller is zero */ @@ -1036,13 +1037,13 @@ #else static __inline__ int BU_BITTEST(volatile void * addr, int nr) { - int oldbit; + int oldbit; - __asm__ __volatile__( - "btl %2,%1\n\tsbbl %0,%0" - :"=r" (oldbit) - :"m" (addr), "Ir" (nr)); - return oldbit; + __asm__ __volatile__( + "btl %2, %1\n\tsbbl %0, %0" + :"=r" (oldbit) + :"m" (addr), "Ir" (nr)); + return oldbit; } #endif @@ -1071,7 +1072,7 @@ # define BU_BITV_BITNUM_CHECK(_bv, _bit) #else # define BU_BITV_BITNUM_CHECK(_bv, _bit) /* Validate bit number */ \ - if ( ((unsigned)(_bit)) >= (_bv)->nbits ) {\ + if (((unsigned)(_bit)) >= (_bv)->nbits) {\ bu_log("BU_BITV_BITNUM_CHECK bit number (%u) out of range (0..%u)\n", \ ((unsigned)(_bit)), (_bv)->nbits); \ bu_bomb("process self-terminating\n");\ @@ -1082,9 +1083,9 @@ # define BU_BITV_NBITS_CHECK(_bv, _nbits) #else # define BU_BITV_NBITS_CHECK(_bv, _nbits) /* Validate number of bits */ \ - if ( ((unsigned)(_nbits)) > (_bv)->nbits ) {\ + if (((unsigned)(_nbits)) > (_bv)->nbits) {\ bu_log("BU_BITV_NBITS_CHECK number of bits (%u) out of range (> %u)", \ - ((unsigned)(_nbits)), (_bv)->nbits ); \ + ((unsigned)(_nbits)), (_bv)->nbits); \ bu_bomb("process self-terminating"); \ } #endif @@ -1097,23 +1098,25 @@ * to smear to the right. * * @par Example: -@code - BU_BITV_LOOP_START(bv) { - fiddle(BU_BITV_LOOP_INDEX); - } BU_BITV_LOOP_END; -@endcode + @code + + BU_BITV_LOOP_START(bv) { + fiddle(BU_BITV_LOOP_INDEX); + } BU_BITV_LOOP_END; + + @endcode * */ #define BU_BITV_LOOP_START(_bv) \ { \ register int _wd; /* Current word number */ \ BU_CK_BITV(_bv); \ - for ( _wd=BU_BITS2WORDS((_bv)->nbits)-1; _wd>=0; _wd-- ) { \ + for (_wd=BU_BITS2WORDS((_bv)->nbits)-1; _wd>=0; _wd--) { \ register int _b; /* Current bit-in-word number */ \ register bitv_t _val; /* Current word value */ \ if ((_val = (_bv)->bits[_wd])==0) continue; \ - for (_b=0; _b < BU_BITV_MASK+1; _b++, _val >>= 1 ) { \ - if ( !(_val & 1) ) continue; + for (_b=0; _b < BU_BITV_MASK+1; _b++, _val >>= 1) { \ + if (!(_val & 1)) continue; /** * This macro is valid only between a BU_BITV_LOOP_START/LOOP_END @@ -1152,21 +1155,21 @@ }; #define BU_CK_HIST(_p) BU_CKMAG(_p, BU_HIST_MAGIC, "struct bu_hist") -#define BU_HIST_TALLY( _hp, _val ) { \ - if ( (_val) <= (_hp)->hg_min ) { \ +#define BU_HIST_TALLY(_hp, _val) { \ + if ((_val) <= (_hp)->hg_min) { \ (_hp)->hg_bins[0]++; \ - } else if ( (_val) >= (_hp)->hg_max ) { \ + } else if ((_val) >= (_hp)->hg_max) { \ (_hp)->hg_bins[(_hp)->hg_nbins]++; \ } else { \ (_hp)->hg_bins[(int)(((_val)-(_hp)->hg_min)/(_hp)->hg_clumpsize)]++; \ } \ (_hp)->hg_nsamples++; } -#define BU_HIST_TALLY_MULTIPLE( _hp, _val, _count ) { \ +#define BU_HIST_TALLY_MULTIPLE(_hp, _val, _count) { \ register int __count = (_count); \ - if ( (_val) <= (_hp)->hg_min ) { \ + if ((_val) <= (_hp)->hg_min) { \ (_hp)->hg_bins[0] += __count; \ - } else if ( (_val) >= (_hp)->hg_max ) { \ + } else if ((_val) >= (_hp)->hg_max) { \ (_hp)->hg_bins[(_hp)->hg_nbins] += __count; \ } else { \ (_hp)->hg_bins[(int)(((_val)-(_hp)->hg_min)/(_hp)->hg_clumpsize)] += __count; \ @@ -1221,7 +1224,7 @@ * NMG_CK_EDGEUSE(*eup); * } * --- OR --- - * for (BU_PTBL_FOR( eup, (struct edgeuse **), &eutab )) { + * for (BU_PTBL_FOR(eup, (struct edgeuse **), &eutab)) { * NMG_CK_EDGEUSE(*eup); * } */ @@ -1346,8 +1349,8 @@ * whether the pointer needs to be freed or not. */ #define AVS_IS_FREEABLE(_avsp, _p) \ - ( (_avsp)->readonly_max == NULL || \ - ((genptr_t)(_p) < (genptr_t)(_avsp)->readonly_min || (genptr_t)(_p) > (genptr_t)(_avsp)->readonly_max) ) + ((_avsp)->readonly_max == NULL || \ + ((genptr_t)(_p) < (genptr_t)(_avsp)->readonly_min || (genptr_t)(_p) > (genptr_t)(_avsp)->readonly_max)) /** @} */ /*----------------------------------------------------------------------*/ @@ -1429,22 +1432,22 @@ #define BU_CK_MRO(_vp) BU_CKMAG(_vp, BU_MRO_MAGIC, "bu_mro") -#define BU_MRO_INVALIDATE(_p ) {\ +#define BU_MRO_INVALIDATE(_p) {\ _p->long_rep_is_valid = '\0';\ _p->double_rep_is_valid = '\0';\ } -#define BU_MRO_GETDOUBLE( _p ) ( _p->double_rep_is_valid ? _p->double_rep : \ - (_p->double_rep = strtod( bu_vls_addr( &_p->string_rep ), NULL ), \ - ( _p->double_rep_is_valid='y', _p->double_rep ) ) ) +#define BU_MRO_GETDOUBLE(_p) (_p->double_rep_is_valid ? _p->double_rep : \ + (_p->double_rep = strtod(bu_vls_addr(&_p->string_rep), NULL), \ + (_p->double_rep_is_valid='y', _p->double_rep))) -#define BU_MRO_GETLONG( _p ) ( _p->long_rep_is_valid ? _p->long_rep : \ - (_p->long_rep = strtol( bu_vls_addr( &_p->string_rep ), NULL, 10 ), \ - ( _p->long_rep_is_valid='y', _p->long_rep ) ) ) +#define BU_MRO_GETLONG(_p) (_p->long_rep_is_valid ? _p->long_rep : \ + (_p->long_rep = strtol(bu_vls_addr(&_p->string_rep), NULL, 10), \ + (_p->long_rep_is_valid='y', _p->long_rep))) -#define BU_MRO_GETSTRING( _p ) bu_vls_addr( &_p->string_rep ) +#define BU_MRO_GETSTRING(_p) bu_vls_addr(&_p->string_rep) -#define BU_MRO_STRLEN( _p ) bu_vls_strlen( &_p->string_rep ) +#define BU_MRO_STRLEN(_p) bu_vls_strlen(&_p->string_rep) /** @} */ /*----------------------------------------------------------------------*/ @@ -1524,7 +1527,7 @@ */ #ifndef offsetof # define bu_offsetof(_t, _m) (size_t)(&(((_t *)0)->_m)) -# define bu_offsetofarray(_t, _m) (size_t)( (((_t *)0)->_m)) +# define bu_offsetofarray(_t, _m) (size_t)((((_t *)0)->_m)) #else # define bu_offsetof(_t, _m) offsetof(_t, _m) # define bu_offsetofarray(_t, _m) offsetof(_t, _m[0]) @@ -1549,7 +1552,7 @@ # define bu_byteoffset(_i) ((size_t)__INTADDR__(&(_i))) # else # if defined(sgi) || defined(__convexc__) || defined(ultrix) || defined(_HPUX_SOURCE) - /* "Lazy" way. Works on reasonable machines with byte addressing */ +/* "Lazy" way. Works on reasonable machines with byte addressing */ # define bu_byteoffset(_i) ((size_t)((char *)&(_i))) # else # if defined(__ia64__) || defined(__x86_64__) || defined(__sparc64__) @@ -1559,7 +1562,7 @@ # define bu_byteoffset(_i) ((size_t)(((void *)&(_i))-((void *)0))) # endif # else - /* "Conservative" way of finding # bytes as diff of 2 char ptrs */ +/* "Conservative" way of finding # bytes as diff of 2 char ptrs */ # define bu_byteoffset(_i) ((size_t)(((char *)&(_i))-((char *)0))) # endif # endif @@ -1572,54 +1575,37 @@ * least those portions for which parse/print/import/export support is * desired. For example: *@code - struct data_structure { - char a_char; - char str[32]; - short a_short; - int a_int; - double a_double; - } - struct data_structure data_default = - { 'c', "the default string", 32767, 1, 1.0 }; + struct data_structure { + char a_char; + char str[32]; + short a_short; + int a_int; + double a_double; + } - struct data_structure my_values; + struct data_structure data_default = + { 'c', "the default string", 32767, 1, 1.0 }; - struct bu_structparse data_sp[] ={ + struct data_structure my_values; - {"%c", 1, "a_char", bu_offsetof(data_structure, a_char), - BU_STRUCTPARSE_FUNC_NULL, - "a single character", (void*)&default.a_char }, + struct bu_structparse data_sp[] ={ + {"%c", 1, "a_char", bu_offsetof(data_structure, a_char), BU_STRUCTPARSE_FUNC_NULL, "a single character", (void*)&default.a_char }, + {"%s", 32, "str", bu_offsetofarray(data_structure, str), BU_STRUCTPARSE_FUNC_NULL, "This is a full character string", (void*)default.str }, }, + {"%i", 1, "a_short", bu_offsetof(data_structure, a_short), BU_STRUCTPARSE_FUNC_NULL, "A 16bit integer", (void*)&default.a_short }, + {"%d", 1, "a_int", bu_offsetof(data_structure, a_int), BU_STRUCTPARSE_FUNC_NULL, "A full integer", (void*)&default.a_int }, + {"%f", 1, "a_double", bu_offsetof(data_structure, a_double), BU_STRUCTPARSE_FUNC_NULL, "A double-precision floating point value", (void*)&default.a_double }, + { "", 0, (char *)NULL, 0, BU_STRUCTPARSE_FUNC_NULL, (char *)NULL, (void *)NULL } + }; - {"%s", 32, "str", bu_offsetofarray(data_structure, str), - BU_STRUCTPARSE_FUNC_NULL, - "This is a full character string", (void*)default.str }, }, - - {"%i", 1, "a_short", bu_offsetof(data_structure, a_short), - BU_STRUCTPARSE_FUNC_NULL, - "A 16bit integer", (void*)&default.a_short }, - - {"%d", 1, "a_int", bu_offsetof(data_structure, a_int), - BU_STRUCTPARSE_FUNC_NULL, - "A full integer", (void*)&default.a_int }, - - {"%f", 1, "a_double", bu_offsetof(data_structure, a_double), - BU_STRUCTPARSE_FUNC_NULL, - "A double-precision floating point value", (void*)&default.a_double }, - - { "", 0, (char *)NULL, 0, - BU_STRUCTPARSE_FUNC_NULL, - (char *)NULL, (void *)NULL } - - }; @endcode * * To parse a string, call: * - * bu_struct_parse( vls_string, data_sp, (char *)my_values) + * bu_struct_parse(vls_string, data_sp, (char *)my_values) * - * this will parse the vls string and assign values to the members of the - * structure my_values + * this will parse the vls string and assign values to the members of + * the structure my_values * * A gross hack: To set global variables (or others for that matter) * you can store the actual address of the variable in the sp_offset @@ -1655,7 +1641,7 @@ long ext_nbytes; genptr_t ext_buf; }; -#define BU_INIT_EXTERNAL(_p) {(_p)->ext_magic = BU_EXTERNAL_MAGIC; \ +#define BU_INIT_EXTERNAL(_p) {(_p)->ext_magic = BU_EXTERNAL_MAGIC; \ (_p)->ext_buf = (genptr_t)NULL; (_p)->ext_nbytes = 0;} #define BU_CK_EXTERNAL(_p) BU_CKMAG(_p, BU_EXTERNAL_MAGIC, "bu_external") @@ -2115,7 +2101,7 @@ BU_EXPORT BU_EXTERN(int bu_crashreport, (const char *filename)); /* fgets.c */ -BU_EXPORT BU_EXTERN(char *bu_fgets, ( char *s, int size, FILE *stream)); +BU_EXPORT BU_EXTERN(char *bu_fgets, (char *s, int size, FILE *stream)); /** @} */ /** @addtogroup color */ @@ -2374,23 +2360,25 @@ * * --- BEGIN EXAMPLE --- * @code - int log_output_to_file(genptr_t data, genptr_t str) - { - FILE *fp = (FILE *)data; - fprintf(fp, "LOG: %s", str); - return 0; - } - int main(int ac, char *av[]) - { - FILE *fp = fopen("whatever.log", "w+"); - bu_log_add_hook(log_output_to_file, (genptr_t)fp); - bu_log("Logging to file.\n"); - bu_log_delete_hook(log_output_to_file, (genptr_t)fp); - bu_log("Logging to stderr.\n"); - fclose(fp); - return 0; - } + int log_output_to_file(genptr_t data, genptr_t str) + { + FILE *fp = (FILE *)data; + fprintf(fp, "LOG: %s", str); + return 0; + } + + int main(int ac, char *av[]) + { + FILE *fp = fopen("whatever.log", "w+"); + bu_log_add_hook(log_output_to_file, (genptr_t)fp); + bu_log("Logging to file.\n"); + bu_log_delete_hook(log_output_to_file, (genptr_t)fp); + bu_log("Logging to stderr.\n"); + fclose(fp); + return 0; + } + * @endcode * --- END EXAMPLE --- * @@ -2400,8 +2388,8 @@ BU_EXPORT BU_EXTERN(void bu_log_add_hook, (bu_hook_t func, genptr_t clientdata)); BU_EXPORT BU_EXTERN(void bu_log_delete_hook, (bu_hook_t func, genptr_t clientdata)); BU_EXPORT BU_EXTERN(void bu_putchar, (int c)); -BU_EXPORT BU_EXTERN(void bu_log, (const char *, ... )) __BU_ATTR_FORMAT12; -BU_EXPORT BU_EXTERN(void bu_flog, (FILE *, const char *, ... )) __BU_ATTR_FORMAT23; +BU_EXPORT BU_EXTERN(void bu_log, (const char *, ...)) __BU_ATTR_FORMAT12; +BU_EXPORT BU_EXTERN(void bu_flog, (FILE *, const char *, ...)) __BU_ATTR_FORMAT23; /** @} */ @@ -2863,26 +2851,26 @@ /* vlb.c */ BU_EXPORT BU_EXTERN(void bu_vlb_init, - (struct bu_vlb *vlb)); + (struct bu_vlb *vlb)); BU_EXPORT BU_EXTERN(void bu_vlb_initialize, - (struct bu_vlb *vlb, - int initialSize)); + (struct bu_vlb *vlb, + int initialSize)); BU_EXPORT BU_EXTERN(void bu_vlb_write, - (struct bu_vlb *vlb, - unsigned char *start, - int len)); + (struct bu_vlb *vlb, + unsigned char *start, + int len)); BU_EXPORT BU_EXTERN(void bu_vlb_reset, - (struct bu_vlb *vlb)); + (struct bu_vlb *vlb)); BU_EXPORT BU_EXTERN(unsigned char *bu_vlb_getBuffer, - (struct bu_vlb *vlb)); + (struct bu_vlb *vlb)); BU_EXPORT BU_EXTERN(int bu_vlb_getBufferLength, - (struct bu_vlb *vlb)); + (struct bu_vlb *vlb)); BU_EXPORT BU_EXTERN(void bu_vlb_free, - (struct bu_vlb *vlb)); + (struct bu_vlb *vlb)); BU_EXPORT BU_EXTERN(void bu_vlb_print, - (struct bu_vlb *vlb, - FILE *fd)); + (struct bu_vlb *vlb, + FILE *fd)); /* str.c */ BU_EXPORT BU_EXTERN(size_t bu_strlcatm, (char *dst, const char *src, size_t size, const char *label)); @@ -2930,15 +2918,15 @@ (((long)((_cp)[4])) << 24) | \ (((long)((_cp)[5])) << 16) | \ (((long)((_cp)[6])) << 8) | \ - ((long)((_cp)[7])) ) + ((long)((_cp)[7]))) #define BU_GLONG(_cp) \ ((((long)((_cp)[0])) << 24) | \ (((long)((_cp)[1])) << 16) | \ (((long)((_cp)[2])) << 8) | \ - ((long)((_cp)[3])) ) + ((long)((_cp)[3]))) #define BU_GSHORT(_cp) \ ((((short)((_cp)[0])) << 8) | \ - (_cp)[1] ) + (_cp)[1]) BU_EXPORT BU_EXTERN(unsigned short bu_gshort, (const unsigned char *msgp)); BU_EXPORT BU_EXTERN(unsigned long bu_glong, (const unsigned char *msgp)); @@ -2952,7 +2940,7 @@ /* Things that live in libbu/observer.c */ BU_EXPORT BU_EXTERN(int bu_observer_cmd, (ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[])); -BU_EXPORT BU_EXTERN(void bu_observer_notify,()); +BU_EXPORT BU_EXTERN(void bu_observer_notify, ()); BU_EXPORT BU_EXTERN(void bu_observer_free, (struct bu_observer *)); @@ -3163,9 +3151,9 @@ struct bu_hash_entry *hsh_entry; }; -#define BU_CK_HASH_TBL(_hp) BU_CKMAG( _hp, BU_HASH_TBL_MAGIC, "bu_hash_tbl" ) -#define BU_CK_HASH_RECORD(_rp) BU_CKMAG( _rp, BU_HASH_RECORD_MAGIC, "bu_hash_record" ) -#define BU_CK_HASH_ENTRY(_ep) BU_CKMAG( _ep, BU_HASH_ENTRY_MAGIC, "bu_hash_entry" ) +#define BU_CK_HASH_TBL(_hp) BU_CKMAG(_hp, BU_HASH_TBL_MAGIC, "bu_hash_tbl") +#define BU_CK_HASH_RECORD(_rp) BU_CKMAG(_rp, BU_HASH_RECORD_MAGIC, "bu_hash_record") +#define BU_CK_HASH_ENTRY(_ep) BU_CKMAG(_ep, BU_HASH_ENTRY_MAGIC, "bu_hash_entry") BU_EXPORT BU_EXTERN(unsigned long bu_hash, (unsigned char *str, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-21 19:20:25
|
Revision: 36237 http://brlcad.svn.sourceforge.net/brlcad/?rev=36237&view=rev Author: brlcad Date: 2009-10-21 19:20:09 +0000 (Wed, 21 Oct 2009) Log Message: ----------- found really old notes that were written up on bu_bomb during robodoc days, added now for posterity. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-10-21 16:44:47 UTC (rev 36236) +++ brlcad/trunk/include/bu.h 2009-10-21 19:20:09 UTC (rev 36237) @@ -2075,11 +2075,28 @@ /** * B U _ B O M B * @brief - * Abort the program with a message. + * Abort the running process. * + * 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_setjmp_valid/bu_jmpbuf setjmp 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 graceful abort. It - * should not attempt to allocate anything on the stack or heap. + * this function is meant to be a last resort semi-graceful abort. * * This routine should never return unless there is a bu_setjmp * handler registered. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-27 14:59:48
|
Revision: 36256 http://brlcad.svn.sourceforge.net/brlcad/?rev=36256&view=rev Author: brlcad Date: 2009-10-27 14:59:33 +0000 (Tue, 27 Oct 2009) Log Message: ----------- bu_key_val_to_key_eq() isn't actually implemented Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-10-27 14:39:36 UTC (rev 36255) +++ brlcad/trunk/include/bu.h 2009-10-27 14:59:33 UTC (rev 36256) @@ -3749,12 +3749,6 @@ * B U _ S H A D E R _ T O _ K E Y _ E Q * */ -BU_EXPORT BU_EXTERN(int bu_key_val_to_key_eq, - (char *in)); - -/** - * - */ BU_EXPORT BU_EXTERN(int bu_shader_to_key_eq, (const char *in, struct bu_vls *vls)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-10-29 22:03:31
|
Revision: 36338 http://brlcad.svn.sourceforge.net/brlcad/?rev=36338&view=rev Author: brlcad Date: 2009-10-29 22:03:24 +0000 (Thu, 29 Oct 2009) Log Message: ----------- document the (not-yet-committed) changes to bu_vls_from_argv() Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-10-29 22:02:29 UTC (rev 36337) +++ brlcad/trunk/include/bu.h 2009-10-29 22:03:24 UTC (rev 36338) @@ -4700,8 +4700,13 @@ /** * b u _ v l s _ f r o m _ a r g v * - * Given and argc & argv pair, convert them into a vls string of - * space-separated words. + * Convert an array of character strings into a space-separated vls. + * + * If the input argv string has spaces, it will be wrapped in '"' + * quotes. if the argv string contains '"' quote characters, they + * will be escaped with a '\' backslash. + * + * bu_argv_from_string() reverses the quoting and escaped characters. */ BU_EXPORT BU_EXTERN(void bu_vls_from_argv, (struct bu_vls *vp, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-11-16 13:47:59
|
Revision: 36487 http://brlcad.svn.sourceforge.net/brlcad/?rev=36487&view=rev Author: brlcad Date: 2009-11-16 13:47:45 +0000 (Mon, 16 Nov 2009) Log Message: ----------- if we're compiling stricct, turn attributes off. this is needed because our format string allows a %V conversion character that is not recognized. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-11-16 13:08:01 UTC (rev 36486) +++ brlcad/trunk/include/bu.h 2009-11-16 13:47:45 UTC (rev 36487) @@ -158,6 +158,14 @@ # endif #endif +/* If we're compiling strict, turn attributes off */ +#if defined(__STRICT_ANSI__) +# ifdef __attribute__ +# undef __attribute__ +# endif +# define __attribute__(ignore) /* empty */ +#endif + /** * shorthand declaration of a printf-style functions */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2009-11-18 23:01:54
|
Revision: 36546 http://brlcad.svn.sourceforge.net/brlcad/?rev=36546&view=rev Author: starseeker Date: 2009-11-18 23:01:44 +0000 (Wed, 18 Nov 2009) Log Message: ----------- Don't want to totally undef __attributes__ - causes problems with the vector_x86.h and probably vector_fpu.h files. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-11-18 22:50:11 UTC (rev 36545) +++ brlcad/trunk/include/bu.h 2009-11-18 23:01:44 UTC (rev 36546) @@ -158,14 +158,6 @@ # endif #endif -/* If we're compiling strict, turn attributes off */ -#if defined(HAVE_STRICT_FLAGS) -# ifdef __attribute__ -# undef __attribute__ -# endif -# define __attribute__(ignore) /* empty */ -#endif - /** * shorthand declaration of a printf-style functions */ @@ -177,6 +169,21 @@ */ #define __BU_ATTR_NORETURN __attribute__ ((__noreturn__)) +/** + * If we're compiling strict, turn off "format string vs arguments" + * checks - BRL-CAD customizes the arguments to some of these function + * types and that is a problem with strict checking + */ +#if defined(HAVE_STRICT_FLAGS) +# undef __BU_ATTR_FORMAT12 +# undef __BU_ATTR_FORMAT23 +# undef __BU_ATTR_NORETURN +# define __BU_ATTR_FORMAT12 +# define __BU_ATTR_FORMAT23 +# define __BU_ATTR_NORETURN +#endif + + /* * I N T E R F A C E H E A D E R S */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2009-11-23 21:52:37
|
Revision: 36604 http://brlcad.svn.sourceforge.net/brlcad/?rev=36604&view=rev Author: brlcad Date: 2009-11-23 21:52:28 +0000 (Mon, 23 Nov 2009) Log Message: ----------- meh Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2009-11-23 21:45:52 UTC (rev 36603) +++ brlcad/trunk/include/bu.h 2009-11-23 21:52:28 UTC (rev 36604) @@ -171,8 +171,9 @@ /** * If we're compiling strict, turn off "format string vs arguments" - * checks - BRL-CAD customizes the arguments to some of these function - * types and that is a problem with strict checking + * checks - BRL-CAD customizes the arguments to some of these + * function types (adding bu_vls support) and that is a problem with + * strict checking. */ #if defined(STRICT_FLAGS) # undef __BU_ATTR_FORMAT12 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sta...@us...> - 2010-01-21 21:39:37
|
Revision: 37382 http://brlcad.svn.sourceforge.net/brlcad/?rev=37382&view=rev Author: starseeker Date: 2010-01-21 21:39:27 +0000 (Thu, 21 Jan 2010) Log Message: ----------- Fix minor typo in bu_vls_strmp comment. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2010-01-21 20:44:04 UTC (rev 37381) +++ brlcad/trunk/include/bu.h 2010-01-21 21:39:27 UTC (rev 37382) @@ -4677,7 +4677,7 @@ /** * b u _ v l s _ s t r c m p * - * Lexicographically compare to vls strings. Returns an integer + * Lexicographically compare two vls strings. Returns an integer * greater than, equal to, or less than 0, according as the string s1 * is greater than, equal to, or less than the string s2. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2010-02-02 20:09:27
|
Revision: 37527 http://brlcad.svn.sourceforge.net/brlcad/?rev=37527&view=rev Author: bob1961 Date: 2010-02-02 20:09:17 +0000 (Tue, 02 Feb 2010) Log Message: ----------- The cast to long is now part of the bu_offsetof definition. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2010-02-02 20:08:38 UTC (rev 37526) +++ brlcad/trunk/include/bu.h 2010-02-02 20:09:17 UTC (rev 37527) @@ -1765,12 +1765,15 @@ * Files using bu_offsetof or bu_offsetofarray will need to include * stddef.h in order to get offsetof() */ +/* FIXME - this is a temporary cast. The bu_structparse sp_offset member + * should be a size_t. + */ #ifndef offsetof # define bu_offsetof(_t, _m) (size_t)(&(((_t *)0)->_m)) # define bu_offsetofarray(_t, _m) (size_t)((((_t *)0)->_m)) #else -# define bu_offsetof(_t, _m) offsetof(_t, _m) -# define bu_offsetofarray(_t, _m) offsetof(_t, _m[0]) +# define bu_offsetof(_t, _m) (long)offsetof(_t, _m) +# define bu_offsetofarray(_t, _m) (long)offsetof(_t, _m[0]) #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2010-02-03 23:37:55
|
Revision: 37537 http://brlcad.svn.sourceforge.net/brlcad/?rev=37537&view=rev Author: bob1961 Date: 2010-02-03 23:37:48 +0000 (Wed, 03 Feb 2010) Log Message: ----------- Quell a few warnings when compiling for 64-bit Windows. Modified Paths: -------------- brlcad/trunk/include/bu.h Modified: brlcad/trunk/include/bu.h =================================================================== --- brlcad/trunk/include/bu.h 2010-02-03 23:00:17 UTC (rev 37536) +++ brlcad/trunk/include/bu.h 2010-02-03 23:37:48 UTC (rev 37537) @@ -1806,7 +1806,11 @@ # endif # else /* "Conservative" way of finding # bytes as diff of 2 char ptrs */ -# define bu_byteoffset(_i) ((size_t)(((char *)&(_i))-((char *)0))) +# if defined(_WIN32) && !defined(__CYGWIN__) +# define bu_byteoffset(_i) ((long)(((char *)&(_i))-((char *)0))) +# else +# define bu_byteoffset(_i) ((size_t)(((char *)&(_i))-((char *)0))) +# endif # endif # endif # endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |