Commit Graph

2455 Commits

Author SHA1 Message Date
einstein95
465f242f0a DEVTOOLS: COMPANION: Set last modified time to one from volume 2021-08-23 13:26:42 +02:00
Roland van Laar
c242dcbeb8 DEVTOOLS: COMPANION: fix dir mode
Last refactor left the dir mode in a broken state.
Thanks to @trembyle for spotting it.
2021-08-22 23:04:07 +02:00
Roland van Laar
fb95877874 DEVTOOLS: COMPANION: remove escape chars
It was decided on discord that we're only escaping chars that windows
absolutely can't handle.

These chars are now not escaped: ,;=
2021-08-22 22:56:33 +02:00
Cameron Cawley
644e7354f5 CREDITS: Update credits 2021-08-22 22:25:33 +03:00
Cameron Cawley
8a21f2bcb3 DEVTOOLS: Fix the order of engines in the credits 2021-08-22 22:25:33 +03:00
Roland van Laar
d38a147019 DEVTOOLS: COMPANION: improve special char handling
We follow [1] in which chars need to be escaped.
    - we now allow the following chars in filenames: []+
    - filenames can't end in a dot or space

Includes updated tests.

[1] https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
2021-08-22 11:10:00 +02:00
Roland van Laar
581dd9c9d2 DEVTOOLS: COMPANION: cleanup
- Remove a superfluous import
2021-08-22 11:10:00 +02:00
Roland van Laar
d32d232e05 DEVTOOLS: DUMPERCOMPANION: handle all filenames
Always punyencode filenames when the filename contains a char that
should be escaped. This makes it work better with windows.

Windows has a short list of chars that not allowed:
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions
2021-08-22 00:51:34 +02:00
Roland van Laar
1e9ca945b9 JANITORAL: DEVTOOLS: reformat code
Using # fmt: off and # fmt: off allows for excluding the decode map when
formatting. Other lines are formatted with black
2021-08-22 00:51:34 +02:00
Roland van Laar
81be6b459b DEVTOOLS: DUMPERCOMPANION: fix double encoding
\x81 is used as a control character to denote a special char.
\x81 was encoded put in the end result twice because of a missing elif.

Includes unittest fix.
2021-08-21 09:40:17 +02:00
Roland van Laar
00d54a3358 DEVTOOLS: DUMPERCOMPANION: fix logging mac mode
Re-enable printing messages when punyencoding files in mac mode.
2021-08-21 09:18:43 +02:00
Roland van Laar
32991d2152 DEVTOOLS: DUMPERCOMPANION: punyencode dirs on mac
Enable punyencoding of directory names in mac mode.

A refactor of the code to handle punyencoding in mac mode.
It's now a two step process:
  - first collect the resource forks into macbinaries and
  - second punyencode recursively all files and directories
2021-08-21 00:15:16 +02:00
Roland van Laar
86f6c137f5 DEVTOOLS: DUMPERCOMPANION: support mac_japanese
The dumper companion now support dumping mac_japanese isos. MachFS
expects encodes everything in mac_roman. For mac_japanese we decode it
as mac_roman and then encode it ourselve.

    `dumper-companion.py iso --japanese --punycode path/to/iso path/to/dir`

- A conversion table and code was added: taken from:
    https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT
- file_to_macbin takes an encoded filename to allow for both mac_japanse
  and mac_roman encodings.
- punyfication is now an explicit option when dumping isos
2021-08-20 23:56:18 +02:00
Roland van Laar
b61e973099 DEVTOOLS: DUMPERCOMPANION fix macbinary padding
Macbinary forks are padded to be a multiple of 128 bytes.
An extra padding of 128 bytes was added when 0 were needed.

This fixes that.
2021-08-20 23:56:18 +02:00
Roland van Laar
f73f481ec2 DEVTOOLS: COMPANION: linter fixes
- remove encoding parameter from `punyencode`
- fix return types of type hints
2021-08-20 23:56:18 +02:00
Roland van Laar
82ba7e9830 DEVTOOL: COMPANION
Added support for Japanese encoding.

Remove option for specifying encodings. All input is expected to be
unicode.
2021-08-18 22:39:06 +02:00
BLooperZ
68b9b909ee KYRA: HOF: reverse english names in hebrew 2021-08-17 19:43:48 +02:00
BLooperZ
bacd737ea3 KYRA: add support for kyra2 fan translation 2021-08-17 19:43:48 +02:00
Eugene Sandulenko
7642ecf0a9
DEVTOOLS: Fix URL for create_classicmacfonts.sh 2021-08-17 14:37:40 +02:00
alxpnv
4506b1d48c ACHIEVEMENTS: add Sanitarium support 2021-08-16 15:06:21 +03:00
Roland van Laar
f825c39d64 DEVTOOLS: COMPANION: code improvements
- mac mode: show which file's attributes can't be read
- mac mode: use exit code 1 when bailing
- implement exit codes for all modes
- fix spelling mistake
- sort imports, python once first, then external packages
- refactor: use os.path.join only once per file
2021-08-12 21:57:28 +02:00
Eugene Sandulenko
b10c55abcb
DEVTOOLS: COMPANION: Fix error processing 2021-08-12 20:34:57 +02:00
Eugene Sandulenko
0e69fb7e61
DEVTOOLS: COMPANION: Use xattr module for creator/type extraction 2021-08-12 19:36:58 +02:00
Maxim Kovalenko
88589a852c XEEN: RU Translated Mirror aliases 2021-08-11 20:06:01 -07:00
Eugene Sandulenko
9ba6f1fe01
DEVTOOLS: COMPANION: Keep the file names in mac mode, set the modification time 2021-08-09 23:03:00 +02:00
Eugene Sandulenko
681fc2eaa3
DEVTOOLS: COMPANION: Set the macbinary type and creator for mac mode 2021-08-09 22:41:12 +02:00
Eugene Sandulenko
8952db2dfd
DEVTOOLS: COMPANION: Fix mac mode and set file timestamps 2021-08-09 22:09:03 +02:00
Roland van Laar
0e0aef0201 DEVTOOLS: COMPANION: add macbinary mode
`dumper-companion.py mac [--punycode] directory` will recursively look
for resourceforks and encode them inplace as macbinary.

When `--punycode` is enabled it will encode filenames in punycode.

This is a MacOS only feature.
2021-08-09 15:54:05 +02:00
Roland van Laar
66568ca700 DEVTOOLS: COMPANION: Improve helptext
Make it clear that punyencoding of stdin is supported.
2021-08-09 15:54:05 +02:00
Roland van Laar
4d00111acf DEVTOOLS: COMPANION: hfs dump use existing dir
Don't complain when the directory to write to already exists.
2021-08-09 15:54:05 +02:00
Roland van Laar
8ddb3aec3a DEVTOOLS: COMPANION: remove superfluous statement 2021-08-09 15:54:05 +02:00
Roland van Laar
c586311c26 DEVTOOLS: COMPANION: add development info helptext 2021-08-09 15:54:05 +02:00
Roland van Laar
6e5d7c2395 DEVTOOLS: COMPANION: bring escape inline
Original dumper-companion.pl script encoded \x81 to \x81\x79\x81.
- added test to check for correct behavior
- refactored escape string to handle this special case
2021-08-09 00:22:18 +02:00
Roland van Laar
a1a31748e8 DEVTOOLS: COMPANION: change escape char
\x81 is used to encode escaped chars. This change brings it in line with
the dumpercompanion.pl.
2021-08-09 00:09:52 +02:00
Roland van Laar
0f46b30654 DEVTOOLS: COMPANION: punyencode strings
Adds the `str` subcommand:

./dumper-companion.py str STRING
    punyencode the string STRING
./dumper-companion.py str --stdin
    punyencode stdin

The HFS iso dumper is moved into it's own subcommand:

./dumper-companion.py iso -e encoding input_iso output_dir
2021-08-08 23:42:01 +02:00
Eugene Sandulenko
8892902c8f
DEVTOOLS: COMPANION: Keep the original filename encoding in MacBinary 2021-08-06 13:29:06 +02:00
Max Horn
2f1f8f502e DEVTOOLS: move credits from devtools/credits.pl to engines
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
2021-08-05 00:01:46 +02:00
Roland van Laar
064a266a22 DEVTOOLS: COMPANION: remove debug statements 2021-08-04 16:54:06 +02:00
Roland van Laar
38ee5037e5 DEVTOOLS: COMPANION: create python version
It reads an hfs formatted iso and extracts its contents. The output
follows two rules:
- A file is saved as macbinary when it has a resource fork and
- filenames with non-ascii chars are converted into a punycode variant.

An initial verson of this python script was created by: @eientei on
discord.
2021-08-04 16:02:21 +02:00
Orgad Shaneh
0b2ae9fa5e DEVTOOLS: Replace ugly SDL/MinGW hack with a cleaner hack
Instead of having main=SDL_main defined by pkg-config/sdl2-config --cflags
and undefining it everywhere, strip it in its origin.
2021-08-03 07:35:15 +03:00
D G Turner
5e0aeffb58 DEVTOOLS: Fix create_xeen Compilation 2021-08-03 04:15:36 +01:00
Orgad Shaneh
f084d29e9a DEVTOOLS: Fix create_xeen compilation without C++11 2021-08-02 23:12:57 +03:00
Eugene Sandulenko
d71bc64e83
DEVTOOLS: XEEN: Fix warnings 2021-08-02 18:34:36 +02:00
Eugene Sandulenko
11ed99bd62
DEVTOOLS: XEEN: Fix compilation on some platforms 2021-08-02 18:34:36 +02:00
Orgad Shaneh
99773ee204 DEVTOOLS: Fix create_project compilation on Windows with UNICODE defined 2021-08-02 17:47:29 +02:00
Maxim Kovalenko
0b038463ff XEEN: RU Fixed item materials 2021-08-02 17:35:18 +02:00
Maxim Kovalenko
4ea20488cc XEEN: RU create_xeen removed const in int return 2021-08-02 17:35:18 +02:00
Maxim Kovalenko
805f55f1cd XEEN: RU Fixed some localized strings. Fixed intro subtitles.
Fixed optimizer issues
2021-08-02 17:35:18 +02:00
Maxim Kovalenko
21c727b2c7 XEEN: RU Fixed names according to conventions 2021-08-02 17:35:18 +02:00
Maxim Kovalenko
b655cfc03e XEEN: RU Moving translated hotkeys to resources.
Hotkeys changed in locations, CoX Menu.
Margin fix
2021-08-02 17:35:18 +02:00