aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-09-22 14:42:01 +0200
committerThomas White <taw@physics.org>2022-09-22 14:42:01 +0200
commit025f9e9c9022bb1118783a089fa5854b956eb04a (patch)
treea5048ba1242913a40c6a9d32e839384554cf8a10
parent369a951b5bf6bb94fbffb2002281fa4d1a67506d (diff)
all_panels_reference_same_clen: Handle missing units
-rw-r--r--libcrystfel/src/datatemplate.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libcrystfel/src/datatemplate.c b/libcrystfel/src/datatemplate.c
index 1075b349..bbcf1aa5 100644
--- a/libcrystfel/src/datatemplate.c
+++ b/libcrystfel/src/datatemplate.c
@@ -1853,6 +1853,14 @@ static int im_get_length(struct image *image, const char *from,
}
+static int safe_strcmp(const char *a, const char *b)
+{
+ if ( (a==NULL) && (b==NULL) ) return 0;
+ if ( (a!=NULL) && (b!=NULL) ) return strcmp(a, b);
+ return 1;
+}
+
+
static int all_panels_reference_same_clen(const DataTemplate *dtempl)
{
int i;
@@ -1872,8 +1880,8 @@ static int all_panels_reference_same_clen(const DataTemplate *dtempl)
first_val = val;
first_units = units;
} else {
- if ( strcmp(val, first_val) != 0 ) fail = 1;
- if ( strcmp(units, first_units) != 0 ) fail = 1;
+ if ( safe_strcmp(val, first_val) != 0 ) fail = 1;
+ if ( safe_strcmp(units, first_units) != 0 ) fail = 1;
free(val);
free(units);
}