Dirk-Jan C. Binnema
16a2cffc11
utils: use _GNU_SOURCE for S_ISLINK on freebsd
...
Unbreak FreeBSD build.
Fixes : #2079 .
2021-08-08 15:15:51 +03:00
Dirk-Jan C. Binnema
c8a2151cb9
mu: use g_strerror instead of strerror
...
Some #includes were missing for the latter (but only noticeable on some
systems - e.g., build breaks on Cygwin).
So let's replace with something that works equally everywhere.
Fixes : #2060
2021-07-29 00:02:30 +03:00
Dirk-Jan C. Binnema
b8f8ffa967
mu-sexp: make lists printable
...
And some typo fixes
2021-05-02 23:30:32 +03:00
Derek Zhou
dc6f76d74d
seperate Mu::format and Mu::vformat
2021-04-22 18:32:38 +00:00
Dirk-Jan C. Binnema
15aca5e396
utils: cleanup whitespace
2021-03-16 17:07:39 +02:00
Dirk-Jan C. Binnema
725826231f
utils: Add remove_ctrl
...
Add a helper function to remove control characters / multi-spaces, and a
test.
2021-03-16 16:51:01 +02:00
Dirk-Jan C. Binnema
7a70942e67
build: experimental support for the meson build system
2021-02-12 00:49:35 +02:00
Dirk-Jan C. Binnema
98744c66f7
remove some dead code
2021-01-22 23:24:53 +02:00
Dirk-Jan C. Binnema
e282d80bc0
lib: Update for new querying machinery
...
Port to c++ and use new APIs.
2021-01-22 22:51:33 +02:00
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