Commit Graph

317 Commits

Author SHA1 Message Date
03b367ee98
Don't print same file path twice in error message.
zip::exception always has  the filename in the message.
2021-05-29 17:37:41 +02:00
00e3edb9f2
Only search files in spine, in the right order.
The spine lists all content documents in their linear reading order. So we're
finally getting our results in the right order! 🎉

Since we skip the images and fonts, which usually make up the most bytes in an
EPUB file, the performance increase is immense. I measured 60-70% in a very
short test.

Closes: #1
2021-05-29 17:34:43 +02:00
c94d9de0db
Reformat error messages.
One line per error message.
2021-05-29 12:53:14 +02:00
26678812c9
Typo in man page. 2021-05-28 22:59:54 +02:00
4ff796a590
Make regular expressions static variables.
All checks were successful
continuous-integration/drone/push Build is passing
Fewer allocations → faster program. About 17% speed increase with 89 books on up
to 3 cores. Measured using the average of 4 runs.
Before: ~15,5 seconds
 After: ~12,8 seconds

Calls to allocation functions went down from 16.652.583 to 5.059.301.
2021-05-28 19:11:32 +02:00
4df7b36dfc
Print matches while still searching.
All checks were successful
continuous-integration/drone/push Build is passing
Previously we printed the matches at the end.
2021-05-28 17:18:34 +02:00
59759b5934
Put output stuff into own function in different file.
It got a little crowded in main(). 😊
2021-05-28 17:07:11 +02:00
65de7f7efb
Version bump 0.3.2.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-28 15:17:36 +02:00
719018a0f6
CI: Verify CMake download with checksum, don't verify TLS cert.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-28 15:16:44 +02:00
762d4b94cb
Update german translation.
Some checks failed
continuous-integration/drone/push Build is failing
2021-05-28 14:00:17 +02:00
308e2d271f
Skip rest of file if encoding of files in EPUB is broken.
Standard says UTF-8. I don't want to deal with weird Windows-encodings or
whatever this is.

Closes: #7
2021-05-28 13:57:51 +02:00
65b46ca846
Do not allow more threads than max_threads. 2021-05-28 11:48:38 +02:00
b3f392e110
Update screenshot.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-28 10:37:49 +02:00
d9025d3c60
Update Debian & Ubuntu installation.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-28 09:50:18 +02:00
af30fae319
CI: Upload focal image.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-27 23:07:08 +02:00
e4b2e8ad98
CI: Fix GCC version in bionic. 2021-05-27 22:53:26 +02:00
74d1713078
Fix CI recipe for focal packages. 2021-05-27 22:38:51 +02:00
f65d927680
CI: Download CMake in Packaging-pipeline. 2021-05-27 22:28:16 +02:00
3f58b27709
Fix config file example in man page. 2021-05-27 22:21:25 +02:00
dc4b233c3e
Fix typos in manpage.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-27 21:55:51 +02:00
40874c2d36
Update german translation. 2021-05-27 21:51:02 +02:00
8fde3b7bd4
Version bump 0.3.1. 2021-05-27 21:50:51 +02:00
c3131e01f0
Add setting to suppress this-is-not-an-EPUB errors. 2021-05-27 21:48:35 +02:00
84f600196c
Add error code to zip::exception. 2021-05-27 21:39:01 +02:00
b96315f8bb
Don't add extra newlines before errors. 2021-05-27 21:03:42 +02:00
2b91a839cc
Add --raw and --context again.
Forgot to re-implement them when I overhauled the option parsing…
2021-05-27 21:01:07 +02:00
8d5565a72c
Don't write to matches_all simultaneously from different threads.
What did I do yesterday?!? 😬

Closes: #6
2021-05-27 20:42:20 +02:00
38bf9be948
Fix some more memory leaks. 2021-05-27 20:11:59 +02:00
b24ea9b71e
Fix memory leak. 🤦
All checks were successful
continuous-integration/drone/push Build is passing
That's why I don't write C. 😄

This seems to fix issue #6 in single-threaded mode but sometimes throws “double
free or corruption (out)” in multi-threaded mode.

Bug: #6
2021-05-27 20:05:02 +02:00
ef8fdced51
Update german translation. 2021-05-27 19:09:43 +02:00
fbb87cac81
Remove a few unnecessary .data(), remove unnecessary include. 2021-05-27 19:08:53 +02:00
919da2ddb6
CI: Switch to GCC-8 in Ubuntu bionic.
All checks were successful
continuous-integration/drone/push Build is passing
With GCC-7:
  std::experimental::filesystem::v1::__cxx11::directory_entry’ has no member
  named ‘is_directory’
2021-05-27 18:08:57 +02:00
c0cab0005f
Version bump 0.3.0. 2021-05-27 17:24:43 +02:00
c50659a339
Chunk error string to make it better translatable. 2021-05-27 17:24:19 +02:00
e64591f204
Rework option parsing, change --no-filename.
Some checks failed
continuous-integration/drone/push Build is failing
Options are now better accessible, --no-filename accepts the values filesystem,
in-epub or all.
2021-05-27 17:20:00 +02:00
c376ce8466
Print the EPUB file name if more than 1 input file.
Change --no-filename to mean: Don't print the EPUB file name.
2021-05-27 14:46:23 +02:00
0c45e7ac98
Add --recursive and --dereference-recursive.
Closes: #5
2021-05-27 14:45:52 +02:00
b764f5423c
Put input files into a std::vector<filesystem::path>.
We need that for supporting recursive directory search later.

#
# Previous commits:
#   29ae22c Make regex const.
#   8ed72af Update german translation.
#   a3b0964 Remove old comment.
#   d107ce5 Modify config file example.
2021-05-27 13:46:47 +02:00
29ae22cc4a
Make regex const. 2021-05-27 09:46:59 +02:00
8ed72af8e9
Update german translation. 2021-05-26 20:21:02 +02:00
a3b0964873
Remove old comment. 2021-05-26 20:20:21 +02:00
d107ce5c31
Modify config file example.
It's not a good idea to specify “perl-regexp” in the config file, because it can
not be overriden yet. 😊
2021-05-26 20:19:09 +02:00
7dcf6d599c
Remove debug statements. 2021-05-26 18:25:53 +02:00
fe02b155f5
Import std::string into epubgrep::search namespace.
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-26 18:02:27 +02:00
fc0aa02bc9
Use threads if more than one input file is searched.
Use 75% of the available threads (rounded up).

Closes: #4
2021-05-26 17:50:52 +02:00
554caebcef
Make GETTEXT_CREATE_TRANSLATIONS-hack silent. 2021-05-26 11:05:29 +02:00
10396f0d81
CMake: Prefer Config, make Termcolor-message more visible.
All checks were successful
continuous-integration/drone/push Build is passing
Starting with Boost 1.70, it provides an official CMake Package Config. Prefer
that if it is available. Gets rid of the “New Boost version may have incorrect
or missing dependencies and imported targets” warnings.
2021-05-26 10:48:11 +02:00
6a612caa14
Don't generate checksums. We do that in the CI. 2021-05-26 10:38:13 +02:00
f20f95ff21
Set up drone CI for Debian / Ubuntu package uploading. 2021-05-26 10:37:13 +02:00
8114d1a200
Set up recipe for Debian package generation. 2021-05-26 10:23:18 +02:00