From 00074756771a123f29ad84a10923b524e4924171 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 20 Feb 2024 16:30:34 +0100 Subject: Set default flag for panel dimensions This was missed out, causing DataTemplates to be written incorrectly. --- libcrystfel/src/datatemplate.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libcrystfel/src/datatemplate.c b/libcrystfel/src/datatemplate.c index a01baba5..f03ca6ce 100644 --- a/libcrystfel/src/datatemplate.c +++ b/libcrystfel/src/datatemplate.c @@ -390,8 +390,8 @@ static int dir_conv(const char *a, double *sx, double *sy, double *sz) } -int set_dim(struct panel_template *panel, int dimension, - const char *val) +static int set_dim(struct panel_template *panel, int dimension, + const char *val, int def) { if ( dimension >= MAX_DIMS ) { ERROR("Too many dimensions!\n"); @@ -400,10 +400,13 @@ int set_dim(struct panel_template *panel, int dimension, if ( strcmp(val, "fs") == 0 ) { panel->dims[dimension] = DIM_FS; + panel->dims_default[dimension] = def; } else if ( strcmp(val, "ss") == 0 ) { panel->dims[dimension] = DIM_SS; + panel->dims_default[dimension] = def; } else if ( strcmp(val, "%") == 0 ) { panel->dims[dimension] = DIM_PLACEHOLDER; + panel->dims_default[dimension] = def; } else { char *endptr; unsigned long int fix_val = strtoul(val, &endptr, 10); @@ -412,6 +415,7 @@ int set_dim(struct panel_template *panel, int dimension, return 1; } else { panel->dims[dimension] = fix_val; + panel->dims_default[dimension] = def; } } return 0; @@ -623,7 +627,7 @@ static int parse_field_for_panel(struct panel_template *panel, const char *key, ERROR("Invalid dimension number %s\n", key+3); } else { - if ( set_dim(panel, dim_entry, val) ) { + if ( set_dim(panel, dim_entry, val, def) ) { ERROR("Failed to set dim structure entry\n"); } } -- cgit v1.2.3