Commits


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.


lib9: move seek into open.c More preparation for opendir.


lib9: add close More preparation for opendir.


lib9: merge create, open, dirread into open.c Preparation for using opendir.


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


all: fix #includes for AIX, add a few AIX "implementation" files


mk: support Big Archive Format under AIX


all: update build scripts to fix AIX XL/C compatibility


fmt: disable use of stdatomic on AIX XL C and old GCC C11 is apparently too new for these systems. Fixes #55.


9term.app: respect user-set shell instead of forcing bash


rc(1): mention /etc/shells in BUGS section


rc: clean up parser levels, disallow free carats on lists


rc: allow unquoted = in command arguments dd fans rejoice! Also helps with commands like go test -run=x.


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.


rc: move newline handling into parser