Login
Changes To TODOs
Login

Changes to "TODOs" between 2021-09-17 20:33:53 and 2021-09-18 10:50:58

94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
94
95
96
97
98
99
100


101
102
103
104
105
106
107







-
-








- **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).

- **Symlinks**. i have always strongly disagreed with the addition of symlink support into fossil: platform-specific constructs simply have no place in the core of any SCM (with the "effectively necessary," as well as unobtrusive, exception of the executable bit). For platforms which don't support symlinks, fossil stores/manages them as plain text files with a single line holding the name of the referenced file. This is *very likely* the route the library will take, especially since the hassles symlink handling caused fossil in late 2020 (long story). Probably the only way the library will support proper symlinks is if someone who uses that feature adds and maintains it.