home *** CD-ROM | disk | FTP | other *** search
- Jay,
-
- Here are my thoughts on the subject of spaces left by non-existent tokens
- in alias script expansions.
-
- Please excuse the fact that the names which I use for elements of the
- command line and alias script are not the same as those which you very
- nicely set forth in the ARUNZ09N.DOC file, however I wish to set forth a
- concept which depends on a slightly different nomenclature. I think my
- meanings will be obvious.
-
- First, let me make a couple of definitions.
-
- By a "string" I mean a set of characters defined by naming each element of
- the set. Thus the statement $1 = cat means that the string named $1 is a
- set of the characters c-a-t. A null string, in this case, is the same as
- a non-existent string.
-
- By a "field", I mean a >delimited< field which exists in a relationship to
- other fields. A field consists of a string and a >field delimiter< which
- separates it from other fields. A null field is NOT the same as a
- non-existent field. The former consists of a field containing a null
- string, while the latter has no existence by virtue of the fact that it
- has no delimiter. A command line and an alias script both consist of a
- set of delimited fields, the delimiter being a space or a tab.
-
- It seems to me that what we have at present with ARUNZ (and other similar
- command line expanders) is a situation where one syntax is used to define
- two different kinds of parameters, and perhaps we need a syntax for each
- kind. We may call one a "string substitution parameter" and the other a
- "field substitution parameter". Currently, $n functions in ARUNZ strictly
- as a string substitution paramter. If the command line field n contains
- the string xxxx then $n in the alias script will be so expanded. If the
- field n does not exist in the command line, then a null string will be
- substituted in place of $n. This is fine for such expansions as
- "FOO$1.COM" where FOO.COM is, for instance, the current version and
- previous versions have numbers which may be substituted as indicated.
- This is srictly a string substitution operation. On the other hand, when
- we use $n to indicate the contents of a >field< in an alias script, as in
- FOO $1 $2, we are using it as a field substitution parameter. Since we
- are substituting one field for another, this works fine unless a command
- line field is non-existent. If this is the case, the corresponding field
- in the expanded alias script must also not exist. Using a string
- substitution parameter for the job will simply produce a null field - not
- the same.
-
- I would suggest that you develope ARUNZ to differentiate these two kinds
- of parameters - perhaps %n or $%n for string substitution and $n for field
- substitution, or some such. Let me know what you think.
-
-
- Best,
-
-
-
- Lindsay Haisley