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,376 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to Lawrence D'Oliveiro   
   Re: Local Versus Global Command Options   
   13 Feb 25 20:06:47   
   
   From: arne@vajhoej.dk   
      
   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»,«infile-2»/   
   local-input-options-2»,... -   
   >          «outfile-1»/«local-output-options-1»,«outfile-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-name-   
   Â»=«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   
      
   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