X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fsort.h;h=37d9db577f30e02b2b6ade3857f4d0981d9e8de1;hb=6a42f0b711d699333fda01a076b8a27275fc4492;hp=347574c4d20ba5bd90f68625eb0159cd537e0d8a;hpb=4fdeb2145d081ff1b84e3f6c99f9d1c048c0d64a;p=pspp diff --git a/src/sort.h b/src/sort.h index 347574c4d2..37d9db577f 100644 --- a/src/sort.h +++ b/src/sort.h @@ -27,14 +27,37 @@ struct casereader; struct dictionary; struct variable; -struct sort_criteria *sort_parse_criteria (const struct dictionary *, - struct variable ***, int *, - bool *saw_direction); + +/* Sort direction. */ +enum sort_direction + { + SRT_ASCEND, /* A, B, C, ..., X, Y, Z. */ + SRT_DESCEND /* Z, Y, X, ..., C, B, A. */ + }; + +/* A sort criterion. */ +struct sort_criterion + { + int fv; /* Variable data index. */ + int width; /* 0=numeric, otherwise string width. */ + enum sort_direction dir; /* Sort direction. */ + }; + +/* A set of sort criteria. */ +struct sort_criteria + { + struct sort_criterion *crits; + size_t crit_cnt; + }; + + void sort_destroy_criteria (struct sort_criteria *); struct casefile *sort_execute (struct casereader *, const struct sort_criteria *); + int sort_active_file_in_place (const struct sort_criteria *); + struct casefile *sort_active_file_to_casefile (const struct sort_criteria *); #endif /* !sort_h */