AminetAminet
Search:
85349 packages online
About
Recent
Browse
Search
Upload
Setup
Services

util/cli/SaferCopy1.4.lha

Mirror:Random
Showing: m68k-amigaos iconppc-amigaos iconppc-morphos iconi386-aros iconi386-amithlon iconppc-warpup iconppc-powerup icongeneric iconother icon
No screenshot available
Short:Reliable file copy VERIFY/UPDATE/BUFFER
Author: Nowee at beamreactor.com
Uploader:Nowee beamreactor com
Type:util/cli
Version:1.4
Architecture:m68k-amigaos >= 2.0.4
Date:2026-06-12
Requires:AmigaOS 2.04+ (V37), 68000+
Replaces:SaferCopy1.2.lha
Download:util/cli/SaferCopy1.4.lha - View contents
Readme:util/cli/SaferCopy1.4.readme
Downloads:2

SaferCopy 1.4 - A reliable replacement for AmigaDOS Copy 47.7

BACKGROUND

Copy 47.7 shipped with AmigaOS 3.2.3 silently ignores the VERIFY, DATES
and BUF/BUFFER keywords documented in the AmigaDOS 3.2.3 manual.
Hence this version.

FEATURES:
- Lets you copy only the missing, uncomplete or older files with the
  "update" option.
- Partial write detection: checks Write() return value on every call.
  Silently truncated files are caught, logged, and the destination is
  replaced.
- Locale : fully localised via locale.library. Machine translated
  catalogs are included for 18 languages. Reverts to English if
  locale.library is absent or no catalog is found.
- Path handling: destination directories are created recursively
  (equivalent of mkdir -p).
- Error buffering, errors gets printed both immediately AND are
  summarised at the end. No need to watch the terminal for ages.

TESTED (MD5, etc) on Amiga 4000, 3000T, WinUAE, over a tremendous amount
of files. And again.

It works for me, but I can't garantee it won't burn down your house to
the ground so please make a copy of it first... Uhh wait.. :D
It comes with no garantee whatsoever.

It's been fixed with the help of Claude Opus 4.8

USAGE:
*** Please use stack 32768 ***

BUF/BUFFER : actually uses the specified buffer size (default 512KB).
DATES : actually calls SetFileDate() when specified alone, without
requiring CLONE.
VERIFY : actually re-reads the destination after every write and
compares byte-for-byte with the source. Corrupted files are replaced
immediately.
UPDATE : skips files where destination exists with identical size and
datestamp. Re-copies if destination is smaller (previous interrupted
copy) or older than source. Reports "[dest incomplete: X/Y bytes]" for
visibility.
NDATE : with UPDATE, compare size only (ignore datestamp). Useful when
a previous backup was done without DATES/CLONE and destination files
have the wrong date.
VERBOSE : shows skipped (up-to-date) files. By default only active
copies and errors are displayed.
MAXERR/K/N : abort after N errors. Useful for unattended large copies
over unreliable media. Default 0 = no limit.
FORCE : strips write-protection from destination before copying.
CHECK : audit mode - no files are copied. For each source file,
compares size against destination and reports Missing or SizeDiff.
Combine with NDATE for a fast size-only scan. Useful before a resume
to see what actually needs attention.

Example: SaferCopy FROM Work: TO Backup: ALL CHECK NDATE

TEMPLATE
FROM/M,TO/A,ALL/S,QUIET/S,BUF=BUFFER/K/N,CLONE/S,DATES/S,
NOPRO/S,VERIFY/S,NOREQ/S,UPDATE/S,FORCE/S,MAXERR/K/N,NDATE/S,VERBOSE/S,
CHECK/S

Type "SaferCopy ?" for an interactive argument prompt.

EXAMPLES

Full backup with verification, preserve dates, 1MB buffer
SaferCopy FROM Work: TO DH1:Backup/ ALL CLONE VERIFY BUF=1048576 NOREQ

Incremental update, abort after 50 errors
SaferCopy FROM Work: TO DH1:Backup/ ALL UPDATE VERIFY BUF=1048576 MAXERR=50

USB to HD, big buffer
SaferCopy FROM USB0:data/ TO DH1:data/ ALL CLONE VERIFY BUF=2097152 NOREQ

Catch up after a backup done without DATES (ignore datestamp differences)
SaferCopy FROM sys: TO Multimedia:SYSBACKUP/ ALL UPDATE NDATE CLONE
  VERIFY NOREQ

LANGUAGES

The catalogs are LLM translated. Please report in case of impediments...

Catalogs are included for: english, francais, deutsch, espanol,
nederlands, dansk, norsk, polski, czech, slovensko, portugues, catala,
euskara, turkce, srpski, russian, greek, roman.

Install: copy catalogs/$LANGUAGE/SaferCopy.catalog to
LOCALE:Catalogs/$LANGUAGE/SaferCopy.catalog

COMPILATION

GCC : m68k-amigaos-gcc -O2 -m68000 -noixemul -resident -Wall -o SaferCopy
SaferCopy.c

SASC: sc SaferCopy.c LINK RESIDENT MATH=SOFT NOSTKCHK OPT IDIR=Include:
IDIR=NDK3.2:Include

The -resident / RESIDENT options produce a pure (re-entrant) binary that
can be made resident with the Shell RESIDENT command.

SOURCES

Available on GitHub, https://github.com/Nowomeister/safercopy/

TODO:
Test on OS 2.04, 3.0, 3.1.

HISTORY

1.4 - Fixed a stack smash in the error logger: error messages for paths
      longer than ~350 characters overflowed a fixed 384-byte buffer
      (NOSTKCHK + no MMU = silent corruption, delayed lockup on long
      unattended copies). Error formatting is now bounded and uses
      static buffers (less stack at maximum recursion depth). The
      AnchorPath is now zeroed between the two MatchFirst passes as
      required by the dos.library autodoc (stale AChain state could
      leak memory progressively). NOREQ no longer leaves the Shell
      process with requesters permanently disabled after exit
      (pr_WindowPtr is restored even when the original value was NULL).
      Binaries are now pure/residentable (GCC -resident, SAS/C RESIDENT
      + cres.o).

1.3 - Fixed lockup on directory names containing AmigaDOS pattern
      special characters (& ~ # ? ( ) [ ] | %). Added CHECK/S audit
      mode (size comparison, no copy).

1.2 - Added locale catalog support (18 languages), $VER string,
      minimum OS version check (V37 / AmigaOS 2.04+).

1.1 - Added NDATE, VERBOSE, recursive mkdir, fixed sys: path handling,
      fixed Shell window not closing after exit.

1.0 - Initial release.


Contents of util/cli/SaferCopy1.4.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                    791    1620  48.8% -lh5- dff9 Jun 11 19:06 safercopy1.4/catalogs/catal?/SaferCopy.catalog
[Amiga]                    772    1544  50.0% -lh5- e95a Jun 11 19:06 safercopy1.4/catalogs/czech/SaferCopy.catalog
[Amiga]                    793    1568  50.6% -lh5- d0e4 Jun 11 19:06 safercopy1.4/catalogs/dansk/SaferCopy.catalog
[Amiga]                    811    1664  48.7% -lh5- fc94 Jun 11 19:06 safercopy1.4/catalogs/deutsch/SaferCopy.catalog
[Amiga]                    762    1514  50.3% -lh5- a66c Jun 11 19:06 safercopy1.4/catalogs/english/SaferCopy.catalog
[Amiga]                    805    1642  49.0% -lh5- 4f71 Jun 11 19:06 safercopy1.4/catalogs/espa?ol/SaferCopy.catalog
[Amiga]                    793    1634  48.5% -lh5- 4a7f Jun 11 19:06 safercopy1.4/catalogs/euskara/SaferCopy.catalog
[Amiga]                    808    1640  49.3% -lh5- a504 Jun 11 19:06 safercopy1.4/catalogs/fran?ais/SaferCopy.catalog
[Amiga]                    816    1648  49.5% -lh5- a74a Jun 11 19:06 safercopy1.4/catalogs/greek/SaferCopy.catalog
[Amiga]                    805    1632  49.3% -lh5- d937 Jun 11 19:06 safercopy1.4/catalogs/italiano/SaferCopy.catalog
[Amiga]                    814    1608  50.6% -lh5- ab72 Jun 11 19:06 safercopy1.4/catalogs/nederlands/SaferCopy.catalog
[Amiga]                    769    1546  49.7% -lh5- 304a Jun 11 19:06 safercopy1.4/catalogs/norsk/SaferCopy.catalog
[Amiga]                    818    1634  50.1% -lh5- 863a Jun 11 19:06 safercopy1.4/catalogs/polski/SaferCopy.catalog
[Amiga]                    796    1632  48.8% -lh5- c10c Jun 11 19:06 safercopy1.4/catalogs/portugu?s/SaferCopy.catalog
[Amiga]                    798    1604  49.8% -lh5- beb8 Jun 11 19:06 safercopy1.4/catalogs/roman/SaferCopy.catalog
[Amiga]                    816    1634  49.9% -lh5- 486b Jun 11 19:06 safercopy1.4/catalogs/russian/SaferCopy.catalog
[Amiga]                    794    1604  49.5% -lh5- cf54 Jun 11 19:06 safercopy1.4/catalogs/slovensko/SaferCopy.catalog
[Amiga]                    803    1620  49.6% -lh5- 895a Jun 11 19:06 safercopy1.4/catalogs/srpski/SaferCopy.catalog
[Amiga]                    772    1526  50.6% -lh5- c925 Jun 11 19:06 safercopy1.4/catalogs/t?rk?e/SaferCopy.catalog
[Amiga]                  10756   19380  55.5% -lh5- 83e2 Jun 11 17:55 safercopy1.4/SaferCopy
[Amiga]                   2819    5490  51.3% -lh5- cad8 Jun 12 23:28 safercopy1.4/SaferCopy.readme
[Amiga]                   4025    4778  84.2% -lh5- 7e77 Jun 12 23:28 safercopy1.4/SaferCopy.readme.info
[Amiga]                   3565   10522  33.9% -lh5- cf86 Jun 11 18:22 safercopy1.4/sources/catalogs/build_catalog.py
[Amiga]                    446     776  57.5% -lh5- 938e Jun  5 16:08 safercopy1.4/sources/catalogs/Build_Catalogs.sh
[Amiga]                    945    1980  47.7% -lh5- d94f Jun 11 18:49 safercopy1.4/sources/catalogs/catal?/SaferCopy.ct
[Amiga]                    920    1900  48.4% -lh5- 172c Jun 11 18:49 safercopy1.4/sources/catalogs/czech/SaferCopy.ct
[Amiga]                    931    1931  48.2% -lh5- 514a Jun 11 18:48 safercopy1.4/sources/catalogs/dansk/SaferCopy.ct
[Amiga]                    956    2023  47.3% -lh5- b972 Jun 11 18:48 safercopy1.4/sources/catalogs/deutsch/SaferCopy.ct
[Amiga]                    890    1873  47.5% -lh5- 1987 Jun 11 18:48 safercopy1.4/sources/catalogs/english/SaferCopy.ct
[Amiga]                    945    1999  47.3% -lh5- 76f8 Jun 11 18:48 safercopy1.4/sources/catalogs/espa?ol/SaferCopy.ct
[Amiga]                    952    1997  47.7% -lh5- a817 Jun 11 18:49 safercopy1.4/sources/catalogs/euskara/SaferCopy.ct
[Amiga]                    949    1997  47.5% -lh5- 763d Jun 11 18:49 safercopy1.4/sources/catalogs/fran?ais/SaferCopy.ct
[Amiga]                   1064    2183  48.7% -lh5- d9a9 Jun 11 18:49 safercopy1.4/sources/catalogs/greek/SaferCopy.ct
[Amiga]                    942    1996  47.2% -lh5- 7e5a Jun 11 18:19 safercopy1.4/sources/catalogs/italiano/SaferCopy.ct
[Amiga]                    952    1967  48.4% -lh5- 20c7 Jun 11 18:48 safercopy1.4/sources/catalogs/nederlands/SaferCopy.ct
[Amiga]                    914    1903  48.0% -lh5- 5db4 Jun 11 18:48 safercopy1.4/sources/catalogs/norsk/SaferCopy.ct
[Amiga]                    955    1996  47.8% -lh5- 6e7c Jun 11 18:48 safercopy1.4/sources/catalogs/polski/SaferCopy.ct
[Amiga]                    938    1999  46.9% -lh5- 8435 Jun 11 18:49 safercopy1.4/sources/catalogs/portugu?s/SaferCopy.ct
[Amiga]                    945    1978  47.8% -lh5- db6d Jun 11 18:50 safercopy1.4/sources/catalogs/roman/SaferCopy.ct
[Amiga]                   1075    2183  49.2% -lh5- 5f2d Jun 11 18:49 safercopy1.4/sources/catalogs/russian/SaferCopy.ct
[Amiga]                    946    1964  48.2% -lh5- 5e56 Jun 11 18:49 safercopy1.4/sources/catalogs/slovensko/SaferCopy.ct
[Amiga]                    959    1989  48.2% -lh5- a401 Jun 11 18:49 safercopy1.4/sources/catalogs/srpski/SaferCopy.ct
[Amiga]                    920    1892  48.6% -lh5- 694d Jun 11 18:49 safercopy1.4/sources/catalogs/t?rk?e/SaferCopy.ct
[Amiga]                  12232   40716  30.0% -lh5- 99d9 Jun 11 17:47 safercopy1.4/sources/SaferCopy.c
[Amiga]                   1111    2393  46.4% -lh5- 81df Jun  9 19:41 safercopy1.4/sources/SaferCopy.cd
[Amiga]                   2804    5479  51.2% -lh5- baa1 Jun 11 18:07 safercopy1.4/sources/SaferCopy.readme
[Amiga]                    564    1545  36.5% -lh5- d12b Jun  9 19:41 safercopy1.4/sources/SaferCopy_cat.h
[Amiga]                    452     845  53.5% -lh5- 859e Jun 11 17:47 safercopy1.4/sources/SaferCopy_GCC.make
[Amiga]                    552     953  57.9% -lh5- fb6c Jun 11 17:47 safercopy1.4/sources/SaferCopy_SASC.make
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        49 files   72560  161141  45.0%            Jun 12 23:29
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>