Commit Graph

29492 Commits

Author SHA1 Message Date
Jōshin
74b71f35cc
Merge branch 'next/vere' into jo/unix-sane 2022-02-02 12:27:25 -06:00
fang
0998228a7e
Merge pull request #5428 from urbit/m/--vere-args
vere: support long-form command line arguments
2022-02-02 19:26:35 +01:00
fang
5588953d84
Merge branch 'next/vere' into m/--vere-args 2022-02-02 19:26:17 +01:00
Jōshin
bd67814a95
Merge branch 'next/vere' into jo/khan-c3 2022-02-02 12:24:55 -06:00
Jōshin
f34f6a91e9
conn: comment format 2022-02-02 12:24:36 -06:00
Jōshin
997544eb11
conn: describe +fyrd interface to %khan 2022-02-02 12:24:36 -06:00
Joe Bryan
1736bae519
Merge pull request #5572 from urbit/jb/dirty-loom
u3: fix snapshot corruption by preemptively dirtying the loom
2022-02-02 13:01:52 -05:00
Jōshin
7fcdf6ef54
noun: go ahead and enforce that invariant (#5579)
* noun: go ahead and enforce that invariant

* mingw: sysconf compat wrapper
2022-02-02 08:06:05 -06:00
Joe Bryan
60fc5c1389 u3: refines snapshot system docs 2022-02-01 20:11:40 -05:00
Jōshin
1183634501
unix: knot mapping that is not a valid @ta
'~.' was a pun with the @ta encoding, which could cause people to get
confused about how the mapping actually worked.

I had previusly wanted the escape sequence to be a valid @ta, since I
had wanted to check that path components were (sane %ta) prior to doing
$knot conversion. However @joemfb mentioned that it was desirable to
have it not be a valid @ta so that if someone messed up the encoding in
the future, the paths would be detectably wrong.

This necessitates calling _unix_knot_to_string on unsanitized input,
which means we can no longer assume that it won't contain non-(sane %ta)
characters, which means we can no longer assert that '\\' is not in the
string on Linux.

Also added a seemingly forgotten null byte to _unix_knot_to_string.
2022-02-01 12:56:50 -06:00
Jōshin
7b6e89fc15
unix: comment with suggestions for future 2022-01-31 23:07:13 -06:00
Jōshin
4a74b9b13f
unix: fix regression in _unix_scan_mount_point
We previously checked for '#' at strlen(out_u->d_name) - 1 here. So just
go ahead and do (sane %ta) on the whole out_u->d_name.
2022-01-31 20:52:42 -06:00
Jōshin
46a1139e70
main: repath cleanup 2022-01-31 17:26:07 -06:00
Jōshin
5591752f9c
main: support files in cwd 2022-01-31 17:02:18 -06:00
Jōshin
0375646a93
unix: cane before root removal 2022-01-31 16:34:09 -06:00
Liam Fitzgerald
b14dc76992 interface: refine joining error cases 2022-01-31 16:21:27 -06:00
Liam Fitzgerald
9540afecad group-view: fix errored rollback 2022-01-31 16:20:57 -06:00
Jōshin
6c5d7133f1
unix: fix compile warning 2022-01-31 14:25:22 -06:00
Jōshin
eaf47d95c5
unix: test cases 2022-01-31 14:23:39 -06:00
Jōshin
3f1c526d2e
main: repath scry path 2022-01-31 14:19:27 -06:00
Jōshin
8191955eff
unix: reorder checks 2022-01-31 14:18:22 -06:00
Jōshin
c83d9b9c1e
unix: hard-code %put base directory 2022-01-31 14:03:34 -06:00
Jōshin
2b05fa2ebe
unix: use $ for types 2022-01-31 13:53:22 -06:00
Jōshin
9172b3dfe8
unix: c3_ 2022-01-31 13:52:44 -06:00
Jōshin
6b5361d7df
unix: code review feedback 2022-01-31 13:49:51 -06:00
Jōshin
ca1ed3d7a1
vere: remove 'new' from header comments
'New' is relative; some of these subsystems were 'new' in 2015.
2022-01-31 13:21:50 -06:00
Jōshin
b8277be5b2
vere: remove walk, move save to unix 2022-01-31 13:19:32 -06:00
Jōshin
7fc9db8c9a
unix: reformat comments 2022-01-31 12:28:45 -06:00
Jōshin
443315f401
vere: rename u3_unix_{safe,cane} 2022-01-31 12:25:42 -06:00
Jōshin
60f1a44910
unix: remove extra layer of conditional 2022-01-31 11:14:54 -06:00
Jōshin
0d9264ea1c
unix: don't require that string is non-empty
Fixes an assert failure if you try to commit a file named `~.`.
2022-01-31 11:13:57 -06:00
Jōshin
2a5baa9e3f
main: simplify _main_repath 2022-01-31 10:59:23 -06:00
Jōshin
b5a49a159f
unix: use (sane %ta) out of arvo 2022-01-31 10:43:56 -06:00
Jōshin
19002c72dd
compat: mingw realpath 2022-01-31 10:24:11 -06:00
Jōshin
c041080729
unix: bugfixes
- Don't test for '\\' in u3_unix_safe. Doing otherwise was crashing vere
  when unmounting a mountpoint that had come to contain a file with '\\'
  in its path. This might mean you can do bad things on Windows if other
  checks fail.

- Ignore any files whose names do not pass `(sane %ta)` when scanning
  directories. (This reimplements `(sane %ta)` in C. Perhaps it should
  instead call `(sane %ta)`.)

- Use '~.' rather than '~' for the escape. We ignore files that end in
  '~', probably for vim backup-file reasons.

- Add a _unix_string_to_knot missed in the prior conversion.
2022-01-31 10:00:35 -06:00
Jōshin
00f7407a5e
unix: escape overloaded paths
unix cannot represent the file with empty name, and it has special
mappings for '.' and '..'. as these three are all valid arvo `+knot`s,
we need to escape them if we come across them.

the method we use to escape is: if we encounter any of those three
`+knot`s, or any `+knot` starting with '~', we prepend its filename with
a '~'. and when going from filename to `+knot`, we do the reverse; i.e.
we ignore a '~' if it is the first character of a filename.

the current implementation just crashes if it encounters a `+knot`
containing '/' or '\\', neither of which are valid under the current
implementation of `@ta` (which only accepts numbers, lowercase, '-',
'~', '.', and '_'.)

it also crashes if it encounters a file containing '\\'. something else
should happen here; most likely vere should just ignore the file.
2022-01-31 10:00:35 -06:00
fang
e33af60eca
Merge pull request #5570 from urbit/fix-rekey-for-multikey
helm: fix |rekey to work with multikey files
2022-01-31 16:57:28 +01:00
Jōshin
d4b4504ae4
vere: move lockfile from unix to disk 2022-01-30 19:26:45 -06:00
Jōshin
a4b40d104c
noun: noop, C 'types' being what they are... 2022-01-30 13:09:20 -06:00
Jōshin
0248f57f0b
unix: comment format 2022-01-29 23:24:12 -06:00
Jōshin
3d36582fda
unix: whitespace cleanup 2022-01-29 23:24:12 -06:00
Jōshin
c8f8ced249
main: canonicalize paths from command line 2022-01-29 23:24:11 -06:00
Jōshin
a74d08f489
vere: extra fs calls 2022-01-29 23:24:11 -06:00
Jōshin
741e1d3e8b
vere: replace fs calls with asserting counterparts 2022-01-29 23:24:11 -06:00
Jōshin
d2fc42c3ea
unix: asserting wrappers around unix fs calls 2022-01-29 23:24:11 -06:00
Jōshin
2e53930d5a
Merge branch 'master' into next/vere 2022-01-28 21:23:00 -08:00
Hunter Miller
874d380ad5 groups: updating version 2022-01-28 20:30:13 -06:00
Hunter Miller
dc188d6059 groups: fixing bad glob 2022-01-28 20:29:34 -06:00
Hunter Miller
af90ea7a9d
Merge pull request #5574 from urbit/hm/fix-join-kind-links
hotfix/groups: fix join links
2022-01-28 20:13:40 -06:00
Hunter Miller
de747b343f join: don't show modal if no kind 2022-01-28 19:51:35 -06:00