Login
Changes To TODOs
Login

Changes to "TODOs" between 2022-06-09 09:36:08 and 2022-07-30 08:49:59

89
90
91
92
93
94
95





96
97
98
99
100
101
102
89
90
91
92
93
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.

- **f-vdiff**/dibu: port the DELETE/INSERT collapsing from [](8752aca1b7187d39) into the ncurses unified diff view.

- **fsl_buffer**: add an (int errCode) member. If any operation fails, set that code. (Almost) any fsl_buffer_xyz() API calls should check that value and simply return
   it if it's non-0. The benefit of this is that we can then perform any number of fsl_buffer API calls in a row and defer the error check until the end, greatly simplifying much
   of the error checking related to that class (of which we have no small amount). This idea is adapted from the [sqlite3 string buffer API](https://sqlite.org/c3ref/str_append.html).
   The error code would be sticky, preventing most buffer APIs from working, until it's explicitly reset to 0.

# Maybe (and Maybe Not) TODO

- **Undo** support.

- **BOMs**. Fossil's diff APIs internally convert their inputs to UTF8 and strip the BOM (if any) from them. libf does not do that. On the one hand i'm hesitant to do so because these blobs can be anything at all (not necessarily SCM controlled). On other other, for annotate's sake it might make sense to do so automatically because the user is passing in artifact IDs instead of file content. On the other other hand, the fossil routine for doing that (blob_to_utf8_no_bom()) is far, far more involved that simply stripping a BOM. i'm torn on whether that's the library's job or not, and really dislike having to either mutate the original inputs or reallocate them to make that conversion. OTOH, fossil does so.