VMS patch set (extensive) - first try

[email protected] (Steven M. Schweda)
Newsgroups gmane.comp.web.wget.patches
Message-ID <[email protected]>
   This is a first try at a set of VMS-related patches, based upon a CVS
kit from 11 April.  All the relevant files should be available at or
near:

      http://antinode.org/ftp/wget/patch1/
      ftp://antinode.org/wget/patch1/

Typically, "XXX.c" (modified), "XXX.c_orig" (original), and
"XXX.c_patch" (result of "diff -c").

   The files are served from a non-case-preserving file system, so, for
example, "Makefile.in" will be seen as "makefile.in" or "MAKEFILE.IN",
depending, and so on.  (Also many less-capable FTP clients do not cope
well with a VMS FTP server.)

   A brief summary of the changes follows (also available from the
server as "patch_notes.txt").  Many of the code changes are conditional
and affect only VMS systems, but some (particularly the extensive
changes related to dealing with a VMS FTP server) are universal.

   I assume that there will be some problems, questions, complaints, and
so on.  Please feel free to describe, ask, complain, and so on.

------------------------------------------------------------------------

      New, VMS-specific Files:

   vms/                         New directory for VMS-specific files.

   vms/collect_deps.com         Helper script for
                                "vms/descrip_mkdeps.mms"

   vms/config.h_vms             Source for VMS-specific "src/config.h".

   vms/descrip.mms              Main MMS/MMK description ("make") file.

   vms/descrip_config.mms       Secondary MMS/MMK description file for
                                "src/config.h".

   vms/descrip_deps.mms         Secondary MMS/MMK description file for
                                source dependencies.  (Generated using
                                "vms/descrip_mkdeps.mms", but not all
                                users will be able to do it, so it must
                                be supplied in the kit.)

   vms/descrip_mkdeps.mms       MMS/MMK description file for source
                                dependency generation.

   vms/descrip_src.mms          Secondary MMS/MMK description file for
                                all C files.

   vms/vms-wget.com             Script to run MMS/MMK to build Wget.

   vms/wget.hlp                 Simple Wget HELP source file.

   vms/wget.opt                 Primary link options file.

   vms/wget_multinet.opt        Secondary link options file for
                                MultiNet users not using TCPIP
                                emulation.

   vms/wget_ssl.opt             Secondary link options file for OpenSSl.

   vms/wget_ssl_hp.opt          Secondary link options file for  HP SSL.

------------------------------------------------------------------------

      New and Changed General Files:

   src/connect.c        VMS-related header files.

   src/convert.c        Changed hard-coded ".orig" file name suffix
                        ("-K" = "--backup-converted" option) to macro
                        ORIG_SFX.  (See "src/wget.h".)

   src/cookies.c        Fixed %CC-I-QUESTCOMPARE1 with a type cast.

   src/ftp-ls.c         Moved some extern variable declarations to
                        "main.h", and added a #include for it.
                        Fixed %CC-W-OUTTYPELEN from attempt to fprintf()
                        an int (u->port) using a "%hu" conversion
                        specifier.  It now uses "%d".
                        Changed to open the ".listing" file in text
                        mode, not binary.
                        Changed VMS FTP DIR-parsing code to tolerate
                        more variability (leading blank lines), and to
                        remove ODS5 extended file name escape characers
                        ("^").  Also added conditional code (disabled by
                        default) to retain VMS file version numbers.
                        Added support for the environment variable
                        "WGET_TIMEZONE_DIFFERENTIAL" for file time
                        adjustment (as in Wget 1.5.3h for VMS).
                        Added some code conditionality to allow easier
                        re-use in Wput.

   src/ftp.c            Changed to simplify destination file names for a
                        VMS ODS2 file system.
                        Changed default file attributes for binary FTP
                        destination files on VMS (from Stream_LF to
                        fixed-512).
                        Changed file opens to allow non-binary
                        destination files on VMS for ASCII transfers.
                        Changed file open details on VMS for faster I/O.
                        Changed to eliminate a spurious -debug message
                        ("Unrecognized permissions for <directory>").
                        Changed to eliminate spurious complaints when
                        recursive downloads hit an empty directory.
                        Changed to fix various problems dealing with a
                        VMS FTP server.
                        Changed to fix various problems with FTP and
                        time-stamping ("-N").
                        Changed some misleading diagnostic messages.

   src/gen_sslfunc.c    Changed ssl_connect() to ssl_connect_wget() to
                        avoid conflict with SSL_connect() on VMS (where
                        the linker is not case-sensitive by default).

   src/gen_sslfunc.h    Changed ssl_connect() to ssl_connect_wget(). 
                        (See "src/gen_sslfunc.c".)

   src/host.c           VMS-related header files.
                        Added conditionality to avoid using macro NS_xxx
                        names in an enum.

   src/host.h           VMS-related header files.

   src/http.c           VMS-related header files.
                        Moved some extern variable declarations to
                        "main.h", and added a #include for it.
                        Changed extern version_string to macro
                        VERSION_STRING.  (See "src/version.h").
                        Changed ssl_connect() to ssl_connect_wget(). 
                        (See "src/gen_sslfunc.c".)
                        Fixed multiple %CC-I-QUESTCOMPARE1 with type
                        casts.
                        Added code for VMS to try using the logical name
                        "SYS$TIMEZONE_DIFFERENTIAL" for UTC-to-local
                        time conversions if "gmtime()" fails.
                        Added code for VMS to use
                        SYS$TIMEZONE_DAYLIGHT_SAVING in some local-UTC
                        time conversions.
                        Changed to use an OS-specific file name suffix,
                        "_orig" (ORIG_SFX) for VMS, rather than a
                        hard-coded ".orig".  (See "src/wget.h".)

   src/init.c           Moved some extern variable declarations to
                        "main.h", and added a #include for it.
                        Changed to use "SYS$LOGIN:.wgetrc" as the name
                        of the initialization file on VMS.
                        Changed to open ".wgetrc" in text mode, not
                        binary.
                        Added "ftpstmlf" command ("--ftp-stmlf" option)
                        for VMS.

   src/main.c           Added "--ftp-stmlf" option ("ftpstmlf" command)
                        for VMS.
                        Changed extern version_string to macro
                        VERSION_STRING (in new version.h).
                        Changed the program identification debug message
                        ("built on OS_TYPE" instead of "on OS_TYPE").
                        Changed file open details on VMS for faster I/O.
                        Changed (on VMS) to set ODS5 flag if the
                        download destination is on an ODS5 file system.

   src/main.h           New.  Collected some formerly loose extern
                        declarations.

   src/Makefile_in      Converted from using "src/version.c" to
                        "src/version.h".

   src/netrc.c          Changed to use "SYS$LOGIN:.netrc" as the name of
                        the user name and password file on VMS.

   src/options.h        Added options structure member, ftp_stmlf, for
                        the "--ftp-stmlf" option ("ftpstmlf" command)
                        for VMS.

   src/recur.c          Moved some extern variable declarations to
                        "main.h", and added a #include for it.

   src/retr.c           Moved some extern variable declarations to
                        "main.h", and added a #include for it.
                        Added code to accomodate ASCII FTP transfers. 
                        (See "src/ftp.c".)

   src/retr.h           Added a new flag bit, rb_ftp_ascii, for ASCII
                        FTP transfers.  (See "src/retr.c".)

   src/url.c            Added code for VMS to simplify file names for
                        ODS2 file system destinations.

   src/utils.c          Added VMS-specific code to work around the lack
                        of "fork()".
                        Fixed multiple %CC-I-QUESTCOMPARE1 with type
                        casts.
                        Changed for VMS to assist ODS2 name reversion.
                        Changed to use a macro, UNIQ_SEP, instead of a
                        hard-coded ".", as the separator character when
                        adding a decimal "nnn" suffix to a file name to
                        make it unique.  Not defining UNIQ_SEP, as on
                        VMS, now disables adding the suffix.  (See
                        "src/wget.h".)
                        Changed unique_name() for VMS to do nothing, as
                        file versioning does a better job with no
                        effort.
                        Changed file opens in fopen_excl() to make the
                        default file attributes for binary FTP
                        destination files on VMS (from Stream_LF to
                        fixed-512).  (See also "src/ftp.c".)
                        Changed file open details on VMS for faster I/O.

   src/utils.h          Added extern char_prop[] look-up table (for
                        "src/utils.c").

   src/version.c        Removed.  Replaced by "src/version.h".

   src/version.h        Replacement for "src/version.c".

   src/version.h_template  New.  Template for "src/version.h".  (See
                           "util/dist-wget".)

   src/wget.h           Added a definition of an OS-specific file name
                        suffix, ORIG_SFX ("_orig", for VMS), to be used
                        instead of a hard-coded ".orig".  (See
                        "src/convert.c", "src/http.c".)
                        Added a definition of an OS-specific separator
                        character, UNIQ_SEP, for the decimal "nnn"
                        version number appended to a file name to make
                        it unique.  (See "src/utils.c".)

   util/dist-wget       Changed to process "src/version.h" instead of
                        "src/version.c".

------------------------------------------------------------------------

   Steven M. Schweda               (+1) 651-699-9818
   382 South Warwick Street        sms@antinode-org
   Saint Paul  MN  55105-2547
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.