arnold@gatech.CSNET (Arnold Robbins) (11/18/85)
Since posting the announcement that I was going back to work on the Bourne shell, I've been getting some mail, most of which is repetitive. To forestall any more, let me clarify what I am and am not going to do, and why. The previous enhancements that I made were almost all *additions* to the code. The history mechanism was "slipped in underneath" so to speak, most of the shell doesn't even know that history processing is going on. The same is true of the rest of the additions I am planning on making. Many have asked me why I won't add aliases or arrays of shell variables. The answer is that to do so is HARD. It would require *rewriting* major portions of the code, and I don't trust myself to integrate any such rewriting completely, without bugs. Also, the shell is a "pet project" of mine. My superiors tolerate my working on it, as long as I do the rest of my work in a timely fashion. There is only so much that I can reasonably consider doing, or else nothing will get done. Finally, the System V Release 2 shell already has shell functions, which are more powerful than aliases. People who only have BSD source have my sympathies, but there is only so much I can do. Many other people have asked for command line screen editing features. I already mentioned in my previous note that this would be provided. The code that implements it was ripped out of the tcsh, and modified to work with my mods to the shell. The person who did this sent me the code, and I will include it (although it may take some time to make sure it works under System V). Now, a note on the BSD shell. If you don't have System V Release 2 source, you have my sympathy and pity. I will make as many of my mods to the BSD shell as are feasible, but I will not add things that are in the S5 shell, like functions or pwd as a builtin. Dealing with the original, algol-68-via-macros code is a real, um, bear, and I almost considered not doing it this time. Be assured that the S5 shell will work under 4.2 BSD, and will provide job control. On a more upbeat note, if anyone else out there does want to try to add aliases, or arrays of shell variables to the Bourne shell, I will be more than happy to include that code in what I send out. I will willingly act as a "clearinghouse" for Bourne shell enhnacements. If you want to do something like this, or have done it already, let me know, so that I can coordinate any distributed efforts (we don't need two people doing aliasing, and no one doing arrays, for instance). In sum, I have been very pleased by the niche my shell has found out there, and am glad to do more. But there is only so much I can reasonably do. If other people want to volunteer to do things that I cannot, please do. I will be happy to include it, and we can make it a net-wide effort. Sh lovers of the world unite! Nuke the csh! :-) -- Arnold Robbins CSNET: arnold@gatech ARPA: arnold%gatech.csnet@csnet-relay.arpa UUCP: { akgua, allegra, hplabs, ihnp4, seismo, ut-sally }!gatech!arnold Real Unix hackers disdain wimpy languages like C and AWK in favor of /bin/sh.