CismonX
50f05d2bd3
all: relax compiler requirements
...
- Do not check __STDC_HOSTED__.
- Do not use atomic builtins.
- Do not use thread-local storage for PRNG state.
2025-01-28 20:20:20 +08:00
CismonX
56fa90397d
fs_ops: limit xattr value length
2025-01-27 23:48:37 +08:00
CismonX
18b801f960
doc: update backend API
...
Add doc for the `bookmark_lookup` function.
2025-01-27 23:19:28 +08:00
CismonX
579f396e46
doc: minor update
2025-01-26 19:39:13 +08:00
CismonX
3ed11f53e5
backend: fix xattr bookmark title check
...
Do not check if the bookmark title is a valid filename,
as we said in the user manual.
However, we should ensure that the string does not contain
NUL characters, since we assume that a valid bookmark storage
should not contain bookmarks with such names.
2025-01-26 19:35:03 +08:00
CismonX
996ca0e042
backend_firefox: fix and refactor mkfs
...
- Make sure all tables and indices are created for the database,
even the ones that are not used by BookmarkFS.
- Maintain the schema version in `PRAGMA user_version`.
- Always use `INT` for integer type, and `TEXT` for text type,
so that we could save a little space. This does not affect the
actual datatype (more precisely, type affinity) of the columns.
2025-01-26 00:19:54 +08:00
CismonX
3b45900157
db: allow non-integer argument for safeincr
2025-01-25 21:25:37 +08:00
CismonX
35d4a93a41
backend_firefox: fix sandbox
...
- Allow fdatasync(), since it is used by SQLite when commiting.
- Move `PRAGMA quick_check` to backend_create(), since it sometimes
calls stat() and cannot be sandboxed.
2025-01-25 21:15:57 +08:00
CismonX
10ad224b03
backend: rename backend_sync -> bookmark_sync
2025-01-24 23:07:22 +08:00
CismonX
bff21c54b1
doc: update doc for fsck handler API
...
Add doc for the `run` function.
2025-01-24 18:37:23 +08:00
CismonX
a01912e6f0
doc: misc update
...
- Remove bogus EACCES for BOOKMARKFS_IOC_FSCK_NEXT.
If read permission is denied, the directory fd would not have
been obtained from open() in the first place.
- Add description for pkglibdir.
2025-01-24 17:18:57 +08:00
CismonX
8e86e56dfc
doc: update backend API and fsck handler API
...
- Add doc for the `backend_destroy` function.
- Add doc for the fsck handler `create` and `destroy` functions.
2025-01-24 09:44:04 +08:00
CismonX
623b4dd4f3
backend: rename backend_free -> backend_destroy
2025-01-24 09:12:41 +08:00
CismonX
b9e02d2d3d
fsck: add BOOKMARKFS_FSCK_HANDLER_READONLY flag
...
instead of reusing the BOOKMARKFS_BACKEND_READONLY flag
2025-01-24 08:34:40 +08:00
CismonX
3cb99fe85b
all: fix punctuation regarding "e.g." and "i.e."
...
Follow the convention of modern English grammar that
a comma should usually come after "e.g." and "i.e.".
2025-01-23 19:23:54 +08:00
CismonX
5d861f4752
doc: update doc for backend API
...
Add doc for the `backend_create` function.
2025-01-23 19:11:36 +08:00
CismonX
0510e5e8c0
doc: update doc for fsck handler API
...
Add doc for the `info` function.
2025-01-23 18:02:10 +08:00
CismonX
228f1b621e
doc: misc fix
...
- Specify lowercase "c" for @example, otherwise
GNU Source-highlight recognize it as C++ code.
- ...
2025-01-23 17:48:47 +08:00
CismonX
22263e48f2
backend: rename struct
...
`bookmarkfs_backend_init_resp` -> `bookmarkfs_backend_create_resp`,
since it is used for `backend_create` instead of `backend_init`.
2025-01-23 17:41:31 +08:00
CismonX
b699a613ef
fsck_online: wrap Linux getdents(2) to a function
2025-01-23 00:00:00 +08:00
CismonX
c2bdd02c65
doc: update backend API
...
Add doc for `backend_init` and `backend_info` functions.
2025-01-21 20:15:58 +08:00
CismonX
6989f1e828
doc: misc refactor
2025-01-21 19:24:02 +08:00
CismonX
12fb17463a
doc: add overview for backend and fsck handler API
2025-01-21 11:53:49 +08:00
CismonX
8b1c0d0dc1
doc: misc update
2025-01-20 20:08:06 +08:00
CismonX
712861e8f8
fsck: fix fsck apply
...
- Throw an error if the handler tries to apply in readonly mode
- Do not expose BOOKMARKFS_FSCK_RESULT_END to the handler
2025-01-18 08:52:43 +08:00
CismonX
7aaa8753cc
doc: misc update
...
- Limitations on FreeBSD
- Extended attributes for backends
- ...
2025-01-17 21:52:59 +08:00
CismonX
521fadcc2c
doc: add doc for the Tcl-based fsck handler
2025-01-16 22:19:59 +08:00
CismonX
fb197f9941
doc: fix style
...
Make sure there is a blank line between table items.
This affects Info output.
2025-01-16 12:46:58 +08:00
CismonX
dad6533028
doc: update section "directory entries"
...
Explain why "." and ".." entries are missing from BookmarkFS.
2025-01-16 11:42:42 +08:00
CismonX
57a1a181b8
fsck: minor refactor
2025-01-15 22:44:08 +08:00
CismonX
95d6ff6b52
json: optimize file write
...
- Use larger buffer, reducing system call overhead.
- Always write full blocks, minimizing read-before-write.
2025-01-15 22:34:38 +08:00
CismonX
d4a370c223
backend_chromium: fix bookmark_create()
...
Fix the hashcode used for inserting entry into id map.
2025-01-15 19:35:46 +08:00
CismonX
c0a99474c7
fsck_handler_tcl: improve initialization
...
Initialize interp before entering sandbox, so that unsafe interp
can be used in sandbox mode.
Also no need to register std channels for unsafe interp.
2025-01-14 23:03:24 +08:00
CismonX
aa5326edf9
sandbox: fix landlock rule fd close
2025-01-14 19:45:22 +08:00
CismonX
349877f9a3
backend_firefox: don't bother opening db readonly
...
Readonly db does not work well with WAL mode.
See <https://www.sqlite.org/wal.html#readonly >.
2025-01-14 19:44:34 +08:00
CismonX
76d22c5bcc
doc: misc update
2025-01-14 09:22:26 +08:00
CismonX
7b2942416b
doc: update doc for programs and backends
2025-01-12 23:19:58 +08:00
CismonX
0c65676309
doc: refactor style
...
- Use @samp for string values that are not necessarily code.
- Use @t for integer values.
2025-01-12 18:08:16 +08:00
CismonX
f6fcd489f2
doc: add doc for fsck handlers
2025-01-12 17:06:05 +08:00
CismonX
3de5006ae5
fsck_util: fix escape_control_chars()
...
Argument passed to iscntrl() must be representable as unsigned char.
2025-01-11 19:17:18 +08:00
CismonX
c1b8267939
doc: add doc for fsck ioctls
2025-01-11 19:04:46 +08:00
CismonX
d6df1cd89b
fsck: add result code for "." and ".." entries
...
BOOKMARKFS_FSCK_RESULT_NAME_INVALID should be used solely for
names that are valid as filename, but not as bookmark name.
2025-01-11 18:32:50 +08:00
CismonX
68281c2ecb
doc: refactor doc for mount.bookmarkfs
...
Explain the `-o ctime` option better.
2025-01-11 02:28:27 +08:00
CismonX
7e54112178
doc: update doc for fsck.bookmarkfs
2025-01-11 02:16:00 +08:00
CismonX
a4878bfe6d
doc: refactor
2025-01-08 22:49:35 +08:00
CismonX
16e454c30c
doc: refactor
2025-01-08 12:57:06 +08:00
CismonX
9960d67465
doc: add doc for the Chromium backend
2025-01-08 11:58:15 +08:00
CismonX
1602853772
doc: add doc for the Firefox backend
2025-01-08 01:12:44 +08:00
CismonX
6978feb9d4
doc: update doc for mount.bookmarkfs
...
Mention about automatically dismounting on signals.
2025-01-08 01:11:56 +08:00
CismonX
47f51435d1
doc: update doc for fsck.bookmarkfs
2025-01-06 20:06:08 +08:00