Revision history for App-Access2CSV
0.001.1 Fri Oct 2 09:17:41 PM EDT 2026
[ Bug fixes ]
- --log with a name containing "..", "$", "!" or ";" (such as
--log ../logs/run.log) created an empty log and lost every
message, with only a "Cannot write to the log" warning
- The log is now opened once, refusing symbolic links, and kept
open for the run. Before, it was reopened for every message, so
a symbolic link planted after the check could still be written
through
- A directory given as standard input ("access2csv - < dir") is
refused with "Cannot read standard input: Is a directory" on
every system. On NetBSD (and FreeBSD before 13) reading a
directory returns its raw entries, which were exported as if they
were a database:
https://www.cpantesters.org/cpan/report/e9759fca-bda8-11f1-b0a1-a794297aa253
- Table names longer than Access allows (64 characters) are
shortened to 64 characters and at most 240 bytes, keeping whole
characters, instead of failing with "File name too long". Only
a damaged or hostile database has such names.
- Bytes in a table name that are not valid UTF-8 are replaced by
"_" in the file name. macOS refuses such file names, so those
tables failed there with "Illegal byte sequence".
0.001.0 Mon Sep 28 02:13:38 PM EDT 2026
First release.
- access2csv: export every user table of an Access (.mdb/.accdb)
database to one CSV file each, using mdbtools
- Encodings: utf8, utf8-bom (for Excel) and cp1252; cp1252 refuses
characters it cannot hold, with the line number
- Safe file names: unsafe and invisible control characters
replaced, Windows device names avoided, collisions numbered
(ignoring case)
- Each table written to a temporary file and renamed into place: a
failure or interruption never leaves a half-written CSV, and an
old file is replaced only by a complete new one
- --table, --dry-run, --show-counts, --overwrite, --output-dir,
--log/--no-log, --no-progress, --verbose, --version
- "-" reads the database from standard input
- Ctrl-C/SIGTERM stop the run cleanly
- Security: no shell, "--" before names, relative PATH entries
ignored, terminal output escaped, log symbolic links refused,
taint mode (-T) supported
- Messages through a translatable catalog (English included)
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)