What's new in CPL 4.0 ============================================ - The CPL error state has been extended from a single CPL error to a sequence of such errors which improves error recovery and error reporting. The new CPL errorstate functions are defined in the cpl_errorstate module. - The CPL DFS module has been extended with functions for creating DFS compliant FITS products. - In CPL 3.X a number of CPL accessor functions take a const pointer to a CPL object and return a non-const pointer to a part of the CPL object, i.e. double * cpl_vector_get_data(const cpl_vector *); Such functions could be used in code that would indirectly modify a CPL object that has been declared constant, and such code would not cause any compiler warnings. To avoid this, the const modifier on the pointer to the CPL object has been dropped from these functions. An example of such a redeclaration in CPL 4.0 is: double * cpl_vector_get_data(cpl_vector *); To accomodate the need for read-only accessors, a number of new constant-accessors have been defined, i.e. const double * cpl_vector_get_data_const(const cpl_vector *); - It is possible to create a CPL table from a subset of columns and rows of a (big) FITS table, using the new function cpl_table_load_window().