]>
mj.ucw.cz Git - libucw.git/log
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 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.
Pavel Charvat [Tue, 14 Jan 2014 12:19:58 +0000 (13:19 +0100)]
PCRE regex: Fixed a harmless compilation warning.
Tomas Valla [Tue, 14 Jan 2014 11:33:05 +0000 (12:33 +0100)]
varints: Fixed format strings.
Martin Mares [Tue, 14 Jan 2014 11:13:37 +0000 (12:13 +0100)]
Opt: ABI cleanup
Martin Mares [Tue, 14 Jan 2014 11:11:58 +0000 (12:11 +0100)]
Merge branch 'master' into dev-opt
Conflicts:
ucw/Makefile
Pavel Charvat [Tue, 14 Jan 2014 08:00:05 +0000 (09:00 +0100)]
LibUCW: Fixed a stupid typo in the UCW_DIE_BY_ABORT switch.
Pavel Charvat [Tue, 14 Jan 2014 07:58:15 +0000 (08:58 +0100)]
LibUCW: Implemented UCW_DIE_BY_ABORT environment switch.
Pavel Charvat [Tue, 14 Jan 2014 07:48:14 +0000 (08:48 +0100)]
Packages: install-ucw-sorter-api make target moved into install-libucw-api.
Pavel Charvat [Tue, 7 Jan 2014 15:47:06 +0000 (16:47 +0100)]
Packages: Do not forget to install sorter's API.
Pavel Charvat [Tue, 7 Jan 2014 15:19:51 +0000 (16:19 +0100)]
Packages: Removed customization of SONAME_SUFFIX to simplify Makefiles.
Pavel Charvat [Tue, 7 Jan 2014 15:14:01 +0000 (16:14 +0100)]
Packages: Fixes in custom versioning.
Pavel Charvat [Tue, 7 Jan 2014 15:00:36 +0000 (16:00 +0100)]
Packages: Created debian/tag-release script to easily tag new versions.
Pavel Charvat [Tue, 7 Jan 2014 14:52:15 +0000 (15:52 +0100)]
Packages: Unit tests must be run sequentially (make -j1 tests).
Pavel Charvat [Tue, 7 Jan 2014 13:46:08 +0000 (14:46 +0100)]
Packages: Fixed a typo in Makefile causing unnecessary dependencies.
Pavel Charvat [Tue, 7 Jan 2014 13:41:09 +0000 (14:41 +0100)]
Packages: Added missing dependencies.
Pavel Charvat [Tue, 7 Jan 2014 13:35:04 +0000 (14:35 +0100)]
Packages: Fixed static linking.
Pavel Charvat [Tue, 7 Jan 2014 13:30:53 +0000 (14:30 +0100)]
Packages: pkg-config dependencies moved to Requires.private.
Pavel Charvat [Tue, 7 Jan 2014 13:00:26 +0000 (14:00 +0100)]
Packages: Dependencies on external dynamic libraries are now in pkg-config's Libs.private.
Pavel Charvat [Tue, 7 Jan 2014 12:02:26 +0000 (13:02 +0100)]
Packages: We need to include SONAME symbolic links to shared libraries in packages.
Pavel Charvat [Tue, 7 Jan 2014 09:15:13 +0000 (10:15 +0100)]
Packages: Do not install picstatic version of libs.
But they are still not removed completely from Makefiles and pkgconfig.
Pavel Charvat [Tue, 7 Jan 2014 09:11:17 +0000 (10:11 +0100)]
Merge branch 'dev-api' into dev-package
Conflicts:
default.cfg
Martin Mares [Fri, 3 Jan 2014 15:53:01 +0000 (16:53 +0100)]
Debug: check-configs tries static linking, too
Martin Mares [Fri, 3 Jan 2014 15:52:42 +0000 (16:52 +0100)]
ABI: Fix string.h
Martin Mares [Fri, 3 Jan 2014 15:36:39 +0000 (16:36 +0100)]
ABI: Symbol renames for libimages
Martin Mares [Fri, 3 Jan 2014 15:36:30 +0000 (16:36 +0100)]
Images: Added missing include
Martin Mares [Fri, 3 Jan 2014 15:36:05 +0000 (16:36 +0100)]
Images: Clean up old-style function declarations
Martin Mares [Fri, 3 Jan 2014 15:08:21 +0000 (16:08 +0100)]
Tools: It's 2014 now :)
Martin Mares [Fri, 3 Jan 2014 15:05:58 +0000 (16:05 +0100)]
ABI: Manual tweaks for ff-binary.h
Function names are generated by macros, thus hidden to tools/map-symbols.
Martin Mares [Fri, 3 Jan 2014 15:05:39 +0000 (16:05 +0100)]
ABI: rename-symbols does not touch timestamps of unmodified files
Martin Mares [Fri, 3 Jan 2014 14:59:07 +0000 (15:59 +0100)]
ABI: Tables used by ucw/chartype.h are prefixed
Pavel Charvat [Fri, 3 Jan 2014 13:47:30 +0000 (14:47 +0100)]
Packages: Added a custom string to names of compiled libraries.
Pavel Charvat [Fri, 3 Jan 2014 13:05:12 +0000 (14:05 +0100)]
Packages: Split each UCW library to its own set of packages.
Martin Mares [Fri, 3 Jan 2014 13:01:23 +0000 (14:01 +0100)]
ABI: Manual tweaks for strtonum.h
Function names are generated by macros, thus hidden to tools/map-symbols.
Martin Mares [Fri, 3 Jan 2014 12:59:39 +0000 (13:59 +0100)]
ABI: ucwlib_ prefix is also safe
Martin Mares [Fri, 3 Jan 2014 12:57:27 +0000 (13:57 +0100)]
ABI: Rename internal tables of libcharset
Martin Mares [Fri, 3 Jan 2014 12:55:12 +0000 (13:55 +0100)]
ABI: Avoid macro re-definition
Martin Mares [Fri, 3 Jan 2014 12:54:31 +0000 (13:54 +0100)]
ABI: Symbol renames for libucw and libcharset
All of these have been generated by tools/rename-symbols. Some manual
tweaking will be needed.
Martin Mares [Fri, 3 Jan 2014 12:52:54 +0000 (13:52 +0100)]
Config: By default, debug configuration build shared libraries
Martin Mares [Fri, 3 Jan 2014 12:52:29 +0000 (13:52 +0100)]
Config: Added CONFIG_UCW_CLEAN_ABI
Martin Mares [Fri, 3 Jan 2014 12:50:23 +0000 (13:50 +0100)]
Added a list of exported symbols, which are subject to renaming
Martin Mares [Fri, 3 Jan 2014 12:49:49 +0000 (13:49 +0100)]
Tools: Added tools for symbol renaming and checking
Pavel Charvat [Fri, 3 Jan 2014 12:38:32 +0000 (13:38 +0100)]
Packages: Install also obsolete ucw-daemon-helper for now.
Martin Mares [Fri, 3 Jan 2014 11:42:31 +0000 (12:42 +0100)]
Clean up old-style function declarations split to multiple lines
Pavel Charvat [Tue, 10 Dec 2013 13:20:56 +0000 (14:20 +0100)]
LibUCW: Added fb-socket.h header to public API.
Pavel Charvat [Tue, 10 Dec 2013 12:40:10 +0000 (13:40 +0100)]
Packages: Simplified definition of install targets.
Pavel Charvat [Sat, 7 Dec 2013 11:22:14 +0000 (12:22 +0100)]
Packages: Improved installation of example configs.
Pavel Charvat [Sat, 7 Dec 2013 11:13:23 +0000 (12:13 +0100)]
Packages: Added some docs/examples.
Pavel Charvat [Sat, 7 Dec 2013 10:06:12 +0000 (11:06 +0100)]
Packages: Several fixes in debian packages and their versioning.
Pavel Charvat [Fri, 6 Dec 2013 22:32:14 +0000 (23:32 +0100)]
LibUCW: Added `ucw-' prefix to utils.
Pavel Charvat [Fri, 6 Dec 2013 22:11:57 +0000 (23:11 +0100)]
Libucw-images: Added `ucw-' prefix to utils.
Pavel Charvat [Fri, 6 Dec 2013 21:47:22 +0000 (22:47 +0100)]
Packages: Several fixes in debian packages.
Pavel Charvat [Fri, 6 Dec 2013 19:49:07 +0000 (20:49 +0100)]
Packages: First experiments with Debian packages.
Pavel Charvat [Fri, 6 Dec 2013 14:34:22 +0000 (15:34 +0100)]
Renamed shxml/* to xml/*.
Pavel Charvat [Fri, 6 Dec 2013 14:26:52 +0000 (15:26 +0100)]
Split install-lib* rules to runtime and dev parts.
Pavel Charvat [Fri, 6 Dec 2013 12:18:26 +0000 (13:18 +0100)]
Added libucw-* prefix to some forgotten places.
Pavel Charvat [Fri, 6 Dec 2013 12:02:07 +0000 (13:02 +0100)]
Added libucw-* prefix to all libraries (libcharset -> libucw-charset, etc.)
Pavel Charvat [Thu, 28 Nov 2013 12:09:47 +0000 (13:09 +0100)]
LibUCW: xrealloc(ptr, 0) should return NULL and not die.
Tomas Valla [Tue, 5 Nov 2013 18:40:26 +0000 (19:40 +0100)]
binomial heaps: Added missing node order initialization.
Pavel Charvat [Thu, 24 Oct 2013 13:47:49 +0000 (15:47 +0200)]
LibUCW: Fixed broken DARY_ALLOC() on 64bit architectures.
Martin Mares [Fri, 18 Oct 2013 15:25:38 +0000 (17:25 +0200)]
Fastbuf: Fix possible memory leak in new bprintf()
Martin Mares [Fri, 18 Oct 2013 14:39:55 +0000 (16:39 +0200)]
Fixed note about res_alloc() with no resource pool active
Martin Mares [Thu, 17 Oct 2013 14:10:33 +0000 (16:10 +0200)]
Added DBG_SPOT macro
Martin Mares [Thu, 17 Oct 2013 14:00:16 +0000 (16:00 +0200)]
Fastbuf: Rewritten bprintf()
The new version prints directly to the stream buffer, avoiding
unnecessary copies in the common case. Also, only small buffers
are allocated on the stack.
Martin Mares [Thu, 17 Oct 2013 13:50:12 +0000 (15:50 +0200)]
Tester: Compare stderr if requested
Martin Mares [Thu, 17 Oct 2013 13:48:01 +0000 (15:48 +0200)]
Tests: Enable tests of bitops
... with the exception of bit-count-t, which does not exist any longer.
Martin Mares [Thu, 17 Oct 2013 13:47:47 +0000 (15:47 +0200)]
Tester: Support here-documents
Martin Mares [Tue, 15 Oct 2013 12:41:10 +0000 (14:41 +0200)]
UCW::CGI: Escaping functions silently convert undef to undef
Tomas Valla [Fri, 6 Sep 2013 10:41:33 +0000 (12:41 +0200)]
option parser: Empty stub of the documentation
Tomas Valla [Fri, 6 Sep 2013 10:11:27 +0000 (12:11 +0200)]
Merge branch 'master' into dev-opt
Martin Mares [Tue, 3 Sep 2013 14:18:41 +0000 (16:18 +0200)]
Opt: Removed my bogus comment
Martin Mares [Tue, 3 Sep 2013 14:14:33 +0000 (16:14 +0200)]
Opt: Introduced contexts
`struct opt_precomputed' was turning to a option parser context,
so let's admit it. Renamed to `opt_context' and make it passed
as the first argument.
The name of `struct opt_precomputed_option' was a way too unwieldy,
so I renamed it to `struct opt_precomputed'.
Also got rid of several globals variables, but others remain.