projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clean up how transformations work.
[pspp]
/
src
/
language
/
stats
/
autorecode.c
diff --git
a/src/language/stats/autorecode.c
b/src/language/stats/autorecode.c
index 1a74b1e4a9e4e3365e5fc77ca0fcbeb05147a654..2d569a0436eed60105da88150650cc1ae23e9811 100644
(file)
--- a/
src/language/stats/autorecode.c
+++ b/
src/language/stats/autorecode.c
@@
-96,8
+96,7
@@
struct autorecode_pgm
bool blank_valid;
};
bool blank_valid;
};
-static trns_proc_func autorecode_trns_proc;
-static trns_free_func autorecode_trns_free;
+static const struct trns_class autorecode_trns_class;
static int compare_arc_items (const void *, const void *, const void *aux);
static void arc_free (struct autorecode_pgm *);
static int compare_arc_items (const void *, const void *, const void *aux);
static void arc_free (struct autorecode_pgm *);
@@
-450,7
+449,7
@@
cmd_autorecode (struct lexer *lexer, struct dataset *ds)
/* Free array. */
free (items);
}
/* Free array. */
free (items);
}
- add_transformation (ds,
autorecode_trns_proc, autorecode_trns_free
, arc);
+ add_transformation (ds,
&autorecode_trns_class
, arc);
for (size_t i = 0; i < n_dsts; i++)
free (dst_names[i]);
for (size_t i = 0; i < n_dsts; i++)
free (dst_names[i]);
@@
-553,7
+552,7
@@
compare_arc_items (const void *a_, const void *b_, const void *direction_)
return direction == ASCENDING ? cmp : -cmp;
}
return direction == ASCENDING ? cmp : -cmp;
}
-static
in
t
+static
enum trns_resul
t
autorecode_trns_proc (void *arc_, struct ccase **c,
casenumber case_idx UNUSED)
{
autorecode_trns_proc (void *arc_, struct ccase **c,
casenumber case_idx UNUSED)
{
@@
-582,3
+581,9
@@
autorecode_trns_free (void *arc_)
arc_free (arc);
return true;
}
arc_free (arc);
return true;
}
+
+static const struct trns_class autorecode_trns_class = {
+ .name = "AUTORECODE",
+ .execute = autorecode_trns_proc,
+ .destroy = autorecode_trns_free,
+};