bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wget 1.20.3 v. VMS


From: Darshit Shah
Subject: Re: Wget 1.20.3 v. VMS
Date: Wed, 30 Dec 2020 23:08:47 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

Hi Steven,

Thanks for the patch. I've gone through it and applied it to the current
Wget repository.

I've taken the liberty to make some changes to your patches:

1. I reverted the changes to the help output. They weren't VMS specific.
I'd love to get some uniformity here, but this isn't the place to do it.
2. For use_askpass I instead disabled the option entirely on VMS


Regarding your troubles with the print functions, please contact the
gnulib maintainers at bug-gnulib@gnu.org, they will be able to help you
and fixing the issue at that level will benefit all GNU projects.

A new release is coming soon with your patches included. Thanks!

On 22.12.20 07:29, Steven M. Schweda wrote:
>    Greetings:
> 
>    It's been a while since I've tried to put a current version of Wget
> onto VMS, but I recently tried 1.20.3, with some success, but with some
> changes needed in the main source.
> 
>    Original and modified files should be available at:
> 
>       http://antinode.info/ftp/wget/wget-1_20_3a_vms/wget-1_20_3a_mods.zip
> 
>    Notes follow.
> 
> ------------------------------------------------------------------------
> 
>       src/hsts.c
> 
>    time_t on VMS is typically unsigned.  (Lazy man's solution to 2038?) 
> I added "(time_t)" type casts to negative values ("-1"), and changed
> tests to avoid complaints like:
> 
>   return (t < 0 ?
> ..........^
> %CC-I-QUESTCOMPARE, In this statement, the unsigned expression "t" is being 
> comp
> ared with a relational operator to a constant whose value is not greater than 
> ze
> ro.  This might not be what you intended.
> at line number 224 in file 
> ITS$DKA0:[UTILITY.SOURCE.WGET.wget-1_20_3.src]hsts.c;
> 1
> 
> I believe that it's all compatible with a signed time_t.
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>    File path name construction using UNIX-only format:
> 
>       filename = aprintf ("%s/.wget-hsts-test", opt.homedir);
> 
> was replaced by a new function which includes (and segregates) the
> VMS-specific alternative code:
> 
>       filename = ajoin_dir_file (opt.homedir, ".wget-hsts-test");
> 
> ------------------------------------------------------------------------
> 
>       src/init.c
> 
>    New function, ajoin_dir_file(), to join a directory and file name
> (used in hsts.c, init.c, and main.c).
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>    Removed VMS-specific code using "SYS$LOGIN".  (getenv( "HOME) works
> on VMS, too, when handled properly.)
> 
> ------------------------------------------------------------------------
> 
>       src/init.h
> 
>    Added prototype for new function, ajoin_dir_file().
> 
> ------------------------------------------------------------------------
> 
>       src/log.c
> 
>    Disabled check_redirect_output() on VMS (as on Windows).
> 
> ------------------------------------------------------------------------
> 
>       src/main.c
> 
>    Changed to use ajoin_dir_file().
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>    Changed a "`" to "'" in the help text.  I assume that you have a
> policy on "`", but its use seems inconsistent.  I avoid it entirely,
> because, in my experience, it's almost always rendered asymmetrically
> with respect to "'", hence ugly and distracting.  Perhaps I just use bad
> fonts.
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>    Added a "use_askpass() not implemented on VMS" message, but did not
> actually disable the option.
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>    Added a VMS-specific line (could be more) to the -V/--version report
> in print_version().  Typical output at the moment includes the
> (run-time) VMS version and the OpenSSL version, if any:
> 
>       VMS V8.4-2L1, OpenSSL 1.1.1h  22 Sep 2020
> 
> ------------------------------------------------------------------------
> 
>       src/utils.c
> 
>    Changed data types in VMS-specific code in fork_to_background() to
> agree with changed types in non-VMS code.
> 
> ------------------------------------------------------------------------
> 
>    Happened to notice:
> 
>       README
> 
> Recursive downloading also works with FTP, where Wget can retrieves a
>                                                                ---^
> ------------------------------------------------------------------------
> 
>       Other complaints.
> 
>    I had a bunch of trouble trying to figure out what to do with the GNU 
> print functions (asprintf(), snprintf(), vasnprintf(), vsnprintf()).  I
> assume that the UNIX auto-jive copes with this stuff, but I couldn't see
> why it would make any sense for vasnprintf() to use snprintf(), and for
> snprintf() to use vasnprintf().  It took me a while to diagnose the
> resulting stack overflow.  I found a solution, but...
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
>       lib/strerror_r.c
> 
> /* On MSVC, there is no snprintf() function, just a _snprintf().
> [...]
> #if !HAVE_SNPRINTF
> [...]
>   result = _vsnprintf (buf, buflen, format, args);
> 
>    If the condition for using _vsnprintf() is WINDOWS, then shouldn't
> the #if be testing for WINDOWS instead of the apparently unrelated
> HAVE_SNPRINTF (which is not defined on VMS)?
> 
>    I ended up using the following on VMS to get back to the plain
> vsnprintf() without editing lib/strerror_r.c:
> 
>       #define _vsnprintf vsnprintf
> 
> But that's not the right way.
> 
> ------------------------------------------------------------------------
> 
>    If you have any questions/disagreements/requests/suggestions, please
> let me know.  Thanks, as usual.
> 
> ------------------------------------------------------------------------
> 
>    Steven M. Schweda               sms@antinode.info
>    382 South Warwick Street        (+1) 651-699-9818
>    Saint Paul  MN  55105-2547
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]