Dirk-Jan C. Binnema
d0e357c150
utils: Improve option/result types
...
And add the beginnings of unit tests.
2020-11-28 10:46:38 +02:00
Dirk-Jan C. Binnema
4b6d9a0ce8
utils: add RAII stopwatch
...
For benchmarking
2020-11-28 10:46:38 +02:00
Dirk-Jan C. Binnema
c8b507f826
mu: remove obsolete MU_FEATURE_CRYPTO
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
702a1d8452
utils: add Result / Option types
...
Add some Rust-style Result/Option types, based on TartanLlama's
expected, optional classes.
There's std::optional of course, but we can't depend on C++17 yet.
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
c7a874b8d6
lib: convert threader/container to c++
...
Did change the code much, but it's now compiled as c++
2020-11-07 11:43:11 +02:00
Dirk-Jan C. Binnema
69b157a346
lib: improve error handling, cleanups
2020-10-31 09:46:13 +02:00
Dirk-Jan C. Binnema
d2aa1f91b0
mu: support json output directly
...
Allow for dumping json directly from the Sexp structures, so we don't
need any external libs (i.e. json-glib) anymore.
2020-10-26 18:39:56 +02:00
Juan Jose Garcia-Ripoll
c885df06a1
Use g_stat() instead of stat() with GStatBuf
2020-10-02 09:51:33 +02:00
Dirk-Jan C. Binnema
a4d6302dab
mu-sexp: use std::vector instead of std::deque
...
Using deque gives compilation errors when compiling on
MacOS/clang (where it defaults to libc++ rather than gcc's libstdc++)
```
#include <deque>
struct Foo { std::deque<Foo> foos; };
int main() { Foo foo; }
```
So, let's use a vector instead; this is a drop-in replacement here, but
unfortunately in some future code...
2020-08-15 10:39:14 +03:00
Dirk-Jan C. Binnema
3691e28316
build: attempt to avoid some libc++ problems
...
Seems there are problems compiling mu with XCode 11.6 (see build tests);
apparently because of libc++ being different from libstdc++.
clang++ builds works fine as long as we're using libstdc++.
2020-07-26 11:56:25 +03:00
Jonas Bernoulli
b711ad9151
Fix typos
2020-07-25 16:46:47 +02:00
Dirk-Jan C. Binnema
148c906d8a
fix compilation error / clang warnings
2020-07-25 11:26:08 +03:00
Dirk-Jan C. Binnema
2588aaeb9e
Merge pull request #1759 from damon-kwok/fixed-missing-includes
...
[MSYS2] Added missing include files
2020-07-13 21:50:15 +03:00
Dirk-Jan C. Binnema
31dd4e2104
utils/sexp: Clean up API and implementation
...
Also update the tests and command-parser.
2020-07-13 21:43:59 +03:00
damon-kwok
689fd60181
Added missing include files
2020-07-13 15:02:18 +08:00
Todd Carson
73603c97e2
Don't declare mu_str_size_s() with the const attribute.
...
When this function is declared const or pure, clang at -O1 or higher optimizes
away the call to mu_str_size_s() inside mu_str_size(), so that it ignores its
argument and returns whatever is in mu_str_size_s()'s static buffer.
Found when test-mu-str failed while testing an update of mu in OpenBSD's ports tree.
2020-07-01 00:16:19 +09:00
Dirk-Jan C. Binnema
f416ad4249
utils: Add async-queue
...
Like GAsyncQueue, but for c++
2020-06-27 17:07:00 +03:00
Dirk-Jan C. Binnema
1b056f4c51
utils: Add Mu::canonicalize_filename
...
We need it for unit-tests
2020-06-27 17:07:00 +03:00
Dirk-Jan C. Binnema
6061898c2b
utils: Clean up duration helpers
2020-06-27 17:07:00 +03:00
Dirk-Jan C. Binnema
73f4c49364
utils: add async-queue, ansio-printer
...
Add an async-queue (rougly, GAsyncQueue but in c++ using a deque)
Add an ANSI color printer.
2020-06-26 19:21:04 +03:00
Dirk-Jan C. Binnema
9762b1bc3b
utils/command-parser: Make property key ":" prefix explicit
...
Avoid a bit of 'magic' so we can catch missing ':' in property :keys
easier.
2020-06-13 16:56:41 +03:00
Dirk-Jan C. Binnema
a9fab4abcc
mu: convert command-line tools to c++
2020-06-13 16:56:41 +03:00
Dirk-Jan C. Binnema
2f8850ea86
utils/sexp: add a bit more convenience
2020-06-09 19:52:03 +03:00
Dirk-Jan C. Binnema
b10b243b54
lib/utils: update unit test
2020-06-07 18:11:41 +03:00
Dirk-Jan C. Binnema
3afdc08d50
lib/utils: build s-expression programmatically building
...
Allow for programmatically buildings sexps, rather that using raw
strings.
2020-06-06 14:27:25 +03:00
Dirk-Jan C. Binnema
4dd764d9e8
lib/utils: add mu-logger.{cc,hh}
...
They were missing.
Fixes #1713 .
2020-05-30 18:33:27 +03:00
Dirk-Jan C. Binnema
3e233cba9a
rework logging system
...
reimplement the old mu-log.[ch] into mu-logging.{cc,hh}
If available (and using an appropriately equipped glib), log to the
systemd journal
Only g_criticals have stderr output, all the other g_* go to the log
file / journal.
2020-05-30 13:29:44 +03:00
Dirk-Jan C. Binnema
0a49cead33
build: don't require glib 2.58 for g_canonicalize_file
...
GLib version is probably still a bit too new, so simply lift the
function needed.
Fixes : #1712 .
2020-05-28 00:37:29 +03:00
Dirk-Jan C. Binnema
fdac81e023
lib: follow symlinks in maildirs
...
Until now, mu would _not_ follow symlinks; with these changes, we do.
There were some complications with that ~10 years ago, but I forgot the
details. So let's re-enable. At least one thing is in place now: moving
between file systems.
Fixes #1489
Fixes #1628 (technically, this came with slightly earlier commit)
2020-05-26 19:22:41 +03:00
Dirk-Jan C. Binnema
015fae7b1a
guile: fix readline linking
...
For now, simply link muguile against readline; hopefully, we can make
this transitive.
2020-05-26 00:41:46 +03:00
Dirk-Jan C. Binnema
b60cfc7df2
mu-server: restore readline-support
...
Restore readline support for `mu server' (but _only_ when readline is
found and when in tty mode)
2020-05-25 18:34:42 +03:00
Jonas Bernoulli
564d892701
Fix typos
2020-05-12 23:56:55 +02:00
Dirk-Jan C. Binnema
a4fded5edd
mu: ensure some struct members are initialized
2020-03-31 21:19:03 +03:00
Dirk-Jan C. Binnema
ac164b7e26
mu-command-parser: do not allow unknown parameters
...
We were simply ignoring unknown parameters; but it's better to raise an
error, as it's likely unintented (typo or otherwise)
2020-02-22 14:11:54 +02:00
Dirk-Jan C. Binnema
24932c12b7
remove some dead code
2020-02-10 01:00:01 +02:00
Dirk-Jan C. Binnema
aa10da0a63
store: rework to allow for 'init'
...
Rework the error handling / exception for read-only / writable and new
database.
2020-02-08 14:28:55 +02:00
Dirk-Jan C. Binnema
2575b2d0e3
mu: better error handling for opening database read-only
...
Be a bit clearer for the user.
2020-02-04 21:14:30 +02:00
Dirk-Jan C. Binnema
38779cfade
mu: no need to pass 'maildir' when we can deduce it
...
Only needed when setting up the database.
2020-02-04 01:05:35 +02:00
Dirk-Jan C. Binnema
1ea6f6a55e
lib/utils: Add Message error.
2020-01-31 00:23:00 +02:00
Dirk-Jan C. Binnema
ba370f748c
mu: sexp-parser: add support for negative numbers
...
We need those too!
2020-01-25 19:54:37 +02:00
Dirk-Jan C. Binnema
f21ceea421
sexp-parser: improve error message
2020-01-25 19:31:20 +02:00
Dirk-Jan C. Binnema
7d83a1c5d6
server: improve command documentation output
...
required args come first, then alphabetic.
2020-01-25 11:51:38 +02:00
Dirk-Jan C. Binnema
e119ac919b
mu: fix clang compilation
2020-01-24 00:21:53 +02:00
Dirk-Jan C. Binnema
4b4e8dd6d7
utils/sexp-parser: include ostream
2020-01-23 23:17:00 +02:00
Dirk-Jan C. Binnema
d2ec85f01c
mu4e: use the new command-parser
...
Update mu4e-proc to use the new mu4e <-> mu protocol
2020-01-22 11:42:15 +02:00
Dirk-Jan C. Binnema
c7680b78b9
utils: Implement sexp command parser
...
Implement a sexp parser, and on top of that a command parser (for mu4e
commands). Add tests, too.
2020-01-21 20:58:18 +02:00
Dirk-Jan C. Binnema
a3d71dab91
utils: Update error exception, utils.
2020-01-18 13:40:15 +02:00
Dirk-Jan C. Binnema
b2014fe93e
use g_snprintf instead of snprintf
...
Seems the latter cannot be found on some platforms; perhaps a
c++/namespace thing?
Use g_snprintf instead.
2020-01-07 23:17:15 +02:00
Dirk-Jan C. Binnema
f4874cd7e1
lib/utils: Update
2020-01-05 17:46:21 +02:00
Dirk-Jan C. Binnema
12b34be3cf
mu: allow for code-coverage reports
2020-01-01 15:56:48 +02:00