Wow!  It's even more restrictive than I had thought.  I tested this out (sorry, 
I found it hard to believe!) and of course you are correct.

"copy library":
DVFJS:/u/dvfjs:>ls /u/dvfjs/copy
TEST1      TEST3.CPY  test2

Compile JCL:
//COBUX    JOB ,NOTIFY=&SYSUID,REGION=2000M
//         SET COBLIB=IGY.V5R2M0
//         JCLLIB ORDER=(&COBLIB..SIGYPROC)
//*----------------------------------------------------------*
//CLMAIN   EXEC IGYWC,LNGPRFX=&COBLIB
//COBOL.SYSIN DD *
       identification division.
       program-id. cobux.
       copy test1.
       copy 'test1'.
       copy test2.
       copy 'test2'.
       copy 'test3.cpy'.
       copy 'TEST3.CPY'.
/*
//COBOL.SYSLIB DD PATH='/u/dvfjs/copy',FILEDATA=TEXT,RECFM=FB,LRECL=80
//

Selected output:

PP 5655-W32 IBM Enterprise COBOL for z/OS  5.2.0                         Date 
01/13/2017  Time 14:11:04   Page     3
LineID  Message code  Library phase message text

     7  IGYLI0048-S   The member "TEST2" was not found in the "COPY" library.  
Skipped to the period terminating the "COPY"
                      statement.

     8  IGYLI0048-S   The member "'test2'" was not found in the "COPY" library. 
 Skipped to the period terminating the "COPY"
                      statement.

     9  IGYLI0025-E   Name "'test3.cpy'" was invalid.  It was processed as 
"TEST30CP".

     9  IGYLI0048-S   The member "'test3.cpy'" was not found in the "COPY" 
library.  Skipped to the period terminating the "COPY"
                      statement.

    10  IGYLI0025-E   Name "'TEST3.CPY'" was invalid.  It was processed as 
"TEST30CP".

    10  IGYLI0048-S   The member "'TEST3.CPY'" was not found in the "COPY" 
library.  Skipped to the period terminating the "COPY"
                      statement.
Messages    Total    Informational    Warning    Error    Severe    Terminating
Printed:       6                                    2         4
PP 5655-W32 IBM Enterprise COBOL for z/OS  5.2.0               COBUX     Date 
01/13/2017  Time 14:11:04   Page     4
  LineID  PL SL  
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7-|--+----8
 Map and Cross Reference
  000001                identification division.
  000002                program-id. cobux.
  000003                copy test1.
  000004C              * This is copied from /u/dvfjs/copy/TEST1
  000005                copy 'test1'.
  000006C              * This is copied from /u/dvfjs/copy/TEST1
  000007                copy test2.
  000008                copy 'test2'.
  000009                copy 'test3.cpy'.
  000010                copy 'TEST3.CPY'.

[...]

PP 5655-W32 IBM Enterprise COBOL for z/OS  5.2.0               COBUX     Date 
01/13/2017  Time 14:11:04   Page     7

         COPY/BASIS cross-reference of text-names, library names and dataset 
information

 Text-name Library   File name                                    Concat   ISPF 
statistics
 (Member)  (DDNAME)  (Dataset name)                               Level    
Created         Changed

 TEST1     SYSLIB    ...PATH=.SPECIFIED...                          0


The only copy statements that succeeded are when the copy file in the Unix 
directory was in uppercase and no more than 8 characters.

And you're saying this restriction is true even when the compiler is executed 
via cob2?

Seems like an RFE is order.



________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of 
John McKown <[email protected]>
Sent: Friday, January 13, 2017 1:27 PM
To: [email protected]
Subject: Re: New free / open source z/OS tools from Dovetailed Technologies

On Fri, Jan 13, 2017 at 2:18 PM, Charles Mills <[email protected]> wrote:

> My recollection is that STOW at least and probably BLDL and FIND are
> utterly character agnostic. You can create member names with non-printable
> characters in them, for example. As I recall you cannot reference them in
> JCL (of course) but ISPF displays them correctly and you can rename or
> delete them from 3.1. Been a long time -- I may be off on some of the
> details. Experiments would have been done around 1997.
>

Ah, yes. A PDS can have a members named "A" and "a" in the same library.
But, given that the COBOL compiler does not allow specifying a lower case
name (or it automatically upper cases it), then you cannot have a UNIX file
named "a" (lower case) be processed by the COBOL compiler via a "COPY a"
statement. So the restriction that the COBOL copy code which resides in a
UNIX file requires that the UNIX file be all in upper case and consist only
of "valid" (according to COBOL) characters. That's what I was trying to
say, but didn't say very well.



>
> Charles
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
> Behalf Of Paul Gilmartin
> Sent: Friday, January 13, 2017 12:09 PM
> To: [email protected]
> Subject: Re: New free / open source z/OS tools from Dovetailed Technologies
>
> On Fri, 13 Jan 2017 13:43:37 -0600, John McKown wrote:
> >
> >There is a UNIX command: cob2 which will do a COBOL compile and link.
> >Basically this is just a "driver" which, as Gil indicated, parses the
> >UNIX command line parameters, does dynamic allocations for DDs needed
> >and then does (I think) a normal MVS LINK command to invoke the
> >standard COBOL compiler. Note that any UNIX directories in the command
> >are allocated to the proper DD and the "normal" BSAM / BPAM UNIX
> >interface code in the access method takes care of the I/O. That is,
> >there is no UNIX I/O code in the COBOL compiler itself. At least, I
> >don't think that there is. This is why the COBOL COPY verb cannot
> >process a file name like "SOMEFILE.cpy" and why the file in the UNIX
> directory must in in UPPER CASE, not in "normal"
> >lower case. On my system (z/OS 1.12), the cob2 command's full path
> >is: /usr/lpp/cobol/bin/cob2
> >
> I believe BPAM/BLDL/FIND is case-indifferent and that any UPPER CASE
> restriction lies in the compiler.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>



--
There's no obfuscated Perl contest because it's pointless.

-Jeff Polk

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to