Commit Briefs

Russ Cox

lib9: use opendir/readdir to read directories

getdirentries(2) has been deprecated on macOS since 10.5 (ten releases ago). Using it requires disabling 64-bit inodes, but that in turn makes binaries incompatible with some dynamic libraries, most notably ASAN. At some point getdirentries(2) will actually be removed. For both these reasons, switch to opendir/readdir. A little clunky since we have to keep the DIR* hidden away to preserve the int fd interfaces, but it lets us remove a bunch of OS-specific code too.


Russ Cox

lib9: move seek into open.c

More preparation for opendir.


Russ Cox

lib9: add close

More preparation for opendir.


Russ Cox

lib9: merge create, open, dirread into open.c

Preparation for using opendir.


Dan Cross

fmt: adjust GCC version check

atomics were added in GCC 4.9: https://gcc.gnu.org/gcc-4.9/changes.html





Russ Cox

fmt: disable use of stdatomic on AIX XL C and old GCC

C11 is apparently too new for these systems. Fixes #55.





Russ Cox

rc: allow unquoted = in command arguments

dd fans rejoice! Also helps with commands like go test -run=x.


Russ Cox

rc: move free carat handling into parser

This fixes at least one shell script (printfont) that expected 'x'`{y}'z' to mean 'x'^`{y}^'z' as it now does. Before it meant: 'x'^`{y} 'z' One surprise is that adjacent lists get a free carat: (x y z)(1 2 3) is (x1 y2 z3) This doesn't affect any rc script in Plan 9 or plan9port.