Make improvements

- Expand redbean UNIX module
- Expand redbean documentation
- Ensure Lua copyright is embedded in binary
- Increase the PATH_MAX limit especially on NT
- Use column major sorting for linenoise completions
- Fix some suboptimalities in redbean's new UNIX API
- Figured out right flags for Multics newline in raw mode
This commit is contained in:
Justine Tunney 2022-04-24 09:59:22 -07:00
parent cf3174dc74
commit 2046c0d2ae
305 changed files with 6602 additions and 4221 deletions

View file

@ -151,14 +151,6 @@ o/$(MODE)/examples/hello.com.dbg: \
$(APE_NO_MODIFY_SELF)
@$(APELINK)
o/$(MODE)/examples/printargs.com.dbg: \
$(EXAMPLES_DEPS) \
o/$(MODE)/examples/printargs.o \
o/$(MODE)/examples/examples.pkg \
$(CRT) \
$(APE_NO_MODIFY_SELF)
@$(APELINK)
o/$(MODE)/examples/nesemu1.o: QUOTA += -M512m
$(EXAMPLES_OBJS): examples/examples.mk

View file

@ -7,30 +7,8 @@
http://creativecommons.org/publicdomain/zero/1.0/ │
*/
#endif
#include "libc/bits/safemacros.internal.h"
#include "libc/calls/calls.h"
#include "libc/runtime/runtime.h"
int main() {
int pip[2];
char buf[PATH_MAX];
char *args[2] = {0};
if (strcmp(nulltoempty(getenv("TERM")), "dumb") && isatty(0) && isatty(1) &&
((args[0] = commandv("less", buf)) ||
(args[0] = commandv("more", buf)))) {
close(0);
close(2);
pipe(pip);
if (!vfork()) {
close(2);
execv(args[0], args);
_Exit(127);
}
close(0);
__printargs("");
close(2);
wait(0);
} else {
__printargs("");
}
__printargs("");
}

View file

@ -67,9 +67,9 @@ int main(int argc, char *argv[]) {
char *exepath;
struct rusage r;
long double real;
char exebuf[PATH_MAX];
char exebuf[PATH_MAX + 1];
if (argc >= 2) {
if ((exepath = commandv(argv[1], exebuf))) {
if ((exepath = commandv(argv[1], exebuf, sizeof(exebuf)))) {
real = nowl();
argv[1] = exepath;
if ((ws = xvspawn(OnChild, argv + 1, &r)) != -1) {

View file

@ -20,7 +20,7 @@
int main(int argc, char *argv[]) {
int i;
for (i = 1; i < argc; ++i) {
if (touch(argv[i], 0644) == -1) {
if (touch(argv[i], 0666) == -1) {
fprintf(stderr, "ERROR: %s: %s\n", argv[i], strerror(errno));
exit(1);
}