>> move notes from TODO into the man page and "FAQ"
This commit is contained in:
parent
9eec80ec79
commit
2a536d4a3f
3 changed files with 68 additions and 1 deletions
|
|
@ -20,8 +20,9 @@ characters, at least if you don't want to manually write a very complex
|
||||||
regular expression every time you encounter this problem.
|
regular expression every time you encounter this problem.
|
||||||
|
|
||||||
Owl will hunt down any files with these issues and rename them as
|
Owl will hunt down any files with these issues and rename them as
|
||||||
appropriate - see `man.md` for usage.
|
appropriate - see `man.md` for usage and other important information.
|
||||||
|
|
||||||
|
See [Infrequently Asked Questions](./iaq.md) for unimportant information.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
40
iaq.md
Normal file
40
iaq.md
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Infrequently Asked Questions
|
||||||
|
No one but has asked these questions, but I'm giving answers anyway, mainly
|
||||||
|
so I don't forget them in future.
|
||||||
|
|
||||||
|
## Why didn't you use Punycode?
|
||||||
|
[Punycode](https://en.wikipedia.org/wiki/Punycode) is a web standard for
|
||||||
|
converting general Unicode text into ASCII, for use in domain names, and for
|
||||||
|
nothing else. As the Wikipedia page says, it maps "München" to "Mnchen-3ya",
|
||||||
|
which I personally find harder to understand than "M_Ufc_nchen". It also
|
||||||
|
would add a dash to the end of pure
|
||||||
|
[ASCII](https://en.wikipedia.org/wiki/ASCII) text, so "London" would become
|
||||||
|
"London-", and its output does not handle characters that are bad for
|
||||||
|
shells, like "?".
|
||||||
|
|
||||||
|
## Why didn't you use `base64/32/16`?
|
||||||
|
These are internet encoding standards used to convert any binary data to
|
||||||
|
ASCII text, which sounds perfect for the job. However, their outputs are not
|
||||||
|
human readable, and Owl is designed so that you will at least know roughly
|
||||||
|
what the file was originally called.
|
||||||
|
See <https://www.rfc-editor.org/rfc/rfc4648.html#section-10> for examples.
|
||||||
|
|
||||||
|
## Why not just `mmv`? Or `zsh`?
|
||||||
|
[mmv](https://github.com/rrthomas/mmv) is command line tool to do a kind of
|
||||||
|
"glob search and replace" with filenames. [zsh](https://zsh.sourceforge.io/)
|
||||||
|
is a shell, Bash or the PowerShell, but it has a tool to do a similar thing
|
||||||
|
called `zmv`. These require writing a regular expression of glob pattern to
|
||||||
|
represent the changes you wish to make, which is fiddly work when what you
|
||||||
|
want is to exclude potentially thousands of characters, not to mention
|
||||||
|
potential issues with hidden files (a.k.a. "dot files") and shell globbing.
|
||||||
|
|
||||||
|
### Other alternatives
|
||||||
|
- <https://github.com/DDR0/fuseblk-filename-fixer>: This actually does
|
||||||
|
pretty much what Owl does, but is more specialised to its author's needs.
|
||||||
|
|
||||||
|
## Tree
|
||||||
|
This is used for testing. It should be available on any Linux system from
|
||||||
|
your distribution's repositories. If not, the source code can be downloaded
|
||||||
|
from the GitLab repository at
|
||||||
|
<https://gitlab.com/OldManProgrammer/unix-tree> or from the home page of the
|
||||||
|
project at <https://oldmanprogrammer.net/source.php?dir=projects/tree>.
|
||||||
26
man.md
26
man.md
|
|
@ -33,3 +33,29 @@ Show version information.
|
||||||
|
|
||||||
### -h, \-\-help
|
### -h, \-\-help
|
||||||
Show a small help message.
|
Show a small help message.
|
||||||
|
|
||||||
|
|
||||||
|
## Edge Cases & Other Tidbits
|
||||||
|
## What doesn't FAT allow?
|
||||||
|
Mainly `*<>\|/:?'`
|
||||||
|
|
||||||
|
### What about whitespace?
|
||||||
|
Some of these (like tab, line feed, and carriage return) are not valid under
|
||||||
|
FAT and will be removed.
|
||||||
|
|
||||||
|
If a sequence of invalid characters surrounded by spaces is in one of the
|
||||||
|
file names, and the `remove` strategy is being used, then you will be left
|
||||||
|
with multiple whitespace characters in a row. For example,
|
||||||
|
```
|
||||||
|
Really questionable ?? filename
|
||||||
|
```
|
||||||
|
will become
|
||||||
|
```
|
||||||
|
Really questionable filename
|
||||||
|
```
|
||||||
|
with a double space before `filename`.
|
||||||
|
|
||||||
|
### What about invalid UTF-8/UTF-16?
|
||||||
|
This is removed and replaced with "\_INVALID_". This replacement is done
|
||||||
|
before anything else.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue