summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rc/plan9.c
AgeCommit message (Collapse)Author
2022-01-03rc: make it portable (for UNIX)cinap_lenrek
Fixup remaining Plan9 dependencies (chartorune()). Add Makefile for UNIX-like systems (tested with Linux and APE). Make error printing consistent, use Errstr() explicitely. Get rid of NSTATUS buffer limit, just malloc it.
2021-12-31rc: add err != nil check for early exitcinap_lenrek
2021-12-31rc: fix everythingcinap_lenrek
Untangle the lexer and interpreter thread state. Fix the file and line number error reporting, getting rid of Xsrcfile instruction, as the whole code block can only come from a single file, stuff the source file in slot[1] of the code block instead. Remove limitations for globber (path element limits) and be more intelligent about handling globbing by inserting Xglob instruction only when needed and not run it over every Xsimple argument list. Remove fragile ndot magic and make it explicit by adding the -q flag to . builtin command. Add -b flag for full compilation. Make exitnext() smart, so we can speculate thru rcmain and avoid the fork(). Get rid of all print(2) format functions and use io instead. Improve the io library, adding rstr() to handle tokenization, which allows us to look ahead in the already read buffer for the terminators, avoiding alot of string copies. Auto indent pcmd(), to make line number reporting more usefull. Implement here documents properly, so they can work everywhere.
2021-06-22rc: correct line numbersOri Bernstein
When loading a file using ".", we could end up with our line numbers thrown off due to the mutation of lexline. Putting lexline into the runq beside the file that we're reading from causes it to get pushed and popped correctly, so that we no longer lose track of our location.
2020-11-01rc: show line numbers on errorOri Bernstein
This change provides a location for errors like 'null list in concatenation'.
2020-08-04rc: avoid stat calls for directory globbingcinap_lenrek
On Plan9, we can count on Readdir() onlydirs argument to work, which allows us to avoid stating every single file to see if it is a directory.
2019-01-20rc: clear out redirections on "rfork F" (RFCFDG)cinap_lenrek
rfork F closes all file descriptors, so we have to invalidate the redirections as they are now refering to closed files. not doing so causes the wrong file descriptors being closed later on as the fd numbers get reused.
2016-05-16rc: simplify execfinit() / Xrdfn() using the globber to lookup /env/fn'#'*cinap_lenrek
2016-05-16rc: fix double close() in addenv()cinap_lenrek
2016-05-15rc: remove pointless Memcpy(),Malloc(),Realloc() and efree() wrapperscinap_lenrek
2016-02-22rc: terminate rc when exec fails, cleanupcinap_lenrek
The execexec() function should never return, as it irreversably changes the filedescriptor table for the new program. This means rc's internal filedesciptors for reading the script get implicitely closed and we cannot continue the rc interpreter when Execute() fails. So Execute() now sets the error status, and execexec() runs Xexit() in case Execute() returns.
2012-02-08rc: change plan9 envname limit to 128, cleanupcinap_lenrek
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen