Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!unmvax!ogccse!schaefer From: schaefer@ogccse.ogc.edu (Barton E. Schaefer) Newsgroups: comp.mail.mush Subject: Re: Annoying misfeature? Keywords: UNIX commands, parsing Message-ID: <4889@ogccse.ogc.edu> Date: 28 Sep 89 19:11:01 GMT References: <1398@syma.sussex.ac.uk> Reply-To: schaefer@ogccse.UUCP (Barton E. Schaefer) Organization: Oregon Graduate Center, Beaverton, OR Lines: 47 In article <1398@syma.sussex.ac.uk> jasonh@syma.sussex.ac.uk (Jason Handby) writes: } } I'm using mush 6.5.6 on a Sequent Symmetry running Dynix 3.0.15 . } The program development environment which we use at Sussex is called } Poplog, and the principle language involved is pop11. This is } accessed using the UNIX command "pop11". Unfortunately, mush won't } deal with UNIX commands that contain numbers in their name (or } anywhere in the path: [....] ). This is a documented backwards-to-ucbMail-feature. In Mail, it is not necessary to separate message numbers/metachars from command names; so you can use "d11" to delete message 11. Mush wants to be a little more structured in its parsing, but also wants to maintain Mail compatibility. So it inserts a space to the left of any digit-string or .*^$ it finds. Breaking at numbers in the middle of a path like /user2/... is obviously beyond the intent of this parsing. Shutting it off following a `/' is a fairly trivial change, which I will make a note to get into the next release. That doesn't help with "pop11". HOWEVER, mush does handle quoted strings correctly, that is, it does not break up words in quotes. To run pop11, you need only use mush> 'pop11' However part 2, mush does NOT break up the words after history (!* etc.) expansion is done, so you can make a general fix: cmd pop 'pop\!*' which pastes the 11 back against the word "pop": pop11 args --> (pop) (11) (args) --> (pop11) (args) ^--- !* --^ ^-- !* --^ By "general fix," I mean it will also work for your home directory: cmd /user '/user\!*' Hence it doesn't matter what the "tail" of the path is. The /user will only be broken out when followed by a digit, as in /user2/cogs; the cmd expansion will not happen to /user/anything/else. -- Bart Schaefer "And if you believe that, you'll believe anything." -- DangerMouse CSNET / Internet schaefer@cse.ogc.edu UUCP ...{sequent,tektronix,verdix}!ogccse!schaefer