------------------------------------------------------------------------ CKVKER.COM ---------- --- ckvker.com_orig 2010-01-25 12:26:49 -0600 +++ ckvker.com 2010-03-10 00:42:22 -0600 @@ -43,14 +43,21 @@ G = GNU C "" = Use the first compiler found, searching in the above order - P3 C-Kermit options (enclosed in quotes if more than one) including - CK_SSL Includes SSL/TLS support for secure connections - NOPUSH prevents escape to DCL or running external programs - NODEBUG To reduce size of executable - BUGFILL7 If you get '"xab$b_bkz" is not a member of "xaball_ofile"'. + P3 C-Kermit options (enclosed in quotes if more than one) including: + CK_SSL Includes SSL/TLS support for secure connections. + NOPUSH prevents escape to DCL or running external programs. + NODEBUG To reduce size of executable. + INTSELECT If you get %CC-W-PTRMISMATCH on statements with select(). NEEDUINT If you get complaints about "u_int" not defined (TCPware5.4) + OLDFIB If you get %CC-I-NONSEQUITUR on statements with ut_fib. + OLDIP Use a very old TCP/IP run-time scheme (where "very old" is + not precisely known, but pre-dates VMS V5.4, VAX C V3.1-051, + UCX V1.3). + BUGFILL7 If you get %CC-E-NEEDMEMBER, '"xab$b_bkz" is not a member + of "xaball_ofile"'. (Effectively implies NOCONVROUTINES.) NOCONVROUTINES If not found (VMS 6.1 / UCX 4.1). - "" Empty string; Include this if other parameters follow. + "" Empty string. Include this if you want none of these + options, and other parameters follow. To build with SSL, include CK_SSL in P3. If you have a vendor supplied SSL library such as HP SSL V1.3 or Compaq SSL V1.0A, that @@ -319,6 +326,9 @@ $! internal CALL MAKE scheme. Added CKVRTL.C/H for $! utime() for __CRTL_VER < 70300000. $! 25-Jan-10 1.41 fdc Update comments about building with SSL. +$! 09-Mar-10 1.41+sms Added/documented P3 options INTSELECT, OLDFIB, OLDIP. +$! Disabled (commented out) automatic definition of +$! NOSETTIME for VMS before V7.2 (vms_ver .lts. "VMS_V72"). $! $Skip_Help: $! @@ -555,7 +565,7 @@ $ endif $! $! Look for old math-library to allow transfer of the production Kermit -$! to old-fashiond VMS systems +$! to old-fashioned VMS systems $! $ if (mathlevel .eq. 0) .and. - (f$search("SYS$SHARE:FORTRAN$MTHRTL-VMS.EXE") .nes. "") @@ -885,7 +895,7 @@ $ if if_dot_h then cln_def = cln_def+",IF_DOT_H" $ if havetcp then cln_def = cln_def+",TCPSOCKET" $ if vms_ver .lts. "VMS_V62" then cln_def = cln_def+",NOHTTP,NOCMDATE2TM" -$ if vms_ver .lts. "VMS_V72" then cln_def = cln_def+",NOSETTIME" +$!!! if vms_ver .lts. "VMS_V72" then cln_def = cln_def+",NOSETTIME" $ if ssl .and. .not. compaq_ssl then - cln_def = cln_def+",OPENSSL_DISABLE_OLD_DES_SUPPORT" $! ------------------------------------------------------------------------ CKCDEB.H -------- Compiler complaint (%CC-I-IMPLICITFUNC) reduction. --- ckcdeb.h_orig 2010-02-01 11:53:38 -0600 +++ ckcdeb.h 2010-03-08 00:48:56 -0600 @@ -5873,7 +5873,9 @@ and pause. Otherwise, no prototypes. */ #ifdef VMS +#include /* sleep() for old (V4.0-000) DEC C. */ #include +#include /* getpid() for old (V4.0-000) DEC C. */ #endif /* VMS */ #ifdef NEXT ------------------------------------------------------------------------ CKVRTL.H --------   CRTL accomodation where delete() exists, but unlink() does not. --- ckvrtl.h_orig 2007-02-28 14:10:17 -0600 +++ ckvrtl.h 2010-03-08 17:04:18 -0600 @@ -5,6 +5,14 @@ #ifndef __CKVVMS_H #define __CKVVMS_H +/* CKCFTP.C uses unlink(). */ + +#if __CRTL_VER < 70000000 +# define unlink delete +#endif /* __CRTL_VER < 70000000 */ + +/* CKCFTP.C and others use utime(). */ + #if __CRTL_VER >= 70300000 # include #else /* __CRTL_VER >= 70300000 */ ------------------------------------------------------------------------ CKCFTP.C -------- Changed to use and on VMS instead of and , to help old VAX C. Added "(time_t *)" type cast to the first argument of gmtime() to avoid %CC-W-PTRMISMATCH when "struct stat" types do not match time_t. --- ckcftp.c_orig 2009-10-16 10:28:46 -0500 +++ ckcftp.c 2010-03-09 16:38:06 -0600 @@ -176,7 +176,12 @@ #include #endif /* ZILOG */ #include "ckcsig.h" +#ifdef VMS +/* 2010-03-09 SMS. VAX C needs help to find "sys". It's easier not to try. */ +#include +#else /* def VMS */ #include +#endif /* def VMS [else] */ #include #include #ifndef NOTIMEH @@ -248,7 +253,12 @@ #endif /* NOSYSTIMEBH */ #endif /* DCLTIMEVAL */ +/* 2010-03-09 SMS. VAX C needs help to find "sys". It's easier not to try. */ +#ifdef VMS +#include +#else /* def VMS */ #include +#endif /* def VMS [else] */ #include #include #ifdef HAVE_STDLIB_H @@ -3900,7 +3910,7 @@ if (fc == 0) { rc = stat(local,&statbuf); if (rc == 0) { /* Get local file's mod time */ - tmlocal = gmtime(&statbuf.st_mtime); /* Convert to struct tm */ + tmlocal = gmtime((time_t *)&statbuf.st_mtime); /* Convert to struct tm */ #ifdef DEBUG if (tmlocal) { dbtime(local,tmlocal); ------------------------------------------------------------------------ CKCNET.C -------- Changed "#ifndef __DECC" test to "#ifdef OLDIP" for use of the prehistoric getservbyname() handling. Old (goofy) scheme failed on VMS V5.4, VAX C V3.1-051, UCX V1.3. Added INTSELECT conditionality to argument types for getpeername() and select(). --- ckcnet.c_orig 2009-10-16 10:38:24 -0500 +++ ckcnet.c 2010-03-09 22:35:06 -0600 @@ -1582,7 +1582,7 @@ int ucx_port_bug = 0; /* Explained below */ -#ifndef __DECC /* VAXC or GCC */ +#ifdef OLDIP /* Very old VAX C or GCC */ #define getservbyname my_getservbyname @@ -1659,7 +1659,7 @@ } return &sent; } -#endif /* __DECC */ +#endif /* def OLDIP */ #endif /* DEC_TCPIP */ #endif /* EXCELAN */ @@ -2851,7 +2851,11 @@ #endif /* HPUX1010 */ #else #ifdef __DECC +#ifdef INTSELECT + (int *) +#else /* def INTSELECT */ (fd_set *) +#endif /* def INTSELECT [else] */ #endif /* __DECC */ #endif /* HPUX */ &rfds, NULL, NULL, &tv) > 0) && @@ -3163,7 +3167,19 @@ static size_t saddrlen; #else /* UNIXWARE */ #ifdef DEC_TCPIP +/* 2010-03-08 SMS. + * Coincidentally, the condition for integer arguments in select(), + * which is actually "defined( _DECC_V4_SOURCE)", works for an integer + * argument in getpeername(). Sadly, due to a lack of foresight, + * "defined( _DECC_V4_SOURCE)" doesn't work with DEC C V4.0, so the + * user-specified INTSELECT is used instead. Most likely, "size_t" + * should be used instead of "unsigned int", but I'm a coward. + */ +#ifdef INTSELECT + static int saddrlen; +#else /* def INTSELECT */ static unsigned int saddrlen; +#endif /* def INTSELECT [else] */ #else #ifdef MACOSX10 static unsigned int saddrlen; @@ -6109,9 +6125,15 @@ WSASafeToCancel = 1; #endif /* NT */ rc = select(FD_SETSIZE, -#ifndef __DECC +#ifdef __DECC +#ifdef INTSELECT + (int *) +#else /* def INTSELECT */ (fd_set *) -#endif /* __DECC */ +#endif /* def INTSELECT [else] */ +#else /* def __DECC */ + (fd_set *) +#endif /* def __DECC [else] */ &rfds, NULL, NULL, &tv); if (rc < 0) { int s_errno = socket_errno; ------------------------------------------------------------------------ CKUUS2.C -------- Compiler complaint reduction. --- ckuus2.c_orig 2010-01-25 13:48:42 -0600 +++ ckuus2.c 2010-03-09 16:03:07 -0600 @@ -9055,7 +9055,7 @@ " such character with a backslash '\\'. When dealing programmatically with", " a file list, however, you should SET WILDCARD-EXPANSION OFF to force", " treat each name in the list as a literal name. See HELP WILDCARDS for", -" details about wildcard syntax." +" details about wildcard syntax.", "" }; #endif /* UNIX */ ------------------------------------------------------------------------ CKUUS5.C -------- Added "" on VMS to get typedef for off_t on old VAX C. --- ckuus5.c_orig 2010-02-01 11:45:48 -0600 +++ ckuus5.c 2010-03-09 16:17:49 -0600 @@ -79,6 +79,11 @@ extern bool cursorena[] ; #endif /* OS2 */ +/* 2010-03-09 SMS. VAX C V3.1-051 needs for off_t. */ +#ifdef VMS +#include +#endif /* def VMS */ + /* For formatted screens, "more?" prompting, etc. */ #ifdef FT18 ------------------------------------------------------------------------ CKUUS6.C -------- Changed to use on VMS instead of , to help old VAX C. --- ckuus6.c_orig 2009-10-16 10:15:22 -0500 +++ ckuus6.c 2010-03-09 16:58:34 -0600 @@ -25,7 +25,12 @@ #include #ifndef NOSTAT +#ifdef VMS +/* 2010-03-09 SMS. VAX C needs help to find "sys". It's easier not to try. */ +#include +#else /* def VMS */ #include +#endif /* def VMS [else] */ #endif /* NOSTAT */ #ifdef VMS ------------------------------------------------------------------------ CKUUS7.C -------- Changed to use on VMS instead of , to help old VAX C, rather than not including any "stat.h" for VAX C on VMS. --- ckuus7.c_orig 2010-01-26 13:56:56 -0600 +++ ckuus7.c 2010-03-09 17:07:26 -0600 @@ -11384,18 +11384,13 @@ to the ck?fio.c module, e.g. for RMS-based file i/o in ckvfio.c. */ -/* Define NOSTAT if the <#>include causes trouble. */ - #ifndef NOSTAT #ifdef VMS -#ifdef VAXC /* As it does in VAX C */ -#define NOSTAT -#endif /* VAXC */ -#endif /* VMS */ -#endif /* NOSTAT */ - -#ifndef NOSTAT +/* 2010-03-09 SMS. VAX C needs help to find "sys". It's easier not to try. */ +#include +#else /* def VMS */ #include +#endif /* def VMS [else] */ #endif /* NOSTAT */ #ifdef NLCHAR ------------------------------------------------------------------------ CKVFIO.C -------- Compiler complaint reduction (%CC-I-IMPLICITFUNC) where is not available. Added conditionality on ZCOPY for zcopy(). Note: If it makes sense to look for only "#ifndef BUGFILL7", then it might make as much sense to require "#ifndef OLDFIB", too, because OLDFIB seems to apply to even older compiler environments than BUGFILL7. But I didn't do that. --- ckvfio.c_orig 2009-10-16 10:31:45 -0500 +++ ckvfio.c 2010-03-09 08:35:41 -0600 @@ -4140,10 +4140,22 @@ #ifndef BUGFILL7 #ifndef NOCONVROUTINES #include +#define HAVE_CONVROUTINES #endif /* NOCONVROUTINES */ #endif /* BUGFILL7 */ +#ifndef HAVE_CONVROUTINES +/* 2010-03-09 SMS. + * Minimal ("#ifndef __NEW_STARLET") declarations to reduce + * %CC-I-IMPLICITFUNC diagnostics. + */ +unsigned int conv$convert(__unknown_params); +unsigned int conv$pass_files(__unknown_params); +unsigned int conv$pass_options(__unknown_params); +#endif /* ndef HAVE_CONVROUTINES */ #endif /* __DECC */ +#ifdef ZCOPY + int zcopy(source,destination) char *source, *destination; { char *src = source, *dst = destination; /* Local pointers to filenames */ @@ -4254,6 +4266,8 @@ return(rc); } +#endif /* def ZCOPY */ + /* Z R E N A M E -- Rename a file. */ ------------------------------------------------------------------------ CKVRTL.C -------- Added OLDFIB conditionality to deal with "struct fibdef" variations. Added __DECC conditionality to the decc$to_vms() code. (This code may be entirely useless in Kermit, but it should be harmless, now.) Made a variable static to avoid a %CC-W-ADDRCONSTEXT complaint from a recent VAX C. --- ckvrtl.c_orig 2007-02-28 14:10:17 -0600 +++ ckvrtl.c 2010-03-09 22:42:11 -0600 @@ -111,8 +111,21 @@ #endif /* def NAML$C_BID */ +#ifdef OLDFIB +# define FIB_L_ACCTL fib$r_acctl_overlay.fib$l_acctl +# define FIB_W_DID fib$r_did_overlay.fib$w_did +# define FIB_W_FID fib$r_fid_overlay.fib$w_fid +#else /* def OLDFIB */ +# define FIB_L_ACCTL fib$l_acctl +# define FIB_W_DID fib$w_did +# define FIB_W_FID fib$w_fid +#endif /* def OLDFIB [else] */ + + /*--------------------------------------------------------------------*/ +#ifdef __DECC + /* Private utime() code. */ /* Action routine for decc$to_vms(), in utime(). */ @@ -126,6 +139,8 @@ return 1; } +#endif /* def __DECC */ + /*--------------------------------------------------------------------*/ /* utime() replacement. */ @@ -138,7 +153,8 @@ int sts, sts2; unsigned short int vms_num_vec_time[ 7]; -unsigned int vms_abs_time[ 2]; +/* Static to avoid %CC-W-ADDRCONSTEXT from old (V4.0-000) DEC C. */ +static unsigned int vms_abs_time[ 2]; struct tm *tms; struct _iosb iosb_q; @@ -168,6 +184,8 @@ struct dsc$descriptor fib_dsc = {sizeof( ut_fib), DSC$K_DTYPE_T, DSC$K_CLASS_S, (char *) &ut_fib}; +#ifdef __DECC + /* We will accept either a UNIX-like path name or a VMS-like path name. If a slash is found in the name, assume that it's UNIX-like, and convert it to VMS form. Otherwise, use it as-is. @@ -179,6 +197,8 @@ path = vms_path; } +#endif /* def __DECC */ + /* Install the VMS file specification into the FAB. */ ut_fab.fab$l_fna = (char *) path; @@ -252,13 +272,13 @@ for (i = 0; i < 3; i++) { - ut_fib.fib$w_fid[ i] = ut_namx.NAMX$W_FID[ i]; - ut_fib.fib$w_did[ i] = 0; + ut_fib.FIB_W_FID[ i] = ut_namx.NAMX$W_FID[ i]; + ut_fib.FIB_W_DID[ i] = 0; } /* Prevent this QIOW from setting the revision time to now. */ - ut_fib.fib$l_acctl = FIB$M_NORECORD; + ut_fib.FIB_L_ACCTL = FIB$M_NORECORD; /* Set the file dates. */ ------------------------------------------------------------------------