On Fri, Feb 19, 2010 at 10:01:18AM +0100, Tobias Senz wrote: > On 19.02.2010 00:44, Andrew Cady wrote: > > I have written a patch for wget which makes this behavior possible. The > > very use case that you describe is illustrated in the email to this list > > which contains the patch: > > > > http://lists.gnu.org/archive/html/bug-wget/2010-01/msg00021.html
[...] > Just to verify, and be 110% certain, your additional renaming happens > AFTER all of the built-in escaping / renaming wget would do without the > patch? Well, I just tested, and yes: it turns out the --rename modifies the output filename after the --restrict-file-names option already has, as you would prefer. But actually this isn't vitally important, since it would be possible to recreate the behavior of --restrict-file-names with --rename. > So any "%" from hex escapes could also be filtered? Yep. Here's a test command line I just tried: $ wget --restrict-file-names=windows --rename 's/%/@/g' 'jerkface.net/~d/t...@at|pipe%percent.txt' [...] “t...@at@[email protected]” saved [0/0] Here's another one that doesn't use --restrict-file-names: $ wget --rename 's/[...@%\|\/:?"*<>]/uc sprintf "@%x", ord $&/ge' 'jerkface.net/~d/t...@at|pipe%percent.txt' [...] “t...@40at@[email protected]” saved [0/0] That version escapes the same characters as --restrict-file-names=windows, but uses hex codes marked with @, so that you can reliably convert the filenames back to the originals using another regular expression. > Sorry, i'm a little bit puzzled this would fix all of my troubles, just > like that :) If wget output filenames are the extent of your troubles, your life is quickly approaching perfection... > Most recent Cygwin is still on wget-1.11.4 with patch level numero 4. > Your patch applies directly to Debian 1.12 patch level 1. Actually, the version in those debs is: GNU Wget 1.12.1-devel (2340fa0d1b78) built on linux-gnu. That is, one behind the latest version in mercurial. I just checked, and the patch applies to the latest version as well. That is, it definitely applies to these versions: changeset: 2647:14f751f028c2 tag: tip user: Paul Townsend <[email protected]> date: Wed Jan 27 10:08:26 2010 -0800 summary: Time-measurement fix changeset: 2646:2340fa0d1b78 user: Micah Cowan <[email protected]> date: Wed Jan 13 20:41:15 2010 -0800 summary: Fixed some mixed declarations-and-code. > So hopefully either TOS (the original source) 1.12 or the old Cygwin > patched source will do. > > Otherwise i'll have to somehow shove it in manually ? :)) (I'ts been a > while since my last attempt to compile anything anywhere, can you tell > ? ;) ) I'm pretty sure it won't apply to 1.12, but that you only have to move some words around on a split line in the Makefile.am or something like that. I'd bet the version from mercurial compiles in cygwin, anyway. Good luck :)
