7f3dfc4241
The user-visible part of this change is that command line output now uses the same [ERROR/INFO] prefixes like the rest of SyncEvolution, instead of "Error:". Several messages were split into [ERROR] and [INFO] parts on seperate lines. Multi-line messages with such a prefix now have the prefix at the start of each line. Full sentences start with captital letters. All usage errors related to the synopsis of the command line now include the synopsis, without the detailed documentation of all options. Some of those errors dumped the full documentation, which was way too much information and pushed the actual synopsis off the screen. Some other errors did not include usage information at all. All output still goes to stdout, stderr is not used at all. Should be changed in a seperate patch, because currently error messages during operations like "--export -" get mixed with the result of the operation. Technically the output handling was simplified. All output is printed via the logging system, instead of using a mixture of logging and streaming into std::cout. The advantage is that it will be easier to redirect all regular output inside the syncevo-dbus-helper to the parent. In particular, the following code could be removed: - the somewhat hacky std::streambuf->logging bridge code (CmdlineStreamBuf) - SyncContext set/getOutput() - ostream constructor parameters for Cmdline and derived classes The new code uses SE_LOG_SHOW() to produce output without prefix. Each call ends at the next line, regardless whether the string ends in a newline or not. The LoggerStdout was adapted to behave according to that expectation, and it inserts the line prefix at the start of each line - probably didn't matter before, because hardly any (no?!) message had line breaks. Because of this implicit newline in the logging code, some newlines become redundant; SE_LOG_SHOW("") is used to insert an empty line where needed. Calls to the logging system are minimized if possible by assembling output in buffers first, to reduce overhead and to adhere to the "one call per message" guideline. Testing was adapted accordingly. It's a bit stricter now, too, because it checks the entire error output instead of just the last line. The previous use of Cmdline ostreams to capture output from the class was replaced with loggers which hook into the logging system while the test runs and store the output. Same with SyncContext testing. Conflicts: src/dbus/server/cmdline-wrapper.h |
||
---|---|---|
.. | ||
glib | ||
interfaces | ||
qt | ||
server | ||
dbus.am |