]>
mj.ucw.cz Git - libucw.git/log
Martin Mares [Tue, 13 May 2014 10:14:49 +0000 (12:14 +0200)]
Mempools: mp_total_size() is O(1)
Pavel Charvat [Tue, 13 May 2014 07:45:33 +0000 (09:45 +0200)]
Merge branch 'master' of ssh://git.ucw.cz/projects/libucw/GIT/libucw
Pavel Charvat [Tue, 13 May 2014 07:44:38 +0000 (09:44 +0200)]
Null fastbuf: Implemented a new "/dev/null"-like fastbuf.
Martin Mares [Sat, 10 May 2014 21:50:46 +0000 (23:50 +0200)]
XML: "PUSH" in comments should be "PULL"
Pavel Charvat [Wed, 7 May 2014 08:28:18 +0000 (10:28 +0200)]
Packages: Implemented `debian/mk --extra-conf=...'.
Pavel Charvat [Wed, 7 May 2014 07:57:11 +0000 (09:57 +0200)]
Images: Fixed dependencies in `make tests'.
Pavel Charvat [Wed, 7 May 2014 07:50:21 +0000 (09:50 +0200)]
Images: Fixed compilation problems with enabled GraphicsMagick.
Pavel Charvat [Wed, 7 May 2014 07:36:38 +0000 (09:36 +0200)]
Images: Fixed linkage of libpthread.
Pavel Charvat [Wed, 7 May 2014 07:29:58 +0000 (09:29 +0200)]
Build: Fixed few compilation warnings/errors.
Pavel Charvat [Wed, 7 May 2014 07:19:43 +0000 (09:19 +0200)]
Memory pools: Add a reference from each chunk to its memory pool (in debug mode).
Pavel Charvat [Wed, 7 May 2014 07:05:12 +0000 (09:05 +0200)]
Build: Silenced several compilation warnings on some versions of gcc.
Tomas Valla [Mon, 28 Apr 2014 09:13:48 +0000 (11:13 +0200)]
asserts: Added ASSERT_MSG to print a debug msg together with assertion fail.
Martin Mares [Fri, 18 Apr 2014 10:44:53 +0000 (12:44 +0200)]
UCW::CGI: Let url_param_escape() encode non-ASCII characters
RFC 3986 (generic URI syntax) explicitly says this must be done
and some URI parsers choke on them.
Anyway, I am keeping bare url_escape() as is for the time being,
because it's used for production of user-friendly URLs, too. Needs
cleanup later.
Pavel Charvat [Fri, 4 Apr 2014 09:52:00 +0000 (11:52 +0200)]
Build: LibUCW should depend on -lm.
Martin Mares [Mon, 10 Mar 2014 22:00:32 +0000 (23:00 +0100)]
Daemon: Make user/group switching available separately
Martin Mares [Mon, 24 Feb 2014 11:55:04 +0000 (12:55 +0100)]
Opt: Fixed confused macros
Martin Mares [Mon, 17 Feb 2014 17:49:48 +0000 (18:49 +0100)]
Opt: "--help" can stand both before and after config options
The OPT_BEFORE_CONFIG flag was incorrectly interpreted as "this is
a config option", so "--help" after all options did not work as
expected.
Now, OPT_BEFORE_CONFIG means "the option can stand anywhere and the
config check logic should not touch it".
Martin Mares [Mon, 17 Feb 2014 17:41:33 +0000 (18:41 +0100)]
Opt: Improved parsing of negative boolean options
Boolean options with the OPT_NEGATIVE flag, which are named "no-X",
are also recognized as bare "X" with positive meaning.
Include tests for processing of both positive and negative bools.
Martin Mares [Mon, 17 Feb 2014 17:12:58 +0000 (18:12 +0100)]
Opt: OPT_NO_HELP is gone
Pavel Charvat [Mon, 17 Feb 2014 12:14:14 +0000 (13:14 +0100)]
Opt: Fixed a typo in OPT_UINT.
Pavel Charvat [Mon, 17 Feb 2014 12:07:03 +0000 (13:07 +0100)]
Opt: Implemented OPT_UINT.
Pavel Charvat [Mon, 17 Feb 2014 12:05:42 +0000 (13:05 +0100)]
Types: Defined `uint' as a replacement for `uns'.
Pavel Charvat [Wed, 12 Feb 2014 15:07:06 +0000 (16:07 +0100)]
Fastbufs: Fixed an off-by-one error in bprintf().
Pavel Charvat [Fri, 7 Feb 2014 11:27:50 +0000 (12:27 +0100)]
Packages: Small fix in `debian/mk --gen-script'.
Pavel Charvat [Fri, 7 Feb 2014 11:25:27 +0000 (12:25 +0100)]
Packages: Implemented `debian/mk --no-source'.
Pavel Charvat [Fri, 7 Feb 2014 08:54:31 +0000 (09:54 +0100)]
LibUCW: debian/mk can postprocess debian/control with a custom script.
Pavel Charvat [Thu, 6 Feb 2014 11:17:34 +0000 (12:17 +0100)]
Opt: Fixed a bug in positional arguments.
Martin Mares [Thu, 6 Feb 2014 09:52:26 +0000 (10:52 +0100)]
Opt: Avoid fixed constants, use OPT_POSITIONAL_TAIL
Pavel Charvat [Tue, 4 Feb 2014 12:32:49 +0000 (13:32 +0100)]
Packages: Removed the "-dev" suffix from UCW_ABI_SUFFIX.
Pavel Charvat [Tue, 4 Feb 2014 12:31:34 +0000 (13:31 +0100)]
Merge branch 'master' of ssh://jabberwock.ucw.cz/projects/libucw/GIT/libucw
Martin Mares [Tue, 4 Feb 2014 12:55:23 +0000 (13:55 +0100)]
Logging: Stream filters are permitted to modify log messages
Pavel Charvat [Tue, 4 Feb 2014 12:29:25 +0000 (13:29 +0100)]
Packages: The version number appended to names of libraries is detected from ucw/default.cfg instead of the tag.
Jan 'Moskyt' Matejka [Thu, 30 Jan 2014 23:50:54 +0000 (00:50 +0100)]
Doc: Moskyto has a homepage
Tomas Valla [Thu, 30 Jan 2014 22:28:54 +0000 (23:28 +0100)]
webpage: Updated for v6.0, author list and feature list.
Martin Mares [Tue, 28 Jan 2014 23:52:40 +0000 (00:52 +0100)]
Debian: Let git describe use unsigned tags, too
Martin Mares [Tue, 28 Jan 2014 23:52:12 +0000 (00:52 +0100)]
API: Include tbf.h and trie.h
Martin Mares [Tue, 28 Jan 2014 23:40:15 +0000 (00:40 +0100)]
Doc: Fixed function references
Martin Mares [Tue, 28 Jan 2014 23:11:37 +0000 (00:11 +0100)]
Release: Use "make install-libucw-docs" to generate documentation
Martin Mares [Tue, 28 Jan 2014 22:14:52 +0000 (23:14 +0100)]
Maint: Automatic uploads of documentation
Martin Mares [Tue, 28 Jan 2014 22:13:49 +0000 (23:13 +0100)]
Doc: Release dates
Martin Mares [Tue, 28 Jan 2014 21:56:32 +0000 (22:56 +0100)]
ABI: Updated symbol renames
Martin Mares [Tue, 28 Jan 2014 21:55:07 +0000 (22:55 +0100)]
Maint: Moved ABI tools to maint/
Martin Mares [Tue, 28 Jan 2014 21:48:47 +0000 (22:48 +0100)]
Doc: Updated the list of contributors
Martin Mares [Tue, 28 Jan 2014 21:39:20 +0000 (22:39 +0100)]
Doc: Documented growing arrays, generic allocators and related things
Martin Mares [Tue, 28 Jan 2014 20:50:04 +0000 (21:50 +0100)]
Introduced generic allocators
The concept of generic allocators, previously used locally in gary's,
turned out to be very promising and applicable to other data structures
in the future.
So I decided to decouple allocators from gary.[ch] and introduce them
to the society of libucw primitives.
<ucw/alloc.h> now provides allocators for malloc and zeroed malloc,
each mempool can also serve as an allocator (the current implementation
has an instance of struct ucw_allocator in each struct mempool, but
it is always accessed through an inline function, so it can be changed
if the overhead is deemed too heavy).
Growing arrays have been redefined in terms of generic allocators.
The realloc module has been merged to alloc.c to keep our malloc
wrappers together.
Martin Mares [Tue, 28 Jan 2014 20:18:48 +0000 (21:18 +0100)]
Conf: Dynamic arrays re-implemented as gary's
To the outside world, almost nothing changes as DARY_LEN is emulated.
However, static initializers are no longer possible, so DARY_ALLOC
is gone.
The current implementation is not elegant. It will be improved soon.
Martin Mares [Tue, 28 Jan 2014 17:28:57 +0000 (18:28 +0100)]
Opt: OPT_MULTIPLE with clists replaced by OPT_CL_MULTIPLE with gary's
Martin Mares [Tue, 28 Jan 2014 17:28:20 +0000 (18:28 +0100)]
Gary: Type-agnostic push
Martin Mares [Tue, 28 Jan 2014 17:00:25 +0000 (18:00 +0100)]
Opt: Document CT_USER with optional values
Martin Mares [Tue, 28 Jan 2014 16:45:31 +0000 (17:45 +0100)]
Opt: User-defined types are specified as CT_USER, not OPT_CL_USER
Martin Mares [Tue, 28 Jan 2014 16:31:28 +0000 (17:31 +0100)]
Gary: Added growing arrays over mempools
Martin Mares [Tue, 28 Jan 2014 16:03:53 +0000 (17:03 +0100)]
Threads: Renamed default_ucwlib_context to ucwlib_default_context
Martin Mares [Tue, 28 Jan 2014 16:03:12 +0000 (17:03 +0100)]
Gary: Symbol renames
Martin Mares [Tue, 28 Jan 2014 16:02:42 +0000 (17:02 +0100)]
API: Introduced exceptions for common mistakes of the symbol mapper
Martin Mares [Tue, 28 Jan 2014 15:51:26 +0000 (16:51 +0100)]
Gary: Gary now works over a general allocator
Zeroed gary's are no longer a special case.
Maybe the same system of allocators could be useful in other
parts of the library, too. Let me know if you have an idea.
Martin Mares [Tue, 28 Jan 2014 15:30:41 +0000 (16:30 +0100)]
Doc: Indentation
Martin Mares [Tue, 28 Jan 2014 15:27:54 +0000 (16:27 +0100)]
Gary: GARY_PUSH and GARY_POP have lost the 2nd argument
Having to tell "yessir, just one element" on each call was just too
inconvenient.
Martin Mares [Tue, 28 Jan 2014 15:13:01 +0000 (16:13 +0100)]
Gary: Remove unused gary_free()
Martin Mares [Mon, 27 Jan 2014 23:51:11 +0000 (00:51 +0100)]
Prepared for release of Libucw 6.0
Martin Mares [Mon, 27 Jan 2014 23:41:02 +0000 (00:41 +0100)]
Opt: Added missing reference
Martin Mares [Mon, 27 Jan 2014 23:39:44 +0000 (00:39 +0100)]
Opt: Forgot to describe help columns
Martin Mares [Mon, 27 Jan 2014 23:24:57 +0000 (00:24 +0100)]
Merge branch 'dev-opt'
Martin Mares [Mon, 27 Jan 2014 23:24:27 +0000 (00:24 +0100)]
Opt: Documented opt and its interaction with conf
Martin Mares [Mon, 27 Jan 2014 20:32:22 +0000 (21:32 +0100)]
Doc: Newer versions of AsciiDoc require [footer-text]
Martin Mares [Mon, 27 Jan 2014 20:03:50 +0000 (21:03 +0100)]
Opt: State of opt-conf moved to opt_context
It gives a better feeling to get rid of magical static variables
in functions :)
Martin Mares [Mon, 27 Jan 2014 19:59:02 +0000 (20:59 +0100)]
Opt: OPT_HELP_OPTION does not need passing pointer to current definitions
I have introduced a new flag OPT_INTERNAL / OPT_HOOK_INTERNAL, which
can be used by internal handlers and hooks to get the pointer to the
current opt_context.
Martin Mares [Mon, 27 Jan 2014 19:45:28 +0000 (20:45 +0100)]
Let <ucw/lib.h> include <stdbool.h> automatically
Martin Mares [Mon, 27 Jan 2014 19:29:04 +0000 (20:29 +0100)]
Opt: TODO cleared
Martin Mares [Mon, 27 Jan 2014 19:28:16 +0000 (20:28 +0100)]
Opt: opt_failure() is public, opt_usage() not so
Martin Mares [Mon, 27 Jan 2014 19:23:18 +0000 (20:23 +0100)]
Opt: Generalization of hooks
Hooks can specify a subset of events they wish to receive.
Helps to get rid of lots of special-casing.
In particular, the end of parsing is also an event, so that we
can load configuration if it has not been loaded yet. (This was
a bug in the original implementation, which never turned up,
because opt-test has mandatory arguments.)
Martin Mares [Mon, 27 Jan 2014 19:05:15 +0000 (20:05 +0100)]
Opt: Cleaned up opt-conf
First of all, the names of configuration options are no longer
fixed. Each of these options has its own handler and as long as
OPT_CONF_HOOK is used, the caller is free to define configuration
options with the names and help texts of his choice.
The same applies to --help.
To achieve these goals, the OPT_BEFORE_CONFIG flag has been
introduced.
Martin Mares [Mon, 27 Jan 2014 18:38:25 +0000 (19:38 +0100)]
Opt: Make OPT_LAST_ARG actually work and document interface of opt_parse()
Martin Mares [Mon, 27 Jan 2014 18:23:30 +0000 (19:23 +0100)]
Opt: Split to three separate modules
One handles parsing, one displaying of help, and one interfaces
with conf.
Martin Mares [Mon, 27 Jan 2014 17:42:01 +0000 (18:42 +0100)]
Opt: Rewritten formatting of help
Previous implementation of opt_help() had several drawbacks:
First, it formatted each section separately, so the columns
did not aligh. Second, it did produced incorrect output for
options which possess only the short form.
I hope that the new implementation is cleaner and easier to extend.
Martin Mares [Mon, 27 Jan 2014 16:18:02 +0000 (17:18 +0100)]
Opt: exit() does not return, no need to call va_end() afterwards
Martin Mares [Mon, 27 Jan 2014 16:13:46 +0000 (17:13 +0100)]
Opt: Simpified and corrected processing of OPT_SINGLE
OPT_SINGLE is now checked in opt_parse_value(). Previously, short,
long, and positional options had their own checks.
OPT_CL_SWITCH did not allow changing the value of the switch once
it is set, although documentation in opt.h claimed quite the opposite.
Changes are currently allowed unless OPT_SINGLE is set.
Test cases have been updated accordingly.
Martin Mares [Mon, 27 Jan 2014 16:03:19 +0000 (17:03 +0100)]
Opt: Fix bug introduced by my cleanups
Martin Mares [Mon, 27 Jan 2014 15:59:13 +0000 (16:59 +0100)]
Opt: Improved reporting of errors
Introduced opt_name() and THIS_OPT, which can be used in error
messages whenever you have a pointer to struct opt_precomputed ready.
Martin Mares [Mon, 27 Jan 2014 15:43:52 +0000 (16:43 +0100)]
Opt: Streamlined opt_parse_value()
Martin Mares [Mon, 27 Jan 2014 15:14:56 +0000 (16:14 +0100)]
Opt: Streamlined parsing of long options
Also, in error messages, we call them options, not arguments.
Martin Mares [Mon, 27 Jan 2014 14:57:32 +0000 (15:57 +0100)]
Opt: Accept arguments for short options even in bundles
Traditional getopt() seems to support this, so we should, too.
Martin Mares [Mon, 27 Jan 2014 14:55:20 +0000 (15:55 +0100)]
Opt: Updated test case
Printing non-ASCII characters for positional arguments is a little
bit crazy, I will hopefully clean it up later.
Martin Mares [Mon, 27 Jan 2014 14:51:47 +0000 (15:51 +0100)]
Opt: Streamlined opt_shortopt()
Also, we reject non-ASCII short options, which enabled us to lower
OPT_POSITIONAL_TAIL to 128 and thus save memory.
Martin Mares [Mon, 27 Jan 2014 14:37:07 +0000 (15:37 +0100)]
Opt: Start of positional arguments is not hard-wired
Martin Mares [Mon, 27 Jan 2014 14:31:03 +0000 (15:31 +0100)]
Opt: Checking of required arguments simplified
Martin Mares [Mon, 27 Jan 2014 14:23:01 +0000 (15:23 +0100)]
Opt: Cosmetics
Martin Mares [Mon, 27 Jan 2014 14:18:47 +0000 (15:18 +0100)]
Opt: Streamlined setting of default options
OPT_ADD_DEFAULT_FLAGS has been replaced by a function,
OPT_ITEM_FLAGS is gone.
Martin Mares [Mon, 27 Jan 2014 14:09:18 +0000 (15:09 +0100)]
Opt: Updated symbol renames
Martin Mares [Mon, 27 Jan 2014 14:04:07 +0000 (15:04 +0100)]
Opt: Simplified preprocessing of options
Replaced OPT_TRAVERSE_SECTIONS by proper recursion.
oc->opts now contains struct opt_precomputed's directly instead
of pointers to them, so that we need not allocate each struct
separately (and leak memory).
Counting of each OPT_CL_BOOL option twice has been removed, I hope
it is not necessary any longer as the "no-" prefix does not need
its own entry.
Martin Mares [Mon, 27 Jan 2014 13:42:58 +0000 (14:42 +0100)]
Opt: Fixed a test case
Pavel Charvat [Wed, 15 Jan 2014 16:08:12 +0000 (17:08 +0100)]
Build: Make sure that we link against the locally compiled dynamic libraries.
Pavel Charvat [Wed, 15 Jan 2014 12:33:15 +0000 (13:33 +0100)]
Merge branch 'master' into dev-opt
Pavel Charvat [Wed, 15 Jan 2014 12:32:05 +0000 (13:32 +0100)]
Packages: Install subset of UCW utilities to /usr/sbin instead of /usr/bin.
Martin Mares [Wed, 15 Jan 2014 11:49:26 +0000 (12:49 +0100)]
Trie: Improved Tom's warning about hell
Pavel Charvat [Tue, 14 Jan 2014 21:15:21 +0000 (22:15 +0100)]
Opt: Merged fixes from Gigamail.
Pavel Charvat [Tue, 14 Jan 2014 19:51:05 +0000 (20:51 +0100)]
Merge branch 'master' into dev-opt
Conflicts:
ucw/ff-varint.c
ucw/varint.c
Pavel Charvat [Tue, 14 Jan 2014 19:48:31 +0000 (20:48 +0100)]
Docs: Checked for problems with common var-len-arrays and alloca() (written by Tom).
Pavel Charvat [Tue, 14 Jan 2014 17:33:41 +0000 (18:33 +0100)]
LibUCW: Fixed a bug in fb-atomic.
Pavel Charvat [Tue, 14 Jan 2014 16:08:32 +0000 (17:08 +0100)]
LibUCW: Added missing includes in <ucw/io.h>
Pavel Charvat [Tue, 14 Jan 2014 16:06:42 +0000 (17:06 +0100)]
Packages: Fixed installation of obsolete ucw-daemon-helper.