I got the pd-ksh from John MacMillan after he indicated that he had a version of it that had vi editing (I'd seen various versions with emacs-editing, but none with vi). It had a few bugs and areas which were not quite complete. I fixed (or at least tried) to fix several; there are still some things which I plan on doing (or at least looking into). Bugs fixed (or at least abated): vi-mode changes: - Changed memcpy() to memmove(), which fixed the trashing of the end of the edit buffer while inserting in the middle of a line or with use of '#' - using 'r' replacing the current character with ^@ - typing ctrl-c resulting in next command being garbled - lack of support for '-' and '+' (pretty trivial) - finish adding support for '*' (not entirely sure I'm freeing malloc'ed memory correctly here, but I haven't had any problems) - treats '_' as end of a word general changes: - reporting "not found" when a file actually doesn't have the appropriate execute bit set (now says "cannot execute" or "not found", as appropriate) Still to do: vi changes: - fix ctrl-r (I've come up with a hack, but it involves redrawing the screen a lot when it isn't necessary; I really wouldn't consider this a fix) - add support for 'v' general changes: - seems to be a memory leak when executing shells in the current shell; repeatedly executing ". /etc/profile" increased the size of the program as reported in the "SZ" field of "ps -l" - don't give a file its complete pathname in argv[0]; only its filename (religious issue?) - history recall should start at the previous command, not the current one (typing "r r" causes an infinite loop)