Skip to main content Link Search Menu Expand Document (external link)

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.