projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Miscellaneous cleanup to categorical values, linreg and design matrix code.
[pspp-builds.git]
/
src
/
data
/
transformations.c
diff --git
a/src/data/transformations.c
b/src/data/transformations.c
index b5a6c9d8140cdb59a97d70d336e398d7fef975e8..f77c24f8b95095a832b416a756ac26fd53a4a13e 100644
(file)
--- a/
src/data/transformations.c
+++ b/
src/data/transformations.c
@@
-188,13
+188,13
@@
trns_chain_next (struct trns_chain *chain)
terminate, or TRNS_CONTINUE if the transformations finished
due to "falling off the end" of the set of transformations. */
enum trns_result
terminate, or TRNS_CONTINUE if the transformations finished
due to "falling off the end" of the set of transformations. */
enum trns_result
-trns_chain_execute (struct trns_chain *chain,
struct ccase *c
,
- const size_t *case_nr)
+trns_chain_execute (struct trns_chain *chain,
enum trns_result start
,
+
struct ccase *c,
const size_t *case_nr)
{
size_t i;
assert (chain->finalized);
{
size_t i;
assert (chain->finalized);
- for (i =
0
; i < chain->trns_cnt; )
+ for (i =
start < 0 ? 0 : start
; i < chain->trns_cnt; )
{
struct transformation *trns = &chain->trns[i];
int retval = trns->execute (trns->aux, c, *case_nr);
{
struct transformation *trns = &chain->trns[i];
int retval = trns->execute (trns->aux, c, *case_nr);
@@
-202,8
+202,8
@@
trns_chain_execute (struct trns_chain *chain, struct ccase *c,
i++;
else if (retval >= 0)
i = retval + trns->idx_ofs;
i++;
else if (retval >= 0)
i = retval + trns->idx_ofs;
- else
- return retval;
+ else
+ return retval
== TRNS_END_CASE ? i + 1 : retval
;
}
return TRNS_CONTINUE;
}
return TRNS_CONTINUE;