fnc

Check-in [dce24e7685]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:CHANGES for 0.16
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | 0.16
Files: files | file ages | folders
SHA3-256: dce24e768585b8c3fcd8bd010c164aac6249919c690f8d30de9ec3195b4be78d
User & Date: mark 2023-11-26 11:24:15
Context
2023-11-26 11:53
bump version number: 0.17 (check-in: 720ac95e45 user: mark tags: trunk)
2023-11-26 11:24
CHANGES for 0.16 (check-in: dce24e7685 user: mark tags: trunk, 0.16)
2023-11-25 10:48
allow stash operations involving empty tracked files (check-in: a2c542f43c user: mark tags: trunk)
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to CHANGES.md.










































































1
2
3
4
5
6
7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







**fnc 0.16** 2023-11-26 [[history][0.16a] / [diff][0.16b]]

- drop unnecessary sqlite3 extensions
- refactor cli and replace bespoke argument parser with getopt(3)
- refactor repository and checkout database initialisation
- replace `malloc(n * size)` idiom with reallocarray(3) or calloc(3)
- check a couple missed strdup(3) instances for failure
- completely disable landlock on linux when invoking `fnc stash` commands
- fix `fnc tree -c commit` segv when `commit` is an empty tree (initial commit)
- attempt to detect symlinks via F cards when building trees from the repo db
- allow blaming symlinks from tree view if fossil(1)'s `allow-symlinks` is set
- fix potential off-by-one error in ISO 8601 timestamp macro
- fix incorrect logic in work tree root path validation
- implement client-side error handling instead of the library's `fsl_error` API
- fix timeline view horizontal scrolling bug that could garble the view
- report "no changes in the diff requested" instead of showing an empty diff
- add `ccdb` make target to the build system to generate a compilation database
- plug commit id leak in the blame view
- drop ugly diff view 'F' keymap; the ^n/^p keymaps make it all but redundant
- implement diffstat to show histogram of total lines added/removed in the diff
- improve diffs involving renamed files with fossil(1) `fossil mv`
- refactor diff navigation code, API, and manifest parser
- discern aborted from completed stash commands with no hunks selected to stash
- guard against a `line_type` array OOB read when parsing new wiki commits
- improve rendering of tag and ticket artifacts in the diff view
- make '$' keymap scroll to the longest line on the page, not the whole buffer
- align branch id hashes in branch views the same way it's done in tree views
- don't fatally error when non-checkin artifacts are tagged in the timeline
- fix timeline tagging (space keymap) regression from [2d681fc13] that would  
  fatally error when tagging non-checkin (e.g., wiki) artifacts to diff
- allow all commit artifacts (e.g., tag, technote, wiki) as `log -c` arguments
- used fixed-size buffer for commit id SHA hashes
- fix diff view regression from [2d681fc13] that broke diffs between blobs
- miscellaneous documentation improvements in fnc(1) man page and `-h` output
- implement `fnc diff -o` to write diff to stdout without rendering in curses
- make 'n' and 'N' respect the current line position when resuming search
- silently ignore illegal `FNC_VIEW_SPLIT_HEIGHT` values; fallback to default
- guard against out-of-bounds access on empty `optarg` string
- catched missed fclose(3) and unlink(2) calls for failure
- fix NULL pointer dereference in new `fnc diff -o artifact1 artifact2` case
- swap behaviour of the diff view j/k and ^e/^y keymaps
- make 'Q' a valid interactive stash answer to abort without opening help view
- expand diffstat to display in all diff types (i.e., blobs, commits, worktree)
- annotate the checked-out commit to show work tree state in the timeline view
- restore ability to use work tree root, not just cwd, relative paths
- check for and rollback any unlikely open database transactions on exit
- plug leak of char pointer in fnc_file_artifact struct in diff cleanup
- zap unnecessary path allocation in the blame view
- include diffstat and commit metadata in diffs written with the 'P' keymap
- fix changeset line duplication bug when regenerating diffs between blobs
- plug `wchar_t` pointer leak of the diff headline in new `fnc diff -o` case
- fix 'v' keymap to not incorrectly hide diff content in diffs of blobs
- replace fseek(3) with fseeko(3)
- add a tree entry/line index to the tree view headline
- latest upstream libfossil with integer overflow fix [libf:ef095328f]
- fix gcc 11.2.0 compiler warnings (maybe-uninitialised)
- refactor stash implementation
- make `fnc diff` respect fossil(1)'s `allow-symlinks` setting
- make the new `ccdb` makefile target work with macOS bsdmake(1)
- fix redefined variable guarded by platform dependent ifdef
- fix runtime help regression on wide terminals introduced in [0d3e7424d4]
- kill raw mode on wgetnstr(3) input to restore echo(3) behaviour on OpenBSD
- update in-tree sqlite to 3.45.0
- fix regression introduced by unveiling `TMPDIR` rather than `P_tmpdir` in  
  [aae8e777f], which broke tmpfile(3) and mkstemp(3) calls
- zap redundant header
- merge upstream libfossil with gcc 13.2.1 build errors and delta creation fix
- tweaks for successful patch-free builds on all architectures in alpine linux  
  ci with `-Os -fstack-clash-protection -Wformat -Werror=format-security`
- fix `fnc blame -r` regression introduced in [aae8e777f]
- fix undefined behaviour (double-free) when releasing view resources
- allow stash operations involving zero-length blobs (empty tracked files)

**fnc 0.15** 2023-04-20 [[history][0.15a] / [diff][0.15b]]

- update in-tree sqlite to 3.42.0 to fix unused-but-set clang 14.03 build error
- latest upstream libfossil with fixes for clang 14.03 build errors

**fnc 0.14** 2023-04-18 [[history][0.14a] / [diff][0.14b]]

318
319
320
321
322
323
324


325
326
327
328
329
330
331
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406







+
+







- wrap commit comments to the current view width
- implement cmd_diff() to provide the 'fnc diff' interface
- tailor help/usage output to the specified command
- fix invalid memory read in diff routine
- add support for repository fingerprint version 1
- fix line wrap bug that truncated lines in fullscreen mode

[0.16a]: https://fnc.bsdbox.org/timeline?p=0.16&bt=0.15
[0.16b]: https://fnc.bsdbox.org/vdiff?from=0.15&to=0.16
[0.15a]: https://fnc.bsdbox.org/timeline?p=0.15&bt=0.14
[0.15b]: https://fnc.bsdbox.org/vdiff?from=0.14&to=0.15
[0.14a]: https://fnc.bsdbox.org/timeline?p=0.14&bt=0.13
[0.14b]: https://fnc.bsdbox.org/vdiff?from=0.13&to=0.14
[0.13a]: https://fnc.bsdbox.org/timeline?p=0.13&bt=0.12
[0.13b]: https://fnc.bsdbox.org/vdiff?from=0.12&to=0.13
[0.12a]: https://fnc.bsdbox.org/timeline?p=0.12&bt=0.11