On Sat Jan 15 19:00:00 2022, Oli wrote to All <=-
How does Binki handle spaces in filenames? Does it escape and unescape " " and "\x20"? I couldn't find anything in the sources.
It doesn't. I'm testing a change now to escape / unescape spaces and
other reserved characters. The format is apparently \20 not \x20 for
binkp
As for \x20 - I guess this is handled by the C++ filesystem std library,
i don't know.
On Sat Jan 15 19:00:00 2022, Oli wrote to All <=-
How does Binki handle spaces in filenames? Does it escape and unescape " " and "\x20"? I couldn't find anything in the sources.
It doesn't. I'm testing a change now to escape / unescape spaces and other reserved characters. The format is apparently \20 not \x20 for binkp
As for \x20 - I guess this is handled by the C++ filesystem std library, i don't know.
I think it's actually supposed to be '\xXX' (and just just \x20 for
space). This is what BinkIT does (for both encode and decode of
filename parameters) and it appears to jive with FTS-1026.
Nope. '\x20' is character literal in C/C++, but that's a sequence that
would be converted at compile time, not run-time, so there's no
special filesystem support for that style of escape sequence. :-)
On Sat Jan 15 19:00:00 2022, Oli wrote to All <=-
How does Binki handle spaces in filenames? Does it escape and
unescape " " and "\x20"? I couldn't find anything in the sources.
It doesn't. I'm testing a change now to escape / unescape spaces and
other reserved characters. The format is apparently \20 not \x20 for binkp
It is \x for all reserved characters and \x20 for space (see
FTS-1026). The \20 was an error in a previous FTSC proposal
(FSP-1011).
I think it's actually supposed to be '\xXX' (and just just \x20 for space). This is what BinkIT does (for both encode and decode of filename parameters) and it appears to jive with FTS-1026.
* The FSP-1011.003 escape method of "\HH" is deprecated.
* Systems should provide a configuration option on a per-node
basis to use the FSP-1011.003 method for nodes running software
written assuming the "\HH" encoding.
* Software should unconditionally transform "\20" (specifically)
into a space character in file names.
tenser wrote (2022-01-20):
* The FSP-1011.003 escape method of "\HH" is deprecated.
It's not deprecated, it was never valid binkp. FSP-1011 was never
released as a standard and \HH was a documentation error. (if my interpretation is correct)
* Systems should provide a configuration option on a per-node
basis to use the FSP-1011.003 method for nodes running software
written assuming the "\HH" encoding.
"It is _advised_ to have a setting for specific nodes to sent escaped characters using the incorrect method."
advise is not a SHOULD or MUST.
It was not the worst idea when the FTS was released, but it's not really
a sufficient workaround and in many cases useless. In the source code and documentation of several mailers, only Argus and Irex are mentioned as
the mailers that are victims of the error in FPS-1011. I'm not sure
anyone is using Argus anymore (and it has became open source, so it
could be fixed). And Irex binkp implementation is a mess anyway and
might need some additional workarounds (https://gitlab.synchro.net/main/sbbs/-/issues/185).
All other mailers I know do use \xHH or don't do any escaping at all.
IMHO, don't waste time with implementing and documenting a configuration option. Do some hard coded auto detection for the few specific mailer versions that have problems or just ignore the few broken mailers.
* Software should unconditionally transform "\20" (specifically)
into a space character in file names.
.... and send a warning message back ;)
M_NUL BUG "Your mailer is a victim of FSP-1011. Use \x20 instead of \20."
Sysop: | Gary Ailes |
---|---|
Location: | Pittsburgh, PA |
Users: | 132 |
Nodes: | 5 (0 / 5) |
Uptime: | 107:57:32 |
Calls: | 733 |
Files: | 2,171 |
Messages: | 81,476 |