Commit Graph

233 Commits

Author SHA1 Message Date
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
Reuben Thomas
84e238a4a9
Add support for multiple input files with --in-place
Co-authored-by: Frédéric Mangano-Tarumi <fmang@mg0.fr>
2020-09-26 13:12:15 +02:00
Reuben Thomas
73a54d7ab7 Don't treat empty output filename specially (fix #27)
Instead, make opt.path_out a std::optional<std::string>.
2020-09-20 16:32:27 +02:00
Reuben Thomas
ef15e7ad13
With --set-all, read comments from stdin before processing tags (#29)
With --set-all, read comments from stdin before processing tags
2020-09-19 11:02:43 +02:00
Frédéric Mangano-Tarumi
5ea2db2d6d upgrade to C++17 2020-08-31 21:25:03 +02:00
Frédéric Mangano-Tarumi
6f7ac1f13b review the code comments
In particular, delete the obsolete TODOs.
2020-08-24 21:51:23 +02:00
Frédéric Mangano-Tarumi
ea4d74d844 proper permissions setting on output files 2020-08-23 17:51:45 +02:00
Frédéric Mangano-Tarumi
4de428bf33 release 1.3.0 2019-02-02 16:58:09 -05:00
Frédéric Mangano-Tarumi
c774c86286 rename liblibopustags to libot
It follows the name of the C++ namespace, and avoids confusion with the
opustags executable.
2019-01-26 17:07:53 -05:00
Frédéric Mangano-Tarumi
51f635d6bf remove the docker thing
It's gonna stay in git but I don't plan to maintain it for now.
2019-01-26 17:05:51 -05:00
Frédéric Mangano-Tarumi
da8f8a343b
Merge pull request #24 from akx/macos-compat
macOS compatibility (sort of)
2019-01-26 17:04:29 -05:00
Frédéric Mangano-Tarumi
8ba3db8bbd t: safer argument casting for getopt 2019-01-12 16:09:18 -05:00
Frédéric Mangano-Tarumi
87bdd6fe22 t: cannot rely on iconv's //TRANSLIT
It's really system-dependant. As long as it doesn't break the regular
conversion it's fine. Managing transliteration is a nice to have but we
cannot expect it would work everywhere.

On systems that don't support it, iconv will trigger an EILSEQ.
2019-01-12 15:46:04 -05:00
Aarni Koskela
a9dd07ae1e Tweak CMakeLists.txt to build on macOS 2019-01-09 14:19:41 +02:00
Aarni Koskela
40defdf2e1 Add headers required on macOS 2019-01-09 14:19:41 +02:00
Aarni Koskela
48336b5367 Change libopustags to STATIC, not OBJECT:
> CMake Error at CMakeLists.txt:27 (target_link_libraries):
>   Object library target "libopustags" may not link to anything.
2019-01-09 14:19:41 +02:00
Aarni Koskela
4d44550d3d Add Dockerfile for testing the build 2019-01-09 14:19:41 +02:00
Frédéric Mangano-Tarumi
8d287a8070 fix a memory leak in ot::read_comments 2019-01-08 20:57:55 -05:00
Frédéric Mangano-Tarumi
d09d7bd634 t: only run opustags.t in UTF-8 environments 2018-12-19 20:32:55 -05:00
Frédéric Mangano-Tarumi
191796a3d2 t: skip locale test when fr_FR.iso88591 is missing 2018-12-19 19:56:32 -05:00
Frédéric Mangano-Tarumi
cacbd43422 t: modernize system.t 2018-12-18 20:25:28 -05:00
Frédéric Mangano-Tarumi
2dbba5a23e t: extend the tap module 2018-12-18 20:25:26 -05:00
Frédéric Mangano-Tarumi
19c1a8361d update CONTRIBUTING 2018-12-17 21:13:16 -05:00
Frédéric Mangano-Tarumi
4036ce1f39 t: print errors on stderr
That way, they're shown by the prove command.
That's what the Perl test suite does too.
2018-12-17 20:58:39 -05:00
Frédéric Mangano-Tarumi
28ecbecdf0 prepare 1.3.0 2018-12-17 20:50:50 -05:00
Frédéric Mangano-Tarumi
06fff8cbeb support --delete NAME=VALUE 2018-12-17 20:00:27 -05:00
Frédéric Mangano-Tarumi
e2a1c06005 case-insensitive field name for comment deletion 2018-12-16 18:56:18 -05:00
Frédéric Mangano-Tarumi
a9adc11cad t: delete_comments 2018-12-16 18:51:28 -05:00
Frédéric Mangano-Tarumi
f872f71411 move delete_comments into cli 2018-12-16 18:44:08 -05:00
Frédéric Mangano-Tarumi
6797e59417 reduce match_field into delete_comments 2018-12-16 18:41:20 -05:00