| 0.2.1 XXXX-XX-XX |
| |
| * The licence for libnih has been changed to MIT/X11. |
| |
| * The --enable-compiler-warnings configure option has been |
| extended to add -Wextra, but turns off a few of the more extreme |
| warnings |
| |
| * TEST_FILE_MATCH() added to allow matching of a line in a file |
| against a wildcard string |
| |
| * NIH_MUST(), NIH_ZERO() and NIH_SHOULD() now expand to an |
| expression with the value of the expression inside. This means |
| that the code like the following is now valid: |
| |
| ret = NIH_SHOULD (some_function_call ()); |
| if (ret < 0) |
| ... |
| |
| This style is preferred to the previous way of doing it (set ret |
| inside the macro call) and the code has been updated. |
| |
| * nih_option_parser() fixed to not eat an argument containing a |
| lone dash. |
| |
| * nih_error_raise_again() renamed to nih_error_raise_error(). |
| |
| * Errors are no longer removed from the context when you call |
| nih_error_get(), this means that to clear the error you must free |
| it and it's now a bug to call nih_error_raise_error() to raise |
| it again. |
| |
| * Unhandled errors now result in an assertion error, rather than a |
| log message being emitted. This assertion will include the |
| filename, line number and function name where the error was |
| originally raised. The assertion may be generated on exit from |
| the program. |
| |
| * nih_option_help() produces slightly different output if the |
| bug reporting address is a URL. |
| |
| * GNU C Library v2.4 (or backported inotify support) is required |
| |
| * D-Bus object and proxy interface structure definitions have been |
| moved to nih-dbus/dbus_interface.h, this file is still included |
| by nih-dbus/dbus_object.h and nih-dbus/dbus_proxy.h so there |
| may be no need to include it directly. |
| |
| * nih_dbus_proxy_new() has additional arguments, a lost handler |
| function which enables tracking of the owner of the well-known |
| name, and a data pointer. NihDBusProxy has a new owner member |
| which contains this. |
| |
| * Signals may be connected using nih_dbus_proxy_connect(), this |
| requires both a handler function and an intermediate filter |
| function. The NihDBusSignal structure gained a filter member |
| to specify the latter. |
| |
| * The D-Bus binding tool has moved into a separate nih-dbus-tool |
| subdirectory, and rewritten from Python to C. |
| |
| * The D-Bus binding tool now uses annotations rather than XML |
| namespaced attributes to adjust the output: |
| - set com.netsplit.Nih.Method.Async to "true" instead of using |
| nih:object="async" |
| - com.netsplit.Nih.Symbol may be used to override C symbol name |
| generation |
| - org.freedesktop.DBus.Deprecated results in a deprecated |
| attribute on external API |
| |
| * Function names generated by the D-Bus binding tool now include |
| the last element of the interface name; my_method() would now |
| be named my_interface_method(). The interface name can be |
| ommitted by setting the com.netsplit.Nih.Symbol annotation to "" |
| |
| * Proxy method functions are now asynchronous by default, the |
| synchronous version has _sync() appended to its name. |
| |
| * Signal function names now always include "emit" in them. |
| |
| * Signal filter functions are generated by the binding tool for use |
| with nih_dbus_proxy_connect() |
| |
| * Get and Set access functions are now generated for properties, |
| and in object mode are expected to be provided. |
| |
| * Arrays of arrays are now fully supported; if the array is an |
| array of basic types, the function will have two arguments; a |
| NULL-terminated array of arrays, and a second NULL-terminated |
| array of those array lengths. This is supported to infinite |
| depths. |
| |
| * D-Bus 1.2.4 is now required. |
| |
| * pkg-config 0.22 is now required, it probably was anyway but we |
| now explicitly check for it. |
| |
| * Dependency on Python for the D-Bus binding tool has been dropped |
| and replaced with a dependency on expat 2.0.0 |
| |
| * The NIH_DBUS_ERROR and NIH_DBUS_INVALID_ARGS error enums have |
| been moved to nih-dbus/errors.h |
| |
| 0.2.0 2009-01-29 |
| |
| * nih_alloc_set_allocator() is now a macro that casts the function |
| to the right typedef, so such casts are no longer needed |
| |
| * nih_alloc() now permits multiple parent references |
| - nih_ref(ptr, parent) creates a new parent reference |
| - nih_unref(ptr, parent) drops a reference and frees if the last |
| - nih_unref_only(ptr, parent) drops a reference without freeing |
| - nih_free() unconditionally frees as it always has |
| - nih_discard() only frees if there are no references |
| |
| * nih_local may be added to variable definitions to have the |
| pointer automatically discarded when it goes out of scope, unless |
| it is referenced in the meantime: |
| |
| { |
| nih_local char *str = NULL; |
| str = nih_strdup (NULL, "some string"); |
| pass_to_func (str); |
| } |
| |
| * nih_alloc_reparent() has been dropped, it can be replaced with |
| an nih_unref_only()/nih_ref() pair - however many uses of this |
| are no longer necessary and it's worth taking some time to refactor |
| the code. |
| |
| * nih_alloc_parent() has changed; it now accepts both an object ptr |
| and a parent and returns TRUE if the object has that parent, if |
| parent is NULL is returns TRUE of the object has any parent. |
| (previously it was used to return _the_ parent). |
| |
| * TEST_ALLOC_PARENT() now behaves as nih_alloc_parent(), which means |
| testing for no parent with NULL has the exact opposite behaviour |
| use the new TEST_ALLOC_ORPHAN(ptr) macro instead. |
| |
| * nih_str_array_addp() now references the passed pointer, instead |
| of reparenting it. Calling code should be modified to make sure |
| it either calls nih_discard() or uses nih_local to be safe in case |
| of error. |
| |
| * nih_strv_free() has been dropped since it did not match the |
| behaviour of the other functions |
| |
| * new NIH_LIST_ITER(iter, type, member) macro to handle the case of |
| an offset head in an iterated structure |
| |
| * nih_hash_pointer_new(), nih_hash_pointer_key(), |
| nih_hash_pointer_hash() and nih_hash_pointer_cmp() have been dropped |
| since they did strange things to pointers that probably aren't |
| legal C. |
| |
| * nih_config_parse() now reads the file into memory, instead of using |
| mmap(). The API is unchanged, however the errors may be different. |
| |
| * The D-Bus bindings have been moved into a separate sub-directory |
| and split out into multiple files. You will need to update your |
| includes as follows: |
| - NihDBusError and nih_dbus_error_*() are in nih-dbus/dbus_error.h |
| - nih_dbus_connect(), nih_dbus_bus(), nih_dbus_setup() and |
| nih_dbus_server() are in nih-dbus/dbus_connection.h |
| - NihDBusMessage and nih_dbus_message_*() are in |
| nih-dbus/dbus_message.h |
| - NihDBusObject, NihDBusInterface and nih_dbus_object_new() are in |
| nih-dbus/dbus_object.h |
| - NihDBusProxy and nih_dbus_proxy_new() are in nih-dbus/dbus_proxy.h |
| - nih_dbus_path() is now in nih-dbus/dbus_util.h |
| |
| * The D-Bus test macros are now in nih-dbus/test_dbus.h |
| |
| * nih_dbus_message_new() now exists as a function in its own right |
| |
| * Asynchronous method callbacks must take a reference to the |
| NihDBusMessage object they are passed, otherwise it will be freed |
| |
| * Reply functions and nih_dbus_message_error() no longer free the |
| message passed in, this is consistent with the above change. |
| |
| * libtool 2.2.4 is now required |
| |
| * The MIN() and MAX() macros are no longer defined, instead use |
| nih_min() and nih_max() which do not re-evaluate their parameters |
| multiple times. |
| |
| * The nih_main_package_string() function has been dropped, instead |
| just access the package_string global set by nih_main_init_full() |
| |
| 0.1.0 2008-10-24 |
| |
| * Initial public release. |
| |