badd7360ca50c837bf07fdf46dd14e128a268e13
ReadAttrStr and HDF5DataSet::ReadString read every string as fixed-length, sizing the buffer by H5Tget_size. For a variable-length string (what h5py writes for a str, UTF-8) that size is a pointer, so the read put a char* into the buffer and returned garbage. transformation_type then never equalled "rotation", and an EIGER master whose goniometer attributes were written that way (depends_on, transformation_type, units on /entry/sample/transformations) was processed as stills although it holds a valid rotation sweep. All string reads now go through one helper, ReadHDF5String, which handles both fixed- and variable-length strings in either character set; ReadElement<string> already handled the variable-length case and now uses the same helper. Test: JFJochReader_Goniometer_VariableLengthStrings reads the rotation axis from a master with fixed-length ASCII and with variable-length UTF-8 string attributes and depends_on dataset. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVmAWnzCmRKAXVUCdc4iNi
Jungfraujoch
Application to receive and analyse data from the PSI JUNGFRAU and EIGER detectors, together with
rugnux, its program for processing stored diffraction data - rotation and serial, macromolecular
and small-molecule - from images to merged reflections.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
77.9%
HTML
6%
C
4.7%
TypeScript
3.4%
Cuda
3%
Other
4.9%