Release 3.50.5.107, so a stopped copy leaves no half-written files - #239
Merged
Merged
Conversation
The engine pin moves to the 3.50.5 tag (16c91fac), whose HTTRACK_VERSIONID reads 3.50.5, so the versionName prefix realigns and versionCode goes to 107. What the 28 engine commits change for this app: a copy you stop no longer leaves .delayed files or empty directories in the mirror, a link that was never fetched keeps its absolute URL instead of pointing at a local name that was never saved, a run with -E set stops within its limit plus 5 seconds rather than waiting on a thread stuck in getaddrinfo(), and spool files from a failed write or a killed process are swept. The app passes -E from the "max time overall" field, and that option still takes seconds: 3.50.5 only moved the measurement to a millisecond monotonic clock. No engine source file was added or removed between the two pins, so the explicit ndk-build source list still covers the build. The nested coucal pin does not move. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
Three of the four English bullets were wrong, and the review caught them before the upload. The time-limit bullet promised the bounded exit wait of engine commit cf589f4d. That fix lives in src/httrack.c, the CLI main(), and app/src/main/jni/Android.mk does not list that file, so none of it ships here. The one reachable part of the same release is the monotonic millisecond clock behind -E, which only sharpens a limit a user already set, so the bullet is gone rather than reworded. The empty-folder bullet credited stopping a copy. Engine commit 42e4700c fixes a reply that is never saved, a 404 for example, on any crawl. The bullet now names that case. The leftover-file bullet read as immediate. back_spool_sweep() runs once, at crawl setup in htscore.c, so an interrupted copy's spool goes at the start of the NEXT copy. The bullet now says so. The fourth claim gains the headline of engine commit c1ddc82d: a cancelled type wait wrote a file name into a backlog slot another download may already own. All 29 locales follow. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
Round 2 promised that a copy you stop leaves no unfinished files. The fourth bullet then said an interrupted copy's temporary files wait for the next copy. Both cannot be true. The first bullet now carries the other half of engine commit c1ddc82d. A link the stopped copy never fetched keeps its absolute URL, instead of pointing at a local page that was never saved. A user meets that sooner than the slot race. The third bullet said "mix up the name", which left unclear whose name moved. It now says the stop cannot overwrite another download's file name. All 29 locales follow. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
The link note said "never fetched". The fix is gated on IS_DELAYED_EXT (htsparse.c:5321), so it only fires when the stop arrives while the link's type is still being probed. Every other unfetched link keeps the local name it got at parse time. The note now names that trigger. The empty-folder note promised that pages never saved leave none. back_tmpname() still puts a slot's temporary beside the save name, and back_tmpdir_drop() removes only the ~hts-tmp level, so the parent directories can stay. The note now says "fewer". Three bullets rather than four. The freed-slot write and the surviving absolute URL are two halves of engine commit c1ddc82d, and listing both read as two separate fixes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
"Halten Sie an, während HTTrack einen Dateityp prüft" is also the exact form of the polite imperative, so a German reader meets "Stop!" and then a clause with nothing to attach it to. "Wenn Sie anhalten" can only be the condition. The Scandinavian and Dutch bullets keep their verb-first conditional, which collides with no imperative there. The Polish bullet said "gdy" twice, once as the conjunction and once inside "w chwili, gdy". It now names the action instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The engine pin moves to the 3.50.5 tag, so
versionNamerealigns to 3.50.5 andversionCodegoes to 107.Four of the 28 engine commits reach code this app compiles:
-Eon a monotonic millisecond clock (1fc3bebf)-Eitself still takes seconds, so the "max time overall" field needs no edit.The bounded exit wait of commit cf589f4d is not in the APK, because it lives in
src/httrack.candAndroid.mkdoes not compile that file.The release notes change in all 29 locales.