commit b18dcb66251f1c6ab63c2597641c62dbaca531d2
parent c09eeb7577cb61744719b802044d5b0a9304e37f
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 8 Mar 2022 19:32:12 +0100
Check that the loaded lines are correctly sorted
Diffstat:
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/shtr_lines_list.c b/src/shtr_lines_list.c
@@ -150,7 +150,19 @@ parse_line(struct shtr_lines_list* lnlst, struct txtrdr* txtrdr)
goto error;
}
- res = darray_line_push_back(&trlst->lines, &tr);
+ if(darray_line_size_get(&lnlst->lines)) {
+ const struct shtr_line* last_ln = darray_line_cdata_get(&lnlst->lines)
+ + darray_line_size_get(&lnlst->lines) - 1;
+ if(last_ln->wavenumber > ln.wavenumber) {
+ log_err(lnlst->shtr,
+ "%s:%lu: lines are not sorted in ascending order wrt their wavenumber.\n",
+ txtrdr_get_name(txtrdr), txtrdr_get_line_num(txtrdr));
+ res = RES_BAD_ARG;
+ goto error;
+ }
+ }
+
+ res = darray_line_push_back(&lnlst->lines, &ln);
if(res != RES_OK) {
log_err(lnlst->shtr,
"%s:%lu: error storing the line -- %s.\n",