autosave
- R5-4, R5-4-1, R5-4-2: Array restore can fail to parse correctly lines longer than 120 characters.
-
R5-4, R5-4-1: set_pass1_restoreFile() is wrongly defined for iocsh. Here’s how to fix it:
STATIC void set_pass1_CallFunc(const iocshArgBuf *args) { - set_pass1_restoreFile(args[0].sval, args[2].sval); + set_pass1_restoreFile(args[0].sval, args[1].sval); }
Thanks to Ralph Lange for finding and fixing this.
-
R5-0, R5-1, R5-2: autosave fails to detect and reject a truncated .sav file, and segfaults if the file was truncated in the middle of an array.
long-string PV’s longer than 120 characters are not read to completion, so remaining string content is treated as a new PV name/value.
- R4-6 and earlier: array PV’s whose representation in a .sav file is exactly 119 characters long result in the PV being handled twice, the second time as a scalar with no data. For an array of char, this has had the effect of setting the first element to zero.
- R4-1: .sav files must have a header line. Too sensitive to errors reported in errno. Status PV’s restricted to PV_NAME_LEN chars. Blank but not empty lines cause problems.
-
R4-0: Not too smart about array PV’s changing number of elements.
Kills itself if it can’t find its status PV’s.
- R3-5: Note that this 3.13-compatible software is not in the form of a module.