diff options
| author | B. Watson <urchlay@slackware.uk> | 2025-11-29 05:18:55 -0500 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2025-11-29 05:18:55 -0500 |
| commit | 9cb352eb2dc528043a85cb30b54ba7a0e45c210f (patch) | |
| tree | 8ca4f14822b727adbea5c793adcecdc636175f81 | |
| parent | dcf32e932d5b50120d596f4326c40e5316ee2781 (diff) | |
| download | alftools-9cb352eb2dc528043a85cb30b54ba7a0e45c210f.tar.gz | |
Show 4-digit year with unalf -v.
| -rw-r--r-- | src/alf.1 | 18 | ||||
| -rw-r--r-- | src/alf.rst | 18 | ||||
| -rw-r--r-- | src/listalf.c | 7 |
3 files changed, 29 insertions, 14 deletions
@@ -205,11 +205,19 @@ instantaneous, 0.05 seconds, which is more typical of the files you\(aqd actually use this with. .SS Timestamps .sp -The date/time stamps stored in the archive are the \fBmtime\fPs of -the files (which is the same time \fBls\fP(1) shows, by default), and -your local timezone is assumed. Only a 2\-digit year is displayed by -\fBunalf\fP, but the year stored in the \fIALF\fP file doesn\(aqt have a Y2K -problem. It does, however, have a Y2108 problem... +The date/time stamps stored in the archive are the \fBmtime\fPs of the +files (which is the same time \fBls\fP(1) shows, by default), and your +local timezone is assumed (but see the \fB\-td\fP, \fB\-tu\fP, \fB\-tz\fP +options above). There\(aqs no way to store timezone or daylight savings +info in the \fIALF\fP file. +.sp +The year stored in the \fIALF\fP file doesn\(aqt have a Y2K problem. It does, +however, have a Y2108 problem: the range is from 1980 to 2107. +.sp +The timestamp only has 2\-second resolution. Files with odd\-numbered +seconds in the \fImtime\fP will have the number before that (1 => 0, 31 => +30, etc). This is a limitation of the \fIALF\fP file format. Also of the +\fIARC\fP format (I didn\(aqt know that, did you?) .SH COPYRIGHT .sp The original AlfCrunch (\fBDZ.COM\fP and \fBLZ.COM\fP) for the Atari 8\-bit diff --git a/src/alf.rst b/src/alf.rst index 59dc2af..4bf2c6c 100644 --- a/src/alf.rst +++ b/src/alf.rst @@ -182,11 +182,19 @@ actually use this with. Timestamps ---------- -The date/time stamps stored in the archive are the **mtime**\s of -the files (which is the same time **ls**\(1) shows, by default), and -your local timezone is assumed. Only a 2-digit year is displayed by -**unalf**, but the year stored in the *ALF* file doesn't have a Y2K -problem. It does, however, have a Y2108 problem... +The date/time stamps stored in the archive are the **mtime**\s of the +files (which is the same time **ls**\(1) shows, by default), and your +local timezone is assumed (but see the **-td**\, **-tu**\, **-tz** +options above). There's no way to store timezone or daylight savings +info in the *ALF* file. + +The year stored in the *ALF* file doesn't have a Y2K problem. It does, +however, have a Y2108 problem: the range is from 1980 to 2107. + +The timestamp only has 2-second resolution. Files with odd-numbered +seconds in the *mtime* will have the number before that (1 => 0, 31 => +30, etc). This is a limitation of the *ALF* file format. Also of the +*ARC* format (I didn't know that, did you?) COPYRIGHT ========= diff --git a/src/listalf.c b/src/listalf.c index fa469d7..34078e5 100644 --- a/src/listalf.c +++ b/src/listalf.c @@ -49,7 +49,6 @@ void format_msdos_date(char *buf) { /* year actually ranges 1980 to 2107... */ year = (d >> 9) + 1980; - year %= 100; /* ...but only print last 2 digits */ /* valid months range 1 to 12. values 0, 13, 14, 15 are possible but invalid (print as ???) */ @@ -58,7 +57,7 @@ void format_msdos_date(char *buf) { /* valid day range is 1 to 31. 0 is invalid, print as-is. */ day = d & 0x1f; - snprintf(buf, 10, "%2d %3s %02d", day, monthnames[month], year); + snprintf(buf, 12, "%2d %3s %04d", day, monthnames[month], year); } /* small files may be "compressed" larger than the original, so this @@ -77,8 +76,8 @@ void list_alf(void) { extern char *out_filename; if(opts.verbose_list) { - puts("Name Length Size now Comp Date Time CkSum"); - puts("============ ======== ======== ==== ========= ========= ====="); + puts("Name Length Size now Comp Date Time CkSum"); + puts("============ ======== ======== ==== =========== ========= ====="); } while(read_alf_header()) { |
