aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2024-02-20 16:30:34 +0100
committerThomas White <taw@physics.org>2024-02-20 16:34:18 +0100
commit00074756771a123f29ad84a10923b524e4924171 (patch)
tree155cff210bbe7868d0903b7ebe49059ec4821bab
parent3f63f0ad6410e92b28440675c1bcf542b736582a (diff)
Set default flag for panel dimensions
This was missed out, causing DataTemplates to be written incorrectly.
-rw-r--r--libcrystfel/src/datatemplate.c10
1 files 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");
}
}