Пробел в конце второй строчки и перекодированная третья строка.
Сам файл, который был заююкан:
https://brorabbit.g0x.ru/uue/scorpions_blackout.mp3
У меня тоже баг. GoldED+/W32-MSVC 1.1.5-b20180707
Заююкал - разююкал - файл не совпадает с оригиналом...
У меня тоже баг. GoldED+/W32-MSVC 1.1.5-b20180707
Заююкал - разююкал - файл не совпадает с оригиналом...
ПочиИЛ.
У меня тоже баг. GoldED+/W32-MSVC 1.1.5-b20180707
Заююкал - разююкал - файл не совпадает с оригиналом...
ПочиИЛ.srcdate и вот это всё...
е прошло и 6ти лет.
Пробел в конце второй строчки и перекодированная третья строка.
Сам файл, который был заююкан:
https://brorabbit.g0x.ru/uue/scorpions_blackout.mp3
У меня тоже баг. GoldED+/W32-MSVC 1.1.5-b20180707
Заююкал - разююкал - файл не совпадает с оригиналом...
ПочиИЛ.
+//
------------------------------------------------------------------
+// UUE character decode: maps ASCII to 6-bit value, -1 = invalid.
+static int uu_xlat(unsigned char c)
+{
+ if (c >= ' ' && c < (' ' + 64)) return c - ' ';
- +// UUE character decode: maps ASCII to 6-bit value, -1 =Точно c >= ' '? В улюлюке же пробелов быть не должно.
invalid.
+static int uu_xlat(unsigned char c)
+{
+ if (c >= ' ' && c < (' ' + 64)) return c - ' ';
При кодировании из файла берутся данные по три байта (в случае, если
осталось меньше 3 байт, недостающие заменяются нулями). 24 бита,
образующие эти три байта, делятся на четыре группы по 6 бит. Каждая шестибитная группа интерпретируется как число (от 0 до 2^6-1=63), к
которому добавляется 32. Получившееся число в диапазоне от 32 до 95 трактуется как код символа в ASCII таблице (получаются символы от пробела (32) до знака подчёркивания (95)
- +// UUE character decode: maps ASCII to 6-bit value, -1 =
invalid.
+static int uu_xlat(unsigned char c)
+{
+ if (c >= ' ' && c < (' ' + 64)) return c - ' ';
Точно c >= ' '? В улюлюке же пробелов быть не должно.
Прикол в том, что в оригинальном "стандарте", хотя нет RFC, но есть просто man uuencode(5), как раз пробелы есть.
https://ru.wikipedia.org/wiki/UUE
При кодировании из файла берутся данные по три байта (в случае, если
осталось меньше 3 байт, недостающие заменяются нулями). 24 бита,
образующие эти три байта, делятся на четыре группы по 6 бит. Каждая
шестибитная группа интерпретируется как число (от 0 до 2^6-1=63), к
которому добавляется 32. Получившееся число в диапазоне от 32 до 95
трактуется как код символа в ASCII таблице (получаются символы от пробела
(32) до знака подчёркивания (95)
Т.е. нули кодируются пробелами в "стандарте". Понятное дело, что постепенно пришло понимание, что пробелы в письмах про@бываются, их не особо видно, и придумали их заменять на обратную-ковычку `, код которой 96, как раз за последним символом подчёркивания (95).
=== Тестируем ===
% echo -n -e '\0\0\0' | uuencode test
begin 644 test
#````
`
end
====
Код функции uu_xlat как раз оба варианта хавают.
| Sysop: | Angel Ripoll |
|---|---|
| Location: | Madrid, Spain |
| Users: | 18 |
| Nodes: | 8 (0 / 8) |
| Uptime: | 22:53:41 |
| Calls: | 1,148 |
| Files: | 1,636 |
| D/L today: |
5 files (10K bytes) |
| Messages: | 66,502 |