projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Changed dict_get_case_weight() to accept an additional int * flag to complain about...
[pspp]
/
src
/
vars-atr.c
diff --git
a/src/vars-atr.c
b/src/vars-atr.c
index f90dc1c929812e3a9fffd5466f10e514c3fbda32..c0730022354f2ab88dfe278b4d6949fb61bc04b9 100644
(file)
--- a/
src/vars-atr.c
+++ b/
src/vars-atr.c
@@
-19,10
+19,9
@@
#include <config.h>
#include "var.h"
#include <config.h>
#include "var.h"
-#include
<assert.h>
+#include
"error.h"
#include <stdlib.h>
#include "alloc.h"
#include <stdlib.h>
#include "alloc.h"
-#include "approx.h"
#include "command.h"
#include "do-ifP.h"
#include "expr.h"
#include "command.h"
#include "do-ifP.h"
#include "expr.h"
@@
-38,7
+37,7
@@
/* Compares A and B, which both have the given WIDTH, and returns
a strcmp()-type result. */
int
/* Compares A and B, which both have the given WIDTH, and returns
a strcmp()-type result. */
int
-compare_values (
union value *a,
union value *b, int width)
+compare_values (
const union value *a, const
union value *b, int width)
{
if (width == 0)
return a->f < b->f ? -1 : a->f > b->f;
{
if (width == 0)
return a->f < b->f ? -1 : a->f > b->f;
@@
-56,9
+55,11
@@
discard_variables (void)
n_lag = 0;
n_lag = 0;
- if (vfm_source)
+ if (vfm_source
!= NULL
)
{
{
- vfm_source->destroy_source ();
+ if (vfm_source->class->destroy != NULL)
+ vfm_source->class->destroy (vfm_source);
+ free (vfm_source);
vfm_source = NULL;
}
vfm_source = NULL;
}
@@
-84,31
+85,25
@@
is_num_user_missing (double x, const struct variable *v)
case MISSING_NONE:
return 0;
case MISSING_1:
case MISSING_NONE:
return 0;
case MISSING_1:
- return
approx_eq (x, v->missing[0].f)
;
+ return
x == v->missing[0].f
;
case MISSING_2:
case MISSING_2:
- return (approx_eq (x, v->missing[0].f)
- || approx_eq (x, v->missing[1].f));
+ return x == v->missing[0].f || x == v->missing[1].f;
case MISSING_3:
case MISSING_3:
- return (approx_eq (x, v->missing[0].f)
- || approx_eq (x, v->missing[1].f)
- || approx_eq (x, v->missing[2].f));
+ return (x == v->missing[0].f || x == v->missing[1].f
+ || x == v->missing[2].f);
case MISSING_RANGE:
case MISSING_RANGE:
- return (approx_ge (x, v->missing[0].f)
- && approx_le (x, v->missing[1].f));
+ return x >= v->missing[0].f && x <= v->missing[1].f;
case MISSING_LOW:
case MISSING_LOW:
- return
approx_le (x, v->missing[0].f)
;
+ return
x <= v->missing[0].f
;
case MISSING_HIGH:
case MISSING_HIGH:
- return
approx_ge (x, v->missing[0].f)
;
+ return
x >= v->missing[0].f
;
case MISSING_RANGE_1:
case MISSING_RANGE_1:
- return ((approx_ge (x, v->missing[0].f)
- && approx_le (x, v->missing[1].f))
- || approx_eq (x, v->missing[2].f));
+ return ((x >= v->missing[0].f && x <= v->missing[1].f)
+ || x == v->missing[2].f);
case MISSING_LOW_1:
case MISSING_LOW_1:
- return (approx_le (x, v->missing[0].f)
- || approx_eq (x, v->missing[1].f));
+ return x <= v->missing[0].f || x == v->missing[1].f;
case MISSING_HIGH_1:
case MISSING_HIGH_1:
- return (approx_ge (x, v->missing[0].f)
- || approx_eq (x, v->missing[1].f));
+ return x >= v->missing[0].f || x == v->missing[1].f;
default:
assert (0);
}
default:
assert (0);
}