home bbs files messages ]

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,375 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to All   
   Re: Local Versus Global Command Options   
   13 Feb 25 21:37:04   
   
   From: arne@vajhoej.dk   
      
   On 2/13/2025 8:06 PM, Arne Vajhøj wrote:   
   > On 2/13/2025 5:52 PM, Lawrence D'Oliveiro wrote:   
   >> What would DCL-style syntax for ffmpeg look like? I suppose one   
   >> obvious equivalence would be   
   >>   
   >>      ffmpeg -   
   >>          «infile-1»/«local-input-options-1»,«inf   
   le-2»/«local-input-   
   >> options-2»,... -   
   >>          «outfile-1»/«local-output-options-1»,«o   
   tfile-2»/«local-   
   >> output-options-2»,... -   
   >>   
   >> (being very careful about where the commas go), but what about the   
   >> syntax for filtergraphs? Would it be something like   
   >>   
   >>      /vf=(«filter-name-1»=«filter-params-1»,«filter-   
   ame-2»=«filter-   
   >> params-2»...)   
   >>   
   >> Does DCL have provision for this sort of complexity?   
   >   
   > You can do quite a bit with CDU, CLD and CLI$:   
   >   
   > $ type fun.cld   
   > define verb fun   
   >      image "sys$disk:[]fun"   
   >      parameter p1, value(type=$file)   
   >      parameter p2, value(type=$file)   
   >      parameter p3, value(type=$file)   
   >      parameter p4, value(type=$file)   
   >      parameter p5, value(type=$file)   
   >      parameter p6, value(type=$file)   
   >      parameter p7, value(type=$file)   
   >      parameter p8, value(type=$file)   
   > qualifier q1, placement=local   
   > qualifier q2, value(type=a_and_b, list, required), placement=local   
   > define type a_and_b   
   >      keyword a, value(type=$number, required)   
   >      keyword b, value(type=$number, required)   
   > $ type fun.pas   
   > [inherit('sys$library:pascal$cli_routines')]   
   > program fun(input,output);   
   >   
   > type   
   >     pstr = varying [255] of char;   
   >   
   > procedure check(pn : pstr);   
   >   
   > var   
   >     fnm, a, b : pstr;   
   >   
   > begin   
   >     if odd(cli$present(pn)) then begin   
   >        cli$get_value(pn, fnm.body, fnm.length);   
   >        write(pn, '=', fnm);   
   >        if odd(cli$present('Q1')) then begin   
   >           write(' Q1=present')   
   >        end else begin   
   >           write(' Q1=notpresent')   
   >        end;   
   >        if odd(cli$present('Q2')) then begin   
   >           cli$get_value('Q2.A', a.body, a.length);   
   >           write(' A=', a);   
   >           cli$get_value('Q2.B', b.body, b.length);   
   >           write(' B=', b);   
   >        end;   
   >        writeln;   
   >     end;   
   > end;   
   >   
   > begin   
   >     check('P1');   
   >     check('P2');   
   >     check('P3');   
   >     check('P4');   
   >     check('P5');   
   >     check('P6');   
   >     check('P7');   
   >     check('P8');   
   > end.   
   > $ pas fun   
   > $ lin fun   
   > $ set comm fun   
   > $ fun x.dat /q2=(a:1,b:2) y.dat /q1 /q2=(a:3,b:4) z.dat /q2=(a:5,b:6)   
   > P1=x.dat Q1=notpresent A=1 B=2   
   > P2=y.dat Q1=present A=3 B=4   
   > P3=z.dat Q1=notpresent A=5 B=6   
      
   Or with a P1 list:   
      
   $ type fun2.cld   
   define verb fun2   
        image "sys$disk:[]fun2"   
        parameter p1, value(type=$file, list, required)   
   qualifier q1, placement=local   
   qualifier q2, value(type=a_and_b, list, required), placement=local   
   define type a_and_b   
        keyword a, value(type=$number, required)   
        keyword b, value(type=$number, required)   
   $ type fun2.pas   
   [inherit('sys$library:pascal$cli_routines')]   
   program fun2(input,output);   
      
   type   
       pstr = varying [255] of char;   
      
   var   
       fnm, a, b : pstr;   
      
   begin   
       while odd(cli$get_value('P1', fnm.body, fnm.length)) do begin   
          write(fnm);   
          if odd(cli$present('Q1')) then begin   
             write(' Q1=present')   
          end else begin   
             write(' Q1=notpresent')   
          end;   
          if odd(cli$present('Q2')) then begin   
             cli$get_value('Q2.A', a.body, a.length);   
             write(' A=', a);   
             cli$get_value('Q2.B', b.body, b.length);   
             write(' B=', b);   
          end;   
          writeln;   
       end;   
   end.   
   $ pas fun2   
   $ lin fun2   
   $ set comm fun2   
   $ fun2 x.dat/q2=(a:1,b:2), y.dat/q1/q2=(a:3,b:4), z.dat/q2=(a:5,b:6)   
   x.dat Q1=notpresent A=1 B=2   
   y.dat Q1=present A=3 B=4   
   z.dat Q1=notpresent A=5 B=6   
      
   Arne   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca