Frédéric Mangano
6d6722fb24
Support multiline tags in non-UTF-8 environments
...
The \t to \t\n substitution assumed an ASCII-compatible environment and would not have worked under
UTF-16. It’s therefore safer to perform the operation before the encoding conversion.
2023-02-07 15:59:44 +09:00
b9
d95fd45aef
Format multiline tags with TAB for continuation
2023-02-07 15:12:33 +09:00
Frédéric Mangano
7eea19633c
Support multiple-page OpusTags packets
2023-02-02 15:05:37 +09:00
Frédéric Mangano
d88498e4fd
Renumber the pages past the OpusTags packet
...
We will soon be able to process OpusTags packets spanning multiple pages, which would offset the
page number of all the succeeding pages. This change prepares the process loop for that feature.
2023-02-02 15:05:37 +09:00
Frédéric Mangano
bbe03f8030
Add .editorconfig
2023-01-27 15:54:37 +09:00
Frédéric Mangano
953ae490d4
Fix the test suite on macOS
2023-01-27 15:53:15 +09:00
Frédéric Mangano
ba435b26a4
Upgrade to C++20
2023-01-27 15:37:03 +09:00
Frédéric Mangano
712830e247
Mention in the README that opustags is tag-agnostic
2022-05-09 20:59:35 +02:00
Frédéric Mangano
a898ed4877
Finalize the migration for using exceptions
2021-01-17 15:54:23 +01:00
Frédéric Mangano
d453af2563
Migrate the system module to use exceptions
2021-01-17 15:43:16 +01:00
Frédéric Mangano
8a54361b8f
Migrate the opus module to use exceptions
2021-01-17 15:07:56 +01:00
Frédéric Mangano
1c03c31e82
Migrate the ogg module to use exceptions
2021-01-17 14:58:50 +01:00
Frédéric Mangano
b8f2518ef5
Move the page counting logic in the Ogg reader
2021-01-17 14:41:36 +01:00
Frédéric Mangano
6758ae23ff
Migrate the cli module to use exeptions
2021-01-17 12:55:30 +01:00
Frédéric Mangano
937cdc37a7
Exit with 2 on CLI arguments error
2021-01-17 12:36:22 +01:00
Frédéric Mangano
51c7f29c1a
Make the top-level functions deal with exceptions
2021-01-17 12:32:38 +01:00
Frédéric Mangano
ea00b8fd80
Update the CMake version requirement to 3.11
...
This is required for FindIconv.
2021-01-08 19:05:31 +01:00
Frédéric Mangano
2d5db09bda
Release 1.6.0
2021-01-01 11:41:03 +01:00
Frédéric Mangano
3e0b3fa56e
Make encoding errors fatal
...
With --raw there is a workaround.
The tolerant approach was cool and nice until you want to edit something
non-interactively and get the warning telling you you might have lost
data after the file was written. Failing fast is most likely the better
option here.
2020-12-27 10:55:25 +01:00
Frédéric Mangano
3e7b42062a
Discard incompatible comments entirely
...
//IGNORE is not portable either. Now that we have --raw it’s less an
issue though.
2020-12-27 10:55:20 +01:00
Frédéric Mangano
4cae6c44ee
Introduce --raw for disabling transcoding
2020-12-26 16:51:36 +01:00
Frédéric Mangano
6db7f07bd5
Factor CLI argument transcoding
2020-12-26 13:00:20 +01:00
Frédéric Mangano
fd5fa3cd5f
Make ot::encoding_converter use string views
2020-12-26 12:42:37 +01:00
Frédéric Mangano
c43704a0a7
Use //IGNORE instead of //TRANSLIT when transcoding
...
//TRANSLIT is not a well supported, and in most cases there’s not much
transliteration can help with when the encoding is limiting. Besides,
it sounds reasonable to assume most people use UTF-8 nowadays.
2020-12-26 12:30:44 +01:00
Frédéric Mangano
f98208c1a1
Support the various stat structures across systems
2020-11-25 20:07:23 +01:00
Frédéric Mangano
64fc6f8f6d
Include config.h globally
2020-11-25 20:05:46 +01:00
Frédéric Mangano
1d03da324c
Release 1.5.1
2020-11-21 11:05:56 +01:00
Frédéric Mangano
30b7f44ead
Include endian.h or sys/endian.h depending on the platform
2020-11-14 20:27:08 +01:00
Frédéric Mangano
b8c8be453f
Include headers for mkstemps
...
Linux requires <stdlib.h>, but FreeBSD requires <unistd.h>.
2020-11-14 18:18:42 +01:00
Frédéric Mangano
4a1b8705cc
Release 1.5.0
2020-11-08 10:32:46 +01:00
Frédéric Mangano
7c8396ca45
run_editor: Pass the editor command through the shell
...
wordexp doesn’t work on OpenBSD, and escaping the path ourselves then
calling system() is actually easier than using wordexp.
2020-11-01 11:57:48 +01:00
Frédéric Mangano
639d46ed0f
Introduce ot::shell_escape
2020-11-01 10:41:24 +01:00
Frédéric Mangano
d54bada7e6
Open handles with O_CLOEXEC
...
opustags’s only use of a sub-process is for spawning the EDITOR, and we
don’t want it to access our file handles.
2020-10-31 18:44:46 +01:00
Frédéric Mangano
57a4c0d5a0
Flush the writer before exec’ing
...
In the unlikely event the child process fails without exec’ing, we don’t
want both the child process and parent process to flush the OpusHead
header.
Thanks @omar-polo for reporting this!
2020-10-31 18:44:46 +01:00
Frédéric Mangano
d071b6cabd
Fix error reporting when EDITOR fails
2020-10-31 18:10:33 +01:00
Frédéric Mangano
d8c36a3d3f
Forbid mixing --edit with non-interactive edition options
2020-10-31 12:15:01 +01:00
Frédéric Mangano
ba2236facb
Cancel --edit when the editor closes without saving
2020-10-31 12:11:26 +01:00
Frédéric Mangano
b3b092d241
Expand EDITOR/VISUAL with wordexp
2020-10-25 11:09:18 +01:00
Frédéric Mangano
8f0f29c056
Support VISUAL with --edit
2020-10-24 12:00:43 +02:00
Frédéric Mangano-Tarumi
e4ca6ca6ef
Introduce the --edit option
2020-10-12 07:55:27 +02:00
Frédéric Mangano-Tarumi
df03cdf951
Introduce ot::execute_process
2020-10-11 18:06:40 +02:00
Frédéric Mangano-Tarumi
8252f94084
--set-all: Ignore comments starting with #
2020-10-11 18:06:39 +02:00
Frédéric Mangano-Tarumi
a1dcc8c47e
Fix print_comments when output is not stdout
2020-10-11 17:43:04 +02:00
Frédéric Mangano-Tarumi
7206604f85
Make read_comments work on std::list
...
For consistency with ot::opus_tags.
2020-10-11 17:43:04 +02:00
Frédéric Mangano-Tarumi
6da5545b30
Flatten option compatibility checking
...
The more options we have the more nested it gets. It was getting
complicated.
2020-10-11 17:40:52 +02:00
Frédéric Mangano-Tarumi
537094fd53
use CMake’s FindIconv to detect iconv portably
2020-10-10 15:20:19 +02:00
Frédéric Mangano-Tarumi
be9740fe05
Explicitely include <optional>
...
It should have been included since we use std::optional, and not
including it breaks the build on OpenBSD.
2020-10-10 15:10:59 +02:00
Frédéric Mangano-Tarumi
a22c81e727
release 1.4.0
2020-10-04 09:34:13 +02:00
Frédéric Mangano-Tarumi
9715f0242f
Define _GNU_SOURCE for BSD compability
2020-09-27 13:57:44 +02:00
Frédéric Mangano-Tarumi
b369aea8d4
Fix signedness warnings in t/cli.cc
2020-09-26 13:13:15 +02:00