Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.os.vms    |    DEC's VAX* line of computers & VMS.    |    264,096 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 262,391 of 264,096    |
|    Mark Berryman to Lawrence D'Oliveiro    |
|    Re: Local Versus Global Command Options    |
|    17 Feb 25 12:02:37    |
      From: mark@theberrymans.com              On 2/16/25 5:43 PM, Lawrence D'Oliveiro wrote:       > On Sun, 16 Feb 2025 15:52:23 -0700, Mark Berryman wrote:       >       >> On *nix systems, the shell parses the command line into an array of       >> strings using unquoted spaces as the separator which is then passed to       >> the created process.       >       > If you don’t go through a shell, then you pass an array of already-       > separated words and you don’t have to worry about shell specials.       >       >> On VMS, the crtl does the same parsing which means the program still       >> sees an array of strings the same as on a *nix system.       >       > Consider what happens: if you pass unquoted text to program X, DCL       > converts it to uppercase, and I think also normalizes multiple spaces to a       > single space. If you don’t want the text to be uppercased or space-       > normalized, you put it in pairs of double quotes. But then these double       > quotes also get passed as part of the command line. So the receiving       > program has to do some non-trivial parsing just to get simple literal text       > via the command line.              So, so, so very wrong. You are *way* behind the times.              I *never* have to quote arguments when using programs that still use       *nix syntax on VMS. My arguments' case is never changed.              Here is the entry point to any C program on VMS:               int main (int argc, char *argv[], char *envp[]);              See? Argument passing works the same on VMS as it does on *nix, as       described above.              Let's see, what's a good example? Ah, here's one:              $ gs -q -P- -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr       -sOutputFile= |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca