*/
typedef int (*CMP_FUNC)(void*, void*);
+/** \defgroup cmp_macros Macros para comparar datos.
+ * Macros para comparar datos utilizando la función de comparación.
+ * \{
+ */
+/** Prueba si \c x es menor que \c y usando la función de comparación. */
+#define LT(b, x, y) (b->cmp(x, y) < 0)
+/** Prueba si \c x es mayor que \c y usando la función de comparación. */
+#define GT(b, x, y) (b->cmp(x, y) > 0)
+/** Prueba si \c x es igual a \c y usando la función de comparación. */
+#define EQ(b, x, y) (b->cmp(x, y) == 0)
+/** Prueba si \c x es distinto a \c y usando la función de comparación. */
+#define NE(b, x, y) (b->cmp(x, y) != 0)
+/** Prueba si \c x es menor o igual a \c y usando la función de comparación. */
+#define LE(b, x, y) (b->cmp(x, y) <= 0)
+/** Prueba si \c x es mayor o igual a \c y usando la función de comparación. */
+#define GE(b, x, y) (b->cmp(x, y) >= 0)
+/** \} */ /* fin del grupo cmp_macros */
+
#endif /* _EXTSORT_BASE_H_ */
*
*/
+#include "base.h"
#include "bufford.h"
#include <malloc.h>
#include <string.h>
#include <assert.h>
-/** Prueba si \c x es menor que \c y usando la función de comparación. */
-#define LT(b, x, y) (b->cmp(x, y) < 0)
-/** Prueba si \c x es mayor que \c y usando la función de comparación. */
-#define GT(b, x, y) (b->cmp(x, y) > 0)
-/** Prueba si \c x es igual a \c y usando la función de comparación. */
-#define EQ(b, x, y) (b->cmp(x, y) == 0)
-/** Prueba si \c x es distinto a \c y usando la función de comparación. */
-#define NE(b, x, y) (b->cmp(x, y) != 0)
-/** Prueba si \c x es menor o igual a \c y usando la función de comparación. */
-#define LE(b, x, y) (b->cmp(x, y) <= 0)
-/** Prueba si \c x es mayor o igual a \c y usando la función de comparación. */
-#define GE(b, x, y) (b->cmp(x, y) >= 0)
-
/** Crea un nuevo nodo, se guarda una copia del dato en el nodo. */
static BUFFORD_NODE* bufford_node_new(void* data, size_t reg_size);