tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Modifications on Tcsh.



Hello. I've introduced some modifications on Tcsh.
• Functions;
• variable assignment from pipes and redirections;
• comments on interactive sessions;
• tell whether stdin is empty.

There's more, but I recognize these as most valuables.

I'd appreciate for any feedback, suggestion or contribution. Contributions of any kind are very welcome.

The source code is here [https://github.com/Krush206/tcsh]. The modifications are separated in branches. Later on, I might create a branch including all modifications.

I might make these modifications into the original Csh as well. Actually, I do have a repository for the original Csh [https://github.com/Krush206/3bsd-csh]. Though out-of-date, only functions have been implemented.

The original idea on functions was based on goto and source, after realizing these built-ins make a great combination for simulating functions. This initial idea was limited to scripts. Recently, it evolved to source from pipes, which sources from a tree derived from aliases and variables, making suitable for interactive sessions as well. Unlike to aliases and variables, the tree is restrictive. Once a function is declared, may not be redeclared or undeclared.

The "Variable assignment from pipes and redirections" idea, originally, had assignment limited to files, and would read to a pre-defined variable. It evolved to allow assignment from pipes, as well as reading to user-defined variables. This work also provides a fix for blank output from pipes.

As of now, only the "Tell whether stdin is empty" idea was approved to upstream.


Home | Main Index | Thread Index | Old Index