35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
+
+
|
- **Add [SPDX-style](https://spdx.dev/) license attribution** to all source files. This is ongoing.
- **Header file restructuring.** The current separation of the APIs into many `include/fossil-scm/*.h` files is somewhat confusing. The initial intent was to keep my low-end development system of the time from choking on syntax highlighting on one large file, but those days are largely behind me. It may make sense to combine those into 1 public API file, 1 internal API file, and the auto-generated config file(s). (Even then, it's big enough to choke emacs' syntax highlighting on lower-end systems like Raspberry Pi SBCs.)
- **Stop using char as booleans**. This tree historically uses `char` type for booleans. Now that the tree is C99, we can switch to the `bool` type. This is ongoing.
- **f-vdiff**: port in [](fossil:3504672187af59f0) in order to be able to select the diff width based on the terminal size.
- `fsl_appendf()` and friends use callbacks with printf-like return semantics because that's what the code those derived from used. These "really should" be changed to `fsl_output_f()` semantics because it's next to impossible to catch and report certain errors with printf-style semantics. The arguments for both types of callbacks are compatible, but their return value semantics are different, which means great care has to be taken when changing this to ensure that all cases are handled and we don't leave any calls with the old semantics (which would break stuff).
# Maybe (and Maybe Not) TODO
- **Undo** support.
- **Bring some of the configuration-related state up to date.** The infrastructure is there but the exact list of fossil-supported properties is lagging behind by several years. On the other hand, the majority of such config state is really application-specific and probably has no business being handled by this library. Some settings, e.g. `forbid-delta-manifests`, we internally honor to avoid Grief in downstream repositories. Others, such as the various globs settings, have API-level support and can be honored by the appropriate library APIs via toggles (e.g. the file-add API optionally honors the `ignore-glob` setting).
|