2008/10/2 Shimon Lebowitz <[EMAIL PROTECTED]>
>
> a) regarding DMSPLU, I have an exec named SETDATI which
> embeds DMSPLU. IIRC, it was based on an ancient EXECSERV
> function. My exec supports ! (exclamation point) instead
> of / (slash) as the date delimiter, allowing me to use it
> from Filelist.

My Fixdate supports various date formats, you can even tell to leave
date or time unaltered...
If you use FILELIST (ISODATE, no slash problems, and if you use my
FILELIST extensions commands can contain a /: simply double them, e;g.
   FIXDATE / mm//dd//yy =

--
Kris Buelens,
IBM Belgium, VM customer support
------------------- FIXDATE EXEC -------------
/* This exec allows to change a file's date/time stamp.
   It is a frontend for DMSPLU.
    +-----------------------------------------------------------+
    | format:  | FIXDATE fn ft fm <(> date <time>               |
    +-----------------------------------------------------------+
   Where:
    - fn, ft and fm are the fileid.  We support mixed case fileids:
      we first try without uppercase translation.
    - "date" is "mm/dd/yy", any format used by FILELIST, or an = sign
      Examples:   09/30/1997,  9/30/1997,  12/01/97,  1997-12-01
      The latter format is very useful for users of FILELIST (ISODATE
      Note: the 4-digit years require CMS 13 or higher.
    - "time" is "hh:mm:ss" an = sign or the format used by FILELIST
      Examples:   9:12:45     09:12:45

  Written by: Kris Buelens IBM Belgium;  BUELENSC at IECVM 7 Feb 1992*/
/* 15 Nov 1993: Allow an ( between fid and date                    */
/*  6 Aug 1997: Support Year 2000 dates                            */
/*              Check if disk is a R/W disk                        */
/* 17 Oct 1997: Accept = for date and time                         */
/*              Accept an ISODATE as input                         */
address command

parse arg fn ft fm date time .
if left(date,1)='(' then parse arg '('date time .

if fm='' then call errexit 5,'Need at least to specify: fn ft fm date'
if date='' then call errexit 5,'Need at least to specify the new date'

upper fm
'ESTATE' fn ft fm
if rc=28 then upper fn ft

'MAKEBUF'
 'CMDCALL LISTFILE' fn ft fm '(DATE STACK'
 lrc=rc
 if lrc=0 then parse pull . . . . . . . ldate ltime .
'DROPBUF'
 if lrc^=0 then exit lrc

'ESTATEW' fn ft fm
if rc=28 then call ErrExit rc,'File' fn ft fm 'resides on a R/O disk'


 if abbrev('=',time) then time=ltime
 if date='=' then date=ldate
 if length(date)=7 then date=0||date
 if length(date)=9 then date=0||date
 if length(time)=7 then time=0||time
 if verify(date,'1234567890/-')^=0 | find(8 10,length(date))=0 then
    call errexit 5,'Invalid date "'date'"'
 If substr(date,5,1)substr(date,8,1)='--' then
    date=translate('Mm/Dd/CcYy',date,'CcYy-Mm-Dd')

 if verify(time,'1234567890:')^=0 | length(time)^=8 then
    call errexit 5,'Invalid time "'time'"'
 'DMSPLU' Fn Ft fm date time
 if rc=24 then call errexit rc,'Date "'date'" and/ or time "'time'"
invalid for DMSPLU.'
 if rc^=0 then call errexit rc,'Retcode' rc 'of DMSPLU.'
 exit
ERREXIT:
 parse source . . myname mytype . syn .
 Say arg(2)
 Say 'Format is: ' myname 'fn ft fm date <time>'
 exit arg(1)

Reply via email to