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,379 of 264,096   
   Simon Clubley to arne@vajhoej.dk   
   Re: Local Versus Global Command Options   
   14 Feb 25 19:02:47   
   
   From: clubley@remove_me.eisner.decus.org-Earth.UFP   
      
   On 2025-02-14, Arne Vajhøj  wrote:   
   >   
   > You can define a bit in CLD. Including specifying that   
   > something is a number and something else is from an   
   > enumeration list.   
   >   
   > $ type fun3.cld   
   > define verb fun3   
   >      image "sys$disk:[]fun3"   
   >      parameter p1, value(type=$file, list, required)   
   > qualifier q, value(type=threeitems, list, required), placement=local   
   > define type threeitems   
   >      keyword a, value(type=$number, required)   
   >      keyword b, value(type=$quoted_string, required)   
   >      keyword c, value(type=myenum, required)   
   > define type myenum   
   >      keyword x   
   >      keyword y   
   >      keyword z   
   > $ type fun3.pas   
   > [inherit('sys$library:pascal$cli_routines')]   
   > program fun3(input,output);   
   >   
   > type   
   >     pstr = varying [255] of char;   
   >   
   > var   
   >     fnm, a, b, c : pstr;   
   >   
   > begin   
   >     while odd(cli$get_value('P1', fnm.body, fnm.length)) do begin   
   >        write(fnm);   
   >        if odd(cli$present('Q')) then begin   
   >           cli$get_value('Q.A', a.body, a.length);   
   >           write(' A=', a);   
   >           cli$get_value('Q.B', b.body, b.length);   
   >           write(' B=', b);   
   >           cli$get_value('Q.C', c.body, c.length);   
   >           write(' C=', c);   
   >        end;   
   >        writeln;   
   >     end;   
   > end.   
   > $ pas fun3   
   > $ lin fun3   
   > $ set comm fun3   
   > $ fun3 x.dat/q=(a:1,b:"This is x",c:x), y.dat/q=(a:2,b:"This is y",c:y),   
   > z.dat/q=(a:3,b:"This is z",c:z)   
   > x.dat A=1 B="This is x" C=X   
   > y.dat A=2 B="This is y" C=Y   
   > z.dat A=3 B="This is z" C=Z   
   > $ on error then continue   
   > $ fun3 x.dat/q=(a:x,b:"This is x",c:x), y.dat/q=(a:2,b:"This is y",c:y),   
   > z.dat/q=(a:3,b:"This is z",c:z)   
   > %DCL-W-NUMBER, invalid numeric value - supply an integer   
   >   \X\   
   > $ fun3 x.dat/q=(a:1,b:"This is x",c:xdat), y.dat/q=(a:2,b:"This is   
   > y",c:y), z.dat/q=(a:3,b:"This is z",c:z)   
   > %DCL-W-IVKEYW, unrecognized keyword - check validity and spelling   
   >   \XDAT\   
   >   
      
   But it is no longer ffmpeg syntax, but convoluted DCL syntax. It also   
   doesn't help you with the main problem I mentioned, which is parsing   
   and validating the filter syntax. To give you an idea of the scale of   
   the problem, here is the mplayer man page (which I know a lot better   
   than the ffmpeg filters):   
      
   https://linux.die.net/man/1/mplayer   
      
   That is a _very_ long man page, so search for "-vf-add" and you should   
   be in a section marked "Video Filters". In that section are the list of   
   available filters, starting with the crop one I mentioned earlier.   
      
   How would you turn the list of filters, each with their own syntax, into   
   something that can be validated by DCL ? As a reminder, it is critical   
   that the filters are available to the program in the order they were   
   specified on the command line.   
      
   Simon.   
      
   --   
   Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP   
   Walking destinations on a map are further away than they appear.   
      
   --- 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