|
1 | 1 | /** |
2 | 2 | @page history Revision History |
3 | 3 |
|
4 | | -@section qpn_6_8_0 Version 6.8.0, 2020-03-31 |
| 4 | +@section qpn_6_8_1 Version 6.8.1, 2020-04-04 |
| 5 | + |
| 6 | +Fixed the following bugs: |
| 7 | + |
| 8 | +This release updates the QP-nano ports and examples for workstations (Windows and POSIX) by consistently applying the "safe" versions of services from `<stdio.h>` and `<string.h>`. The "portable" versions of these services are defined as macros in the `safe_std.h` header file and include the following services: |
| 9 | + |
| 10 | +- `MEMMOVE_S()` -> `memmove_s()` |
| 11 | +- `STRCPY_S()` -> `strcpy_s()` |
| 12 | +- `STRCPY_S()` -> `strcpy_s()` |
| 13 | +- `STRCAT_S()` -> `strcat_s()` |
| 14 | +- `SNPRINTF_S()` -> `_snprintf_s()` |
| 15 | +- `PRINTF_S()` -> `printf_s()` |
| 16 | +- `FPRINTF_S()` ->`fprintf_s()` |
| 17 | +- `FREAD_S()` -> `fread_s()` |
| 18 | +- `FOPEN_S()` -> `fopen_s()` |
| 19 | +- `LOCALTIME_S()` -> `localtime_s()` |
| 20 | + |
| 21 | +These "safe" functions are mapped to the best approximation of these services available on a given platform. For example, `STRCPY_S()` is mapped to `strcpy_s()` on Windows and `strcpy()` on POSIX (Linux/MacOS/etc.). |
| 22 | + |
| 23 | +Finally, this release consistently applies the #Q_NORETURN macro to the Q_onAssert() implementations in the QP-nano examples. |
| 24 | + |
| 25 | + |
| 26 | +------------------------------------------------------------------------------ |
| 27 | +@section qpn_6_8_0 Version 6.8.0, 2020-03-21 |
5 | 28 |
|
6 | 29 | Source code changes: |
7 | 30 |
|
@@ -1548,3 +1571,4 @@ wrap-around point. |
1548 | 1571 | updated to the latest QP-nano API changes. |
1549 | 1572 | */ |
1550 | 1573 |
|
| 1574 | +Finally, this release improves the comments in the QF_stop() function. The comments now make it very clear that after calling QF_stop() the application must terminate and cannot continue. In particular, QF_stop() is **not** intended to be followed by a call to QF_init() to "resurrect" the application. The previous comments apparently were confusing and some developers attempted to "restart" a running application, which led to system crashes. |
0 commit comments