aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.txt3
-rw-r--r--src/unalf.129
-rw-r--r--src/unalf.rst29
3 files changed, 39 insertions, 22 deletions
diff --git a/TODO.txt b/TODO.txt
index 9371b1d..33f810c 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,6 +1,3 @@
-- categorize diagnostics as fatal or warning. done in the code, needs doing
- in the man page.
-
- fix dup message for bad opts:
$ ./unalf -X
./unalf: invalid option -- 'X'
diff --git a/src/unalf.1 b/src/unalf.1
index b424038..5ca8547 100644
--- a/src/unalf.1
+++ b/src/unalf.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNALF" 1 "2025-11-21" "0.1.0" "Urchlay's Atari 8-bit Tools"
+.TH "UNALF" 1 "2025-11-22" "0.1.0" "Urchlay's Atari 8-bit Tools"
.SH NAME
unalf \- extract Atari 8-bit ALF archives
.\" RST source for unalf(1) man page. Convert with:
@@ -250,15 +250,22 @@ has a bad checksum.
.SH DIAGNOSTICS
.sp
Besides the standard error messages such as "no such file or directory":
+.SS Fatal errors
+.sp
+\fBunalf\fP will exit with status 1 immediately after these errors:
.INDENT 0.0
.TP
-.B \fBthis is an ARC file, not ALF\fP
+.B \fBfatal: this is an ARC file, not ALF\fP
Self\-explanatory. Use the \fBarc\fP(1) utility for this file.
.TP
-.B \fBnot an ALF file\fP
+.B \fBfatal: not an ALF file\fP
Self\-explanatory. Either the file is too small (less than 29 bytes)
or its first two bytes don\(aqt match the \fIALF\fP signature \fB0x1a\fP \fB0x0f\fP\&.
.TP
+.B \fBfatal: stack underrun/overrun\fP
+Generally means the archive is corrupt. Valid ALF files should never
+cause these errors.
+.TP
.B \fBjunk at EOF (ignored)\fP
Usually this is caused by the .alf file being stored on a CP/M disk
at some time, or by a dumb file transfer protocol. Either way, the
@@ -266,17 +273,19 @@ file gets padded to the block size of the filesystem or protocol.
Usually, the padding characters are \fB0x1a\fP, aka ASCII control\-Z.
.sp
If you see this message, you can ignore it. It\(aqs intended to let
-you know that this .alf file can\(aqt be appended to by the \fBALF.COM\fP
-aka \fBLZ.COM\fP Atari utility.
+you know that this .alf file can\(aqt be appended to by the
+\fBLZ.COM\fP (aka \fBALF.COM\fP) Atari utility.
+.UNINDENT
+.SS Warnings
+.sp
+\fBunalf\fP will continue after these messages occur.
+.INDENT 0.0
.TP
.B \fBchecksum error on\fP \fI<file>\fP
The archive is corrupt. If \fI<file>\fP is a text file, it may be
partially readable. If it\(aqs an executable or other binary file, it\(aqs
-probably unrecoverable.
-.TP
-.B \fBstack underrun/overrun\fP
-Generally means the archive is corrupt. Valid ALF files should never
-cause these errors.
+probably unrecoverable. \fBunalf\fP will try to extract the rest of
+the archive, but will exit with status 2 when it\(aqs done.
.sp
If you have an ALF file that does this, try it with the Atari
\fBDZ.COM\fP and see if it has the same problem. If it doesn\(aqt,
diff --git a/src/unalf.rst b/src/unalf.rst
index ef4d928..a1b8abe 100644
--- a/src/unalf.rst
+++ b/src/unalf.rst
@@ -206,13 +206,22 @@ DIAGNOSTICS
Besides the standard error messages such as "no such file or directory":
-**this is an ARC file, not ALF**
+Fatal errors
+------------
+
+**unalf** will exit with status 1 immediately after these errors:
+
+**fatal: this is an ARC file, not ALF**
Self-explanatory. Use the **arc**\(1) utility for this file.
-**not an ALF file**
+**fatal: not an ALF file**
Self-explanatory. Either the file is too small (less than 29 bytes)
or its first two bytes don't match the *ALF* signature **0x1a** **0x0f**\.
+**fatal: stack underrun/overrun**
+ Generally means the archive is corrupt. Valid ALF files should never
+ cause these errors.
+
**junk at EOF (ignored)**
Usually this is caused by the .alf file being stored on a CP/M disk
at some time, or by a dumb file transfer protocol. Either way, the
@@ -220,17 +229,19 @@ Besides the standard error messages such as "no such file or directory":
Usually, the padding characters are **0x1a**, aka ASCII control-Z.
If you see this message, you can ignore it. It's intended to let
- you know that this .alf file can't be appended to by the **ALF.COM**
- aka **LZ.COM** Atari utility.
+ you know that this .alf file can't be appended to by the
+ **LZ.COM** (aka **ALF.COM**) Atari utility.
+
+Warnings
+--------
+
+**unalf** will continue after these messages occur.
**checksum error on** *<file>*
The archive is corrupt. If *<file>* is a text file, it may be
partially readable. If it's an executable or other binary file, it's
- probably unrecoverable.
-
-**stack underrun/overrun**
- Generally means the archive is corrupt. Valid ALF files should never
- cause these errors.
+ probably unrecoverable. **unalf** will try to extract the rest of
+ the archive, but will exit with status 2 when it's done.
If you have an ALF file that does this, try it with the Atari
**DZ.COM** and see if it has the same problem. If it doesn't,