mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-15 16:07:26 +00:00
a720b93af5
meta-webos hasn't been maitained for about 2years.
So, how about add libnih into meta-oe.
Fix the error as foloowing:
invalid tag value("^[A-Za-z0-9+._]+$") Release: Release: r2-4ubuntu16.
Signed-off-by: Dai Caiyun <daicy.fnst@cn.fujitsu.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
3594 lines
122 KiB
Diff
3594 lines
122 KiB
Diff
--- libnih-1.0.3.orig/ChangeLog
|
||
+++ libnih-1.0.3/ChangeLog
|
||
@@ -1,3 +1,84 @@
|
||
+2013-03-13 Steve Langasek <steve.langasek@ubuntu.com>
|
||
+
|
||
+ * nih/watch.c (nih_watch_walk_filter): New NihFileFilter function
|
||
+ passed to nih_dir_walk_scan() to ensure the nih_watch_new() filter
|
||
+ function is passed the NihWatch data rather than the data passed to
|
||
+ the nih_dir_walk() NihFileVisitor function (LP: #776532).
|
||
+
|
||
+ * nih/tests/test_watch.c (test_new): New test "with filter and data"
|
||
+ to ensure filter is passed correct value.
|
||
+
|
||
+2013-02-28 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * Removal of gcc 'malloc' function attribute resulting from
|
||
+ a clarification in its description which makes its use invalid.
|
||
+ (LP: #1123588).
|
||
+
|
||
+2013-02-05 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * nih/logging.c: nih_log_abort_message(): Remove erroneous check
|
||
+ left over from use of __abort_msg weak symbol.
|
||
+ * nih/tests/test_logging.c: Remove unecessary check on whether
|
||
+ __nih_abort_msg has an address.
|
||
+
|
||
+2012-12-13 Stéphane Graber <stgraber@ubuntu.com>
|
||
+
|
||
+ * nih-dbus-tool/type.c, nih-dbus-tool/marshal.c: Update dbus code
|
||
+ generator to allow for empty lists for type 'as'. This drops the
|
||
+ != NULL check for NULL terminated arrays and moves the iteration
|
||
+ loop inside an 'if' statement.
|
||
+
|
||
+2012-12-11 Dmitrijs Ledkovs <dmitrijs.ledkovs@canonical.com>
|
||
+
|
||
+ * nih/file.c (nih_dir_walk_scan): Fallback to lstat, if the
|
||
+ non-portable dirent.d_type is not available (LP: #672643) (Closes:
|
||
+ #695604).
|
||
+
|
||
+2012-12-10 Petr Lautrbach <plautrba@redhat.com>
|
||
+
|
||
+ * nih/tests/test_file.c: don't use dirent.d_type (not portable)
|
||
+
|
||
+2012-10-25 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * nih/logging.c: Use our own __nih_abort_msg rather than the
|
||
+ (e)glibc private symbol __abort_msg to avoid upgrade issues (LP: #997359).
|
||
+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
|
||
+
|
||
+2011-08-31 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
|
||
+ (test_unix_fd_to_str): Sanity check value before invoking strchr in
|
||
+ case it returns address of null (which would give a misleading test
|
||
+ pass).
|
||
+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
|
||
+ (test_unix_fd_to_str, test_unix_fd_to_str_sync): Sanity check value
|
||
+ before invoking strchr in case it returns address of null (which would
|
||
+ give a misleading test pass).
|
||
+ * nih/config.c (): nih_config_block_end: Add check to ensure strchr()
|
||
+ doesn't return address of null since this would result in a misleading
|
||
+ return value of TRUE.
|
||
+
|
||
+ * nih/string.c (nih_str_split): Fixes to avoid over-running
|
||
+ input string and also returning an empty string array entry
|
||
+ when repeat is true (LP: #834813).
|
||
+ * nih/tests/test_string.c (test_str_split): Added a lot of new
|
||
+ tests for nih_str_split().
|
||
+
|
||
+2011-08-26 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * nih/io.c (nih_io_select_fds): Ensure number of fds being managed
|
||
+ is within limits.
|
||
+
|
||
+ * nih/config.c, nih/error.h, nih/io.c, nih/test_files.h: Correct
|
||
+ typos in comments.
|
||
+
|
||
+2011-06-20 James Hunt <james.hunt@ubuntu.com>
|
||
+
|
||
+ * nih/watch.c (nih_watch_handle): Handle non-directory watches;
|
||
+ previously a file watch resulted in an invalid file path ending in
|
||
+ a single slash (LP:#777097).
|
||
+ * nih/tests/test_watch.c: Added explicit test for watch on a file.
|
||
+
|
||
2010-12-23 Scott James Remnant <scott@netsplit.com>
|
||
|
||
* NEWS: Release 1.0.3
|
||
--- libnih-1.0.3.orig/nih/watch.c
|
||
+++ libnih-1.0.3/nih/watch.c
|
||
@@ -2,8 +2,8 @@
|
||
*
|
||
* watch.c - watching of files and directories with inotify
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -71,6 +71,9 @@
|
||
uint32_t events, uint32_t cookie,
|
||
const char *name,
|
||
int *caught_free);
|
||
+static int nih_watch_walk_filter (void *data, const char *path,
|
||
+ int is_dir)
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
/**
|
||
@@ -91,7 +94,7 @@
|
||
* sub-directories will be automatically watched.
|
||
*
|
||
* Additionally, the set of files and directories within @path can be
|
||
- * limited by passing a @filter function which will recieve the paths and
|
||
+ * limited by passing a @filter function which will receive the paths and
|
||
* may return TRUE to indicate that the path received should not be watched.
|
||
*
|
||
* When a file is created within @path, or moved from outside this location
|
||
@@ -104,7 +107,7 @@
|
||
* files that exist under @path when the watch is first added. This only
|
||
* occurs if the watch can be added.
|
||
*
|
||
- * This is a very high level wrapped around the inotify API; lower levels
|
||
+ * This is a very high level wrapper around the inotify API; lower levels
|
||
* can be obtained using the inotify API itself and some of the helper
|
||
* functions used by this one.
|
||
*
|
||
@@ -185,6 +188,35 @@
|
||
}
|
||
|
||
|
||
+ /**
|
||
+ * nih_watch_walk_filter:
|
||
+ * @data: NihWatch,
|
||
+ * @path: path to file,
|
||
+ * @is_dir: TRUE if @path is a directory.
|
||
+ *
|
||
+ * Callback function for nih_dir_walk(), used by nih_watch_add() to wrap
|
||
+ * the user-specified NihFileFilter (watch->filter) with a filter that can
|
||
+ * take watch itself as an argument.
|
||
+ *
|
||
+ * Returns: TRUE if the path should be ignored, FALSE otherwise.
|
||
+ **/
|
||
+static int
|
||
+nih_watch_walk_filter (void *data, const char *path, int is_dir)
|
||
+{
|
||
+ NihWatch *watch;
|
||
+
|
||
+ watch = (NihWatch *)data;
|
||
+
|
||
+ nih_assert (watch);
|
||
+
|
||
+ /* No filter, so accept all files */
|
||
+ if (! watch->filter)
|
||
+ return FALSE;
|
||
+
|
||
+ return watch->filter (watch->data, path, is_dir);
|
||
+}
|
||
+
|
||
+
|
||
/**
|
||
* nih_watch_handle_by_wd:
|
||
* @watch: watch to search,
|
||
@@ -295,7 +327,7 @@
|
||
* one; errors within the walk are warned automatically, so if this
|
||
* fails, it means we literally couldn't watch the top-level.
|
||
*/
|
||
- if (subdirs && (nih_dir_walk (path, watch->filter,
|
||
+ if (subdirs && (nih_dir_walk (path, nih_watch_walk_filter,
|
||
(NihFileVisitor)nih_watch_add_visitor,
|
||
NULL, watch) < 0)) {
|
||
NihError *err;
|
||
@@ -494,12 +526,21 @@
|
||
return;
|
||
}
|
||
|
||
+ /* Every other event must come with a name */
|
||
+ if (name && *name) {
|
||
|
||
- /* Every other event must come with a name. */
|
||
- if ((! name) || strchr (name, '/'))
|
||
- return;
|
||
+ /* If name refers to a directory, there should be no associated
|
||
+ * path - just the name of the path element.
|
||
+ */
|
||
+ if (strchr (name, '/'))
|
||
+ return;
|
||
|
||
- path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
|
||
+ /* Event occured for file within a watched directory */
|
||
+ path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
|
||
+ } else {
|
||
+ /* File event occured */
|
||
+ path = NIH_MUST (nih_strdup (NULL, handle->path));
|
||
+ }
|
||
|
||
/* Check the filter */
|
||
if (watch->filter && watch->filter (watch->data, path,
|
||
--- libnih-1.0.3.orig/nih/hash.h
|
||
+++ libnih-1.0.3/nih/hash.h
|
||
@@ -141,7 +141,7 @@
|
||
* @hash: hash table to iterate,
|
||
* @iter: name of iterator variable.
|
||
*
|
||
- * Expans to nested for statements that iterate over each entry in each
|
||
+ * Expands to nested for statements that iterate over each entry in each
|
||
* bin of @hash, except for the bin head pointer, setting @iter to each
|
||
* entry for the block within the loop. A variable named _@iter_i is used
|
||
* to iterate the hash bins.
|
||
@@ -203,7 +203,7 @@
|
||
NihKeyFunction key_function,
|
||
NihHashFunction hash_function,
|
||
NihCmpFunction cmp_function)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihList * nih_hash_add (NihHash *hash, NihList *entry);
|
||
NihList * nih_hash_add_unique (NihHash *hash, NihList *entry);
|
||
--- libnih-1.0.3.orig/nih/main.h
|
||
+++ libnih-1.0.3/nih/main.h
|
||
@@ -138,7 +138,7 @@
|
||
|
||
NihMainLoopFunc *nih_main_loop_add_func (const void *parent,
|
||
NihMainLoopCb callback, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void nih_main_term_signal (void *data, NihSignal *signal);
|
||
|
||
--- libnih-1.0.3.orig/nih/command.h
|
||
+++ libnih-1.0.3/nih/command.h
|
||
@@ -123,7 +123,7 @@
|
||
|
||
NihCommand *nih_command_join (const void *parent,
|
||
const NihCommand *a, const NihCommand *b)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih/config.h
|
||
+++ libnih-1.0.3/nih/config.h
|
||
@@ -140,10 +140,10 @@
|
||
char * nih_config_next_token (const void *parent, const char *file,
|
||
size_t len, size_t *pos, size_t *lineno,
|
||
const char *delim, int dequote)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * nih_config_next_arg (const void *parent, const char *file,
|
||
size_t len, size_t *pos, size_t *lineno)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
void nih_config_next_line (const char *file, size_t len,
|
||
size_t *pos, size_t *lineno);
|
||
|
||
@@ -155,15 +155,15 @@
|
||
|
||
char ** nih_config_parse_args (const void *parent, const char *file,
|
||
size_t len, size_t *pos, size_t *lineno)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * nih_config_parse_command (const void *parent, const char *file,
|
||
size_t len, size_t *pos, size_t *lineno)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * nih_config_parse_block (const void *parent, const char *file,
|
||
size_t len, size_t *pos, size_t *lineno,
|
||
const char *type)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
int nih_config_skip_block (const char *file, size_t len,
|
||
size_t *lineno, size_t *pos,
|
||
const char *type, size_t *endpos)
|
||
--- libnih-1.0.3.orig/nih/io.c
|
||
+++ libnih-1.0.3/nih/io.c
|
||
@@ -2,8 +2,8 @@
|
||
*
|
||
* io.c - file and socket input/output handling
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -165,6 +165,7 @@
|
||
nih_assert (readfds != NULL);
|
||
nih_assert (writefds != NULL);
|
||
nih_assert (exceptfds != NULL);
|
||
+ nih_assert (*nfds <= FD_SETSIZE);
|
||
|
||
nih_io_init ();
|
||
|
||
@@ -186,6 +187,9 @@
|
||
*nfds = nih_max (*nfds, watch->fd + 1);
|
||
}
|
||
}
|
||
+
|
||
+ /* Re-check in case we exceeded the limit in the loop */
|
||
+ nih_assert (*nfds <= FD_SETSIZE);
|
||
}
|
||
|
||
/**
|
||
@@ -901,7 +905,7 @@
|
||
* read and placed into the receive buffer or queue, and the reader function
|
||
* is called if set.
|
||
*
|
||
- * Any data or messaages in the send buffer or queue are written out if the
|
||
+ * Any data or messages in the send buffer or queue are written out if the
|
||
* @events includes NIH_IO_WRITE.
|
||
*
|
||
* Errors are handled when data is read, and result in the error handled
|
||
@@ -1211,7 +1215,7 @@
|
||
* This function is called when the local end of a file descriptor being
|
||
* managed by NihIo should be closed. Usually this is because the remote
|
||
* end has been closed (without error) but it can also be because no
|
||
- * error handler was given
|
||
+ * error handler was given.
|
||
*
|
||
* Normally this just calls the close handler, or if not available, it
|
||
* closes the file descriptor and frees the structure (which may be
|
||
@@ -1291,7 +1295,7 @@
|
||
* @io: structure to be destroyed.
|
||
*
|
||
* Closes the file descriptor associated with an NihIo structure so that
|
||
- * the structure can be freed. IF an error is caught by closing the
|
||
+ * the structure can be freed. If an error is caught by closing the
|
||
* descriptor, the error handler is called instead of the error being raised;
|
||
* this allows you to group your error handling in one place rather than
|
||
* special-case close.
|
||
--- libnih-1.0.3.orig/nih/watch.h
|
||
+++ libnih-1.0.3/nih/watch.h
|
||
@@ -156,7 +156,7 @@
|
||
NihCreateHandler create_handler,
|
||
NihModifyHandler modify_handler,
|
||
NihDeleteHandler delete_handler, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_watch_add (NihWatch *watch, const char *path, int subdirs)
|
||
__attribute__ ((warn_unused_result));
|
||
--- libnih-1.0.3.orig/nih/tree.h
|
||
+++ libnih-1.0.3/nih/tree.h
|
||
@@ -344,9 +344,9 @@
|
||
|
||
void nih_tree_init (NihTree *tree);
|
||
NihTree * nih_tree_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
NihTreeEntry *nih_tree_entry_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihTree * nih_tree_add (NihTree *tree, NihTree *node,
|
||
NihTreeWhere where);
|
||
--- libnih-1.0.3.orig/nih/file.c
|
||
+++ libnih-1.0.3/nih/file.c
|
||
@@ -65,7 +65,7 @@
|
||
/* Prototypes for static functions */
|
||
static char **nih_dir_walk_scan (const char *path, NihFileFilter filter,
|
||
void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static int nih_dir_walk_visit (const char *dirname, NihList *dirs,
|
||
const char *path, NihFileFilter filter,
|
||
NihFileVisitor visitor,
|
||
@@ -619,6 +619,8 @@
|
||
struct dirent *ent;
|
||
char **paths;
|
||
size_t npaths;
|
||
+ int isdir;
|
||
+ struct stat statbuf;
|
||
|
||
nih_assert (path != NULL);
|
||
|
||
@@ -640,7 +642,15 @@
|
||
subpath = NIH_MUST (nih_sprintf (NULL, "%s/%s",
|
||
path, ent->d_name));
|
||
|
||
- if (filter && filter (data, subpath, ent->d_type == DT_DIR))
|
||
+ if (ent->d_type == DT_UNKNOWN) {
|
||
+ if ( lstat (subpath, &statbuf))
|
||
+ isdir = 0;
|
||
+ else
|
||
+ isdir = S_ISDIR(statbuf.st_mode);
|
||
+ } else
|
||
+ isdir = ent->d_type == DT_DIR;
|
||
+
|
||
+ if (filter && filter (data, subpath, isdir))
|
||
continue;
|
||
|
||
NIH_MUST (nih_str_array_addp (&paths, NULL, &npaths, subpath));
|
||
--- libnih-1.0.3.orig/nih/alloc.c
|
||
+++ libnih-1.0.3/nih/alloc.c
|
||
@@ -119,8 +119,7 @@
|
||
static inline int nih_alloc_context_free (NihAllocCtx *ctx);
|
||
|
||
static inline NihAllocRef *nih_alloc_ref_new (NihAllocCtx *parent,
|
||
- NihAllocCtx *child)
|
||
- __attribute__ ((malloc));
|
||
+ NihAllocCtx *child);
|
||
static inline void nih_alloc_ref_free (NihAllocRef *ref);
|
||
static inline NihAllocRef *nih_alloc_ref_lookup (NihAllocCtx *parent,
|
||
NihAllocCtx *child);
|
||
--- libnih-1.0.3.orig/nih/timer.h
|
||
+++ libnih-1.0.3/nih/timer.h
|
||
@@ -59,7 +59,7 @@
|
||
* @months: months (1-12),
|
||
* @wdays: days of week (0-7).
|
||
*
|
||
- * Indidcates when scheduled timers should be run, each member is a bit
|
||
+ * Indicates when scheduled timers should be run, each member is a bit
|
||
* field where the bit is 1 if the timer should be run for that value and
|
||
* 0 if not.
|
||
**/
|
||
@@ -117,14 +117,14 @@
|
||
|
||
NihTimer *nih_timer_add_timeout (const void *parent, time_t timeout,
|
||
NihTimerCb callback, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
NihTimer *nih_timer_add_periodic (const void *parent, time_t period,
|
||
NihTimerCb callback, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
NihTimer *nih_timer_add_scheduled (const void *parent,
|
||
NihTimerSchedule *schedule,
|
||
NihTimerCb callback, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihTimer *nih_timer_next_due (void);
|
||
void nih_timer_poll (void);
|
||
--- libnih-1.0.3.orig/nih/config.c
|
||
+++ libnih-1.0.3/nih/config.c
|
||
@@ -2,8 +2,8 @@
|
||
*
|
||
* config.c - configuration file parsing
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -657,7 +657,7 @@
|
||
* of the returned string are freed, the returned string will also be
|
||
* freed.
|
||
*
|
||
- * Returns: the command found or NULL on raised error.
|
||
+ * Returns: the newly allocated command found or NULL on raised error.
|
||
**/
|
||
char *
|
||
nih_config_parse_command (const void *parent,
|
||
@@ -714,7 +714,7 @@
|
||
* @lineno: line number,
|
||
* @type: block identifier.
|
||
*
|
||
- * Extracts a block of text from @line, stopping when the pharse "end @type"
|
||
+ * Extracts a block of text from @line, stopping when the phrase "end @type"
|
||
* is encountered without any quotes or blackslash escaping within it.
|
||
*
|
||
* @file may be a memory mapped file, in which case @pos should be given
|
||
@@ -950,7 +950,7 @@
|
||
return FALSE;
|
||
|
||
/* Must be whitespace after */
|
||
- if (! strchr (NIH_CONFIG_WS, file[p + 3]))
|
||
+ if (file[p + 3] && ! strchr (NIH_CONFIG_WS, file[p + 3]))
|
||
return FALSE;
|
||
|
||
/* Find the second word */
|
||
--- libnih-1.0.3.orig/nih/option.h
|
||
+++ libnih-1.0.3/nih/option.h
|
||
@@ -124,11 +124,11 @@
|
||
char ** nih_option_parser (const void *parent,
|
||
int argc, char *argv[],
|
||
NihOption *options, int break_nonopt)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihOption *nih_option_join (const void *parent,
|
||
const NihOption *a, const NihOption *b)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_option_count (NihOption *option, const char *arg);
|
||
int nih_option_int (NihOption *option, const char *arg);
|
||
--- libnih-1.0.3.orig/nih/signal.h
|
||
+++ libnih-1.0.3/nih/signal.h
|
||
@@ -76,7 +76,7 @@
|
||
|
||
NihSignal * nih_signal_add_handler (const void *parent, int signum,
|
||
NihSignalHandler handler, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void nih_signal_handler (int signum);
|
||
void nih_signal_poll (void);
|
||
--- libnih-1.0.3.orig/nih/list.h
|
||
+++ libnih-1.0.3/nih/list.h
|
||
@@ -37,7 +37,7 @@
|
||
* after a known entry, and remove an entry from the list.
|
||
*
|
||
* List entries may be created in one of two ways. The most common is to
|
||
- * embed the NihList structure as the frist member of your own structure,
|
||
+ * embed the NihList structure as the first member of your own structure,
|
||
* and initialise it with nih_list_init() after allocating the structure.
|
||
* Alternatively you may create NihListEntry structures with
|
||
* nih_list_entry_new() and point at your own data from them.
|
||
@@ -196,10 +196,10 @@
|
||
|
||
void nih_list_init (NihList *entry);
|
||
NihList * nih_list_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihListEntry *nih_list_entry_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
NihList * nih_list_add (NihList *list, NihList *entry);
|
||
--- libnih-1.0.3.orig/nih/logging.c
|
||
+++ libnih-1.0.3/nih/logging.c
|
||
@@ -39,11 +39,11 @@
|
||
|
||
|
||
/**
|
||
- * __abort_msg:
|
||
+ * __nih_abort_msg:
|
||
*
|
||
- * A glibc variable that keeps the assertion message in the core dump.
|
||
+ * A variable that keeps the assertion message in the core dump.
|
||
**/
|
||
-extern char *__abort_msg __attribute__ ((weak));
|
||
+char *__nih_abort_msg = NULL;
|
||
|
||
/**
|
||
* logger:
|
||
@@ -114,19 +114,16 @@
|
||
* nih_log_abort_message:
|
||
* @message: message to be logged.
|
||
*
|
||
- * Save @message in the glibc __abort_msg variable so it can be retrieved
|
||
+ * Save @message in the __nih_abort_msg variable so it can be retrieved
|
||
* by debuggers if we should crash at this point.
|
||
**/
|
||
static void
|
||
nih_log_abort_message (const char *message)
|
||
{
|
||
- if (! &__abort_msg)
|
||
- return;
|
||
+ if (__nih_abort_msg)
|
||
+ nih_discard (__nih_abort_msg);
|
||
|
||
- if (__abort_msg)
|
||
- nih_discard (__abort_msg);
|
||
-
|
||
- __abort_msg = NIH_MUST (nih_strdup (NULL, message));
|
||
+ __nih_abort_msg = NIH_MUST (nih_strdup (NULL, message));
|
||
}
|
||
|
||
/**
|
||
--- libnih-1.0.3.orig/nih/test_files.h
|
||
+++ libnih-1.0.3/nih/test_files.h
|
||
@@ -1,7 +1,7 @@
|
||
/* libnih
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -39,7 +39,7 @@
|
||
* TEST_FILENAME:
|
||
* @_var: variable to store filename in.
|
||
*
|
||
- * Generate a filename that may be used for testing, it's unlinked it if
|
||
+ * Generate a filename that may be used for testing, it's unlinked if it
|
||
* exists and it's up to you to unlink it when done. @_var should be at
|
||
* least PATH_MAX long.
|
||
**/
|
||
--- libnih-1.0.3.orig/nih/test_process.h
|
||
+++ libnih-1.0.3/nih/test_process.h
|
||
@@ -36,7 +36,7 @@
|
||
* Spawn a child in which a test can be performed without affecting the
|
||
* main flow of the process. The pid of the child is stored in @_pid.
|
||
*
|
||
- * This macro ensures that the child has begun exectution before the
|
||
+ * This macro ensures that the child has begun execution before the
|
||
* parent is allowed to continue through the usual use of a pipe.
|
||
*
|
||
* A block of code should follow this macro, which is the code that will
|
||
--- libnih-1.0.3.orig/nih/child.h
|
||
+++ libnih-1.0.3/nih/child.h
|
||
@@ -98,7 +98,7 @@
|
||
NihChildWatch *nih_child_add_watch (const void *parent, pid_t pid,
|
||
NihChildEvents events,
|
||
NihChildHandler handler, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void nih_child_poll (void);
|
||
|
||
--- libnih-1.0.3.orig/nih/alloc.h
|
||
+++ libnih-1.0.3/nih/alloc.h
|
||
@@ -299,7 +299,7 @@
|
||
* It is permissible to take references to foo within its scope, or by
|
||
* functions called, in which case it will not be freed. Also it is
|
||
* generally nonsensical to allocate with a parent, since this too will
|
||
- * prevent it from beign freed.
|
||
+ * prevent it from being freed.
|
||
**/
|
||
#define nih_local __attribute__ ((cleanup(_nih_discard_local)))
|
||
|
||
@@ -307,11 +307,11 @@
|
||
NIH_BEGIN_EXTERN
|
||
|
||
void * nih_alloc (const void *parent, size_t size)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void * nih_realloc (void *ptr, const void *parent,
|
||
size_t size)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_free (void *ptr);
|
||
int nih_discard (void *ptr);
|
||
--- libnih-1.0.3.orig/nih/io.h
|
||
+++ libnih-1.0.3/nih/io.h
|
||
@@ -269,7 +269,7 @@
|
||
NihIoWatch * nih_io_add_watch (const void *parent, int fd,
|
||
NihIoEvents events,
|
||
NihIoWatcher watcher, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void nih_io_select_fds (int *nfds, fd_set *readfds,
|
||
fd_set *writefds, fd_set *exceptfds);
|
||
@@ -278,12 +278,12 @@
|
||
|
||
|
||
NihIoBuffer * nih_io_buffer_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_io_buffer_resize (NihIoBuffer *buffer, size_t grow);
|
||
char * nih_io_buffer_pop (const void *parent,
|
||
NihIoBuffer *buffer, size_t *len)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
void nih_io_buffer_shrink (NihIoBuffer *buffer, size_t len);
|
||
int nih_io_buffer_push (NihIoBuffer *buffer,
|
||
const char *str, size_t len)
|
||
@@ -291,7 +291,7 @@
|
||
|
||
|
||
NihIoMessage *nih_io_message_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_io_message_add_control (NihIoMessage *message, int level,
|
||
int type, socklen_t len,
|
||
@@ -300,7 +300,7 @@
|
||
|
||
NihIoMessage *nih_io_message_recv (const void *parent, int fd,
|
||
size_t *len)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
ssize_t nih_io_message_send (NihIoMessage *message, int fd)
|
||
__attribute__ ((warn_unused_result));
|
||
|
||
@@ -310,7 +310,7 @@
|
||
NihIoCloseHandler close_handler,
|
||
NihIoErrorHandler error_handler,
|
||
void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
void nih_io_shutdown (NihIo *io);
|
||
int nih_io_destroy (NihIo *io);
|
||
|
||
@@ -319,14 +319,14 @@
|
||
|
||
char * nih_io_read (const void *parent, NihIo *io,
|
||
size_t *len)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
int nih_io_write (NihIo *io, const char *str,
|
||
size_t len)
|
||
__attribute__ ((warn_unused_result));
|
||
|
||
char * nih_io_get (const void *parent, NihIo *io,
|
||
const char *delim)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int nih_io_printf (NihIo *io, const char *format, ...)
|
||
__attribute__ ((warn_unused_result, format (printf, 2, 3)));
|
||
--- libnih-1.0.3.orig/nih/test_output.h
|
||
+++ libnih-1.0.3/nih/test_output.h
|
||
@@ -61,10 +61,10 @@
|
||
|
||
/**
|
||
* TEST_FEATURE:
|
||
- * @_feat: name of function feature being tested.
|
||
+ * @_feat: name of function or group feature being tested.
|
||
*
|
||
- * Output a message indicating that a sub-test of a function is being
|
||
- * performed, specifically the feature named _feat.
|
||
+ * Output a message indicating that a sub-test of a function or
|
||
+ * group is being performed, specifically the feature named _feat.
|
||
**/
|
||
#define TEST_FEATURE(_feat) \
|
||
printf ("...%s\n", _feat);
|
||
--- libnih-1.0.3.orig/nih/error.h
|
||
+++ libnih-1.0.3/nih/error.h
|
||
@@ -1,7 +1,7 @@
|
||
/* libnih
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -111,7 +111,7 @@
|
||
* @message: human-readable message.
|
||
*
|
||
* Raises an error with the given details in the current error context,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
*
|
||
* @message should be a static string, as it will not be freed when the
|
||
@@ -126,7 +126,7 @@
|
||
* @format: format string for human-readable message.
|
||
*
|
||
* Raises an error with the given details in the current error context,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
*
|
||
* The human-readable message for the error is parsed according to @format,
|
||
@@ -140,7 +140,7 @@
|
||
* nih_error_raise_system:
|
||
*
|
||
* Raises an error with details taken from the current value of errno,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
**/
|
||
#define nih_error_raise_system() \
|
||
@@ -162,7 +162,7 @@
|
||
* @error: existing object to raise.
|
||
*
|
||
* Raises the existing error object in the current error context,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
*
|
||
* This is normally used to raise a taken error that has not been handled,
|
||
@@ -182,7 +182,7 @@
|
||
* @message: human-readable message.
|
||
*
|
||
* Raises an error with the given details in the current error context,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
*
|
||
* Will return from the current function with @retval, which may be left
|
||
@@ -199,7 +199,7 @@
|
||
* @retval: return value for function.
|
||
*
|
||
* Raises an error with details taken from the current value of errno,
|
||
- * if an unhandled error already exists then an error message is emmitted
|
||
+ * if an unhandled error already exists then an error message is emitted
|
||
* through the logging system; you should try to avoid this.
|
||
*
|
||
* Will return from the current function with @retval, which may be left
|
||
--- libnih-1.0.3.orig/nih/string.h
|
||
+++ libnih-1.0.3/nih/string.h
|
||
@@ -35,60 +35,60 @@
|
||
NIH_BEGIN_EXTERN
|
||
|
||
char * nih_sprintf (const void *parent, const char *format, ...)
|
||
- __attribute__ ((format (printf, 2, 3), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 2, 3), warn_unused_result));
|
||
|
||
char * nih_vsprintf (const void *parent, const char *format,
|
||
va_list args)
|
||
- __attribute__ ((format (printf, 2, 0), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 2, 0), warn_unused_result));
|
||
|
||
char * nih_strdup (const void *parent, const char *str)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * nih_strndup (const void *parent, const char *str, size_t len)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * nih_strcat (char **str, const void *parent, const char *src)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * nih_strncat (char **str, const void *parent, const char *src,
|
||
size_t len)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * nih_strcat_sprintf (char **str, const void *parent,
|
||
const char *format, ...)
|
||
- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
|
||
char * nih_strcat_vsprintf (char **str, const void *parent,
|
||
const char *format, va_list args)
|
||
- __attribute__ ((format (printf, 3, 0), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 3, 0), warn_unused_result));
|
||
|
||
char **nih_str_split (const void *parent, const char *str,
|
||
const char *delim, int repeat)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char **nih_str_array_new (const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char **nih_str_array_add (char ***array, const void *parent, size_t *len,
|
||
const char *str)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char **nih_str_array_addn (char ***array, const void *parent, size_t *len,
|
||
const char *str, size_t strlen)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char **nih_str_array_addp (char ***array, const void *parent, size_t *len,
|
||
void *ptr)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char **nih_str_array_copy (const void *parent, size_t *len,
|
||
char * const *array)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char **nih_str_array_append (char ***array, const void *parent, size_t *len,
|
||
char * const *args)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * nih_str_wrap (const void *parent, const char *str, size_t len,
|
||
size_t first_indent, size_t indent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
size_t nih_str_screen_width (void);
|
||
char * nih_str_screen_wrap (const void *parent, const char *str,
|
||
size_t first_indent, size_t indent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih/string.c
|
||
+++ libnih-1.0.3/nih/string.c
|
||
@@ -405,7 +405,7 @@
|
||
const char *ptr;
|
||
|
||
/* Skip initial delimiters */
|
||
- while (repeat && strchr (delim, *str))
|
||
+ while (repeat && *str && strchr (delim, *str))
|
||
str++;
|
||
|
||
/* Find the end of the token */
|
||
@@ -413,6 +413,13 @@
|
||
while (*str && (! strchr (delim, *str)))
|
||
str++;
|
||
|
||
+ /* Don't create an empty string array element in repeat
|
||
+ * mode if there is no token (as a result of a
|
||
+ * duplicated delimiter character).
|
||
+ */
|
||
+ if (repeat && (str == ptr))
|
||
+ continue;
|
||
+
|
||
if (! nih_str_array_addn (&array, parent, &len,
|
||
ptr, str - ptr)) {
|
||
nih_free (array);
|
||
--- libnih-1.0.3.orig/nih/file.h
|
||
+++ libnih-1.0.3/nih/file.h
|
||
@@ -82,7 +82,7 @@
|
||
|
||
char *nih_file_read (const void *parent, const char *path,
|
||
size_t *length)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void *nih_file_map (const char *path, int flags, size_t *length)
|
||
__attribute__ ((warn_unused_result));
|
||
--- libnih-1.0.3.orig/nih/tests/test_option.c
|
||
+++ libnih-1.0.3/nih/tests/test_option.c
|
||
@@ -1574,7 +1574,7 @@
|
||
output = tmpfile ();
|
||
TEST_CHILD (pid) {
|
||
TEST_DIVERT_STDOUT (output) {
|
||
- char **args;
|
||
+ char **args __attribute__((unused));
|
||
|
||
args = nih_option_parser (NULL, argc, argv,
|
||
options, FALSE);
|
||
@@ -1652,7 +1652,7 @@
|
||
unsetenv ("COLUMNS");
|
||
|
||
TEST_DIVERT_STDOUT (output) {
|
||
- char **args;
|
||
+ char **args __attribute__((unused));
|
||
|
||
args = nih_option_parser (NULL, argc, argv,
|
||
options, FALSE);
|
||
--- libnih-1.0.3.orig/nih/tests/test_logging.c
|
||
+++ libnih-1.0.3/nih/tests/test_logging.c
|
||
@@ -31,7 +31,7 @@
|
||
#include <nih/main.h>
|
||
|
||
|
||
-extern char *__abort_msg __attribute__ ((weak));
|
||
+extern char *__nih_abort_msg;
|
||
|
||
static NihLogLevel last_priority = NIH_LOG_UNKNOWN;
|
||
static char * last_message = NULL;
|
||
@@ -156,68 +156,63 @@
|
||
}
|
||
|
||
|
||
- /* Check that a fatal message is also stored in the glibc __abort_msg
|
||
+ /* Check that a fatal message is also stored in the __nih_abort_msg
|
||
* variable.
|
||
*/
|
||
- if (&__abort_msg) {
|
||
- TEST_FEATURE ("with fatal message");
|
||
- TEST_ALLOC_FAIL {
|
||
- __abort_msg = NULL;
|
||
- last_priority = NIH_LOG_UNKNOWN;
|
||
- last_message = NULL;
|
||
-
|
||
- ret = nih_log_message (NIH_LOG_FATAL,
|
||
- "message with %s %d formatting",
|
||
- "some", 20);
|
||
-
|
||
- TEST_EQ (ret, 0);
|
||
- TEST_EQ (last_priority, NIH_LOG_FATAL);
|
||
- TEST_EQ_STR (last_message, "message with some 20 formatting");
|
||
-
|
||
- TEST_NE_P (__abort_msg, NULL);
|
||
- TEST_ALLOC_PARENT (__abort_msg, NULL);
|
||
- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
|
||
+ TEST_FEATURE ("with fatal message");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ __nih_abort_msg = NULL;
|
||
+ last_priority = NIH_LOG_UNKNOWN;
|
||
+ last_message = NULL;
|
||
|
||
- free (last_message);
|
||
- }
|
||
+ ret = nih_log_message (NIH_LOG_FATAL,
|
||
+ "message with %s %d formatting",
|
||
+ "some", 20);
|
||
|
||
+ TEST_EQ (ret, 0);
|
||
+ TEST_EQ (last_priority, NIH_LOG_FATAL);
|
||
+ TEST_EQ_STR (last_message, "message with some 20 formatting");
|
||
|
||
- /* Check that a fatal message can safely overwrite one already stored
|
||
- * in the glibc __abort_msg variable.
|
||
- */
|
||
- TEST_FEATURE ("with second fatal message");
|
||
- TEST_ALLOC_FAIL {
|
||
- TEST_ALLOC_SAFE {
|
||
- msg = nih_strdup (NULL, "test");
|
||
- }
|
||
-
|
||
- __abort_msg = msg;
|
||
- TEST_FREE_TAG (msg);
|
||
-
|
||
- last_priority = NIH_LOG_UNKNOWN;
|
||
- last_message = NULL;
|
||
-
|
||
- ret = nih_log_message (NIH_LOG_FATAL,
|
||
- "message with %s %d formatting",
|
||
- "some", 20);
|
||
-
|
||
- TEST_EQ (ret, 0);
|
||
- TEST_EQ (last_priority, NIH_LOG_FATAL);
|
||
- TEST_EQ_STR (last_message, "message with some 20 formatting");
|
||
-
|
||
- TEST_FREE (msg);
|
||
-
|
||
- TEST_NE_P (__abort_msg, NULL);
|
||
- TEST_ALLOC_PARENT (__abort_msg, NULL);
|
||
- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
|
||
+ TEST_NE_P (__nih_abort_msg, NULL);
|
||
+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
|
||
+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
|
||
|
||
- free (last_message);
|
||
- }
|
||
- } else {
|
||
- printf ("SKIP: __abort_msg not available\n");
|
||
+ free (last_message);
|
||
}
|
||
|
||
|
||
+ /* Check that a fatal message can safely overwrite one already stored
|
||
+ * in the __nih_abort_msg variable.
|
||
+ */
|
||
+ TEST_FEATURE ("with second fatal message");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ TEST_ALLOC_SAFE {
|
||
+ msg = nih_strdup (NULL, "test");
|
||
+ }
|
||
+
|
||
+ __nih_abort_msg = msg;
|
||
+ TEST_FREE_TAG (msg);
|
||
+
|
||
+ last_priority = NIH_LOG_UNKNOWN;
|
||
+ last_message = NULL;
|
||
+
|
||
+ ret = nih_log_message (NIH_LOG_FATAL,
|
||
+ "message with %s %d formatting",
|
||
+ "some", 20);
|
||
+
|
||
+ TEST_EQ (ret, 0);
|
||
+ TEST_EQ (last_priority, NIH_LOG_FATAL);
|
||
+ TEST_EQ_STR (last_message, "message with some 20 formatting");
|
||
+
|
||
+ TEST_FREE (msg);
|
||
+
|
||
+ TEST_NE_P (__nih_abort_msg, NULL);
|
||
+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
|
||
+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
|
||
+
|
||
+ free (last_message);
|
||
+ }
|
||
+
|
||
/* Check that the nih_debug macro wraps the call properly and
|
||
* includes the function in which the message occurred.
|
||
*/
|
||
--- libnih-1.0.3.orig/nih/tests/test_hash.c
|
||
+++ libnih-1.0.3/nih/tests/test_hash.c
|
||
@@ -470,7 +470,8 @@
|
||
test_lookup (void)
|
||
{
|
||
NihHash *hash;
|
||
- NihList *entry1, *entry2, *entry3, *ptr;
|
||
+ NihList *entry1, *entry2, *ptr;
|
||
+ NihList *entry3 __attribute__((unused));
|
||
|
||
TEST_FUNCTION ("nih_hash_lookup");
|
||
hash = nih_hash_string_new (NULL, 0);
|
||
--- libnih-1.0.3.orig/nih/tests/test_main.c
|
||
+++ libnih-1.0.3/nih/tests/test_main.c
|
||
@@ -457,7 +457,7 @@
|
||
test_main_loop (void)
|
||
{
|
||
NihMainLoopFunc *func;
|
||
- NihTimer *timer;
|
||
+ NihTimer *timer __attribute__((unused));
|
||
int ret;
|
||
|
||
/* Check that we can run through the main loop, and that the
|
||
--- libnih-1.0.3.orig/nih/tests/test_watch.c
|
||
+++ libnih-1.0.3/nih/tests/test_watch.c
|
||
@@ -2,8 +2,8 @@
|
||
*
|
||
* test_watch.c - test suite for nih/watch.c
|
||
*
|
||
- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
|
||
- * Copyright © 2009 Canonical Ltd.
|
||
+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
|
||
+ * Copyright © 2011 Canonical Ltd.
|
||
*
|
||
* This program is free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License version 2, as
|
||
@@ -39,6 +39,8 @@
|
||
#include <nih/error.h>
|
||
#include <nih/logging.h>
|
||
|
||
+/* Read "The Hitchhikers Guide to the Galaxy" */
|
||
+#define FILTER_VALUE 42
|
||
|
||
static int
|
||
my_filter (void *data,
|
||
@@ -54,6 +56,26 @@
|
||
return FALSE;
|
||
}
|
||
|
||
+/* Set by my_filter2 () so it knows if it has already been called */
|
||
+static int my_filter2_called = 0;
|
||
+
|
||
+static int
|
||
+my_filter2 (int *value,
|
||
+ const char *path,
|
||
+ int is_dir)
|
||
+{
|
||
+ /* we only want to toggle the value once */
|
||
+ if (my_filter2_called)
|
||
+ return TRUE;
|
||
+
|
||
+ my_filter2_called = 1;
|
||
+
|
||
+ nih_assert (value && *value == FILTER_VALUE);
|
||
+ *value = 0;
|
||
+
|
||
+ return FALSE;
|
||
+}
|
||
+
|
||
static int create_called = 0;
|
||
static int modify_called = 0;
|
||
static int delete_called = 0;
|
||
@@ -553,6 +575,44 @@
|
||
nih_free (watch);
|
||
}
|
||
|
||
+ /* Ensure the file filter gets passed the correct data pointer.
|
||
+ */
|
||
+ TEST_FEATURE ("with filter and data");
|
||
+
|
||
+ /* Ensure we have a new directory */
|
||
+ TEST_FILENAME (dirname);
|
||
+ mkdir (dirname, 0755);
|
||
+
|
||
+ /* Create a single file */
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/foo");
|
||
+
|
||
+ fd = fopen (filename, "w");
|
||
+ fprintf (fd, "test\n");
|
||
+ fclose (fd);
|
||
+
|
||
+ TEST_ALLOC_FAIL {
|
||
+ int watch_data = FILTER_VALUE;
|
||
+
|
||
+ /* Reset required to appease TEST_ALLOC_FAIL */
|
||
+ my_filter2_called = 0;
|
||
+
|
||
+ watch = nih_watch_new (NULL, dirname,
|
||
+ TRUE, TRUE,
|
||
+ (NihFileFilter)my_filter2,
|
||
+ NULL, NULL, NULL,
|
||
+ &watch_data);
|
||
+
|
||
+ TEST_NE_P (watch, NULL);
|
||
+
|
||
+ /* Ensure the filter was called and changed the value */
|
||
+
|
||
+ TEST_NE (my_filter2_called, 0);
|
||
+ TEST_EQ (watch_data, 0);
|
||
+
|
||
+ nih_free (watch);
|
||
+ }
|
||
+
|
||
strcpy (filename, dirname);
|
||
strcat (filename, "/bar");
|
||
chmod (filename, 0755);
|
||
@@ -946,13 +1006,82 @@
|
||
nih_error_init ();
|
||
|
||
TEST_FILENAME (dirname);
|
||
- mkdir (dirname, 0755);
|
||
+ TEST_EQ (mkdir (dirname, 0755), 0);
|
||
|
||
- watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
|
||
- my_create_handler, my_modify_handler,
|
||
+ TEST_FEATURE ("with watched file");
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/foo");
|
||
+
|
||
+ /* Create file first since we don't set a create handler on the
|
||
+ * watch.
|
||
+ */
|
||
+ fd = fopen (filename, "w");
|
||
+ fprintf (fd, "bar\n");
|
||
+ fclose (fd);
|
||
+
|
||
+ create_called = 0;
|
||
+ modify_called = 0;
|
||
+ delete_called = 0;
|
||
+ logger_called = 0;
|
||
+ last_path = NULL;
|
||
+ last_watch = NULL;
|
||
+ last_data = NULL;
|
||
+
|
||
+ watch = nih_watch_new (NULL, filename, FALSE, FALSE, NULL,
|
||
+ NULL, my_modify_handler,
|
||
my_delete_handler, &watch);
|
||
+ TEST_NE_P (watch, NULL);
|
||
+
|
||
+ /* Now, modify the existing file to trigger the modify handler. */
|
||
+ fd = fopen (filename, "a+");
|
||
+ fprintf (fd, "baz\n");
|
||
+ fclose (fd);
|
||
+
|
||
+ nfds = 0;
|
||
+ FD_ZERO (&readfds);
|
||
+ FD_ZERO (&writefds);
|
||
+ FD_ZERO (&exceptfds);
|
||
+
|
||
+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
|
||
+ select (nfds, &readfds, &writefds, &exceptfds, NULL);
|
||
+ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
|
||
+
|
||
+ TEST_EQ_STR (watch->path, filename);
|
||
+
|
||
+ /* Ensure no regression to old behaviour (LP:#777097) */
|
||
+ TEST_NE (last_path[ strlen(last_path) - 1 ], '/');
|
||
+
|
||
+ TEST_EQ_STR (last_path, filename);
|
||
+ TEST_EQ (modify_called, 1);
|
||
+
|
||
+ unlink (filename);
|
||
+
|
||
+ nfds = 0;
|
||
+ FD_ZERO (&readfds);
|
||
+ FD_ZERO (&writefds);
|
||
+ FD_ZERO (&exceptfds);
|
||
+
|
||
+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
|
||
+ select (nfds, &readfds, &writefds, &exceptfds, NULL);
|
||
+ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
|
||
|
||
+ TEST_EQ (delete_called, 1);
|
||
|
||
+ rmdir (filename);
|
||
+ nih_free (last_path);
|
||
+
|
||
+ create_called = 0;
|
||
+ modify_called = 0;
|
||
+ delete_called = 0;
|
||
+ logger_called = 0;
|
||
+ last_path = NULL;
|
||
+ last_watch = NULL;
|
||
+ last_data = NULL;
|
||
+
|
||
+
|
||
+ watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
|
||
+ my_create_handler, my_modify_handler,
|
||
+ my_delete_handler, &watch);
|
||
/* Check that creating a file within the directory being watched
|
||
* results in the create handler being called, and passed the full
|
||
* path of the created file to it.
|
||
--- libnih-1.0.3.orig/nih/tests/test_string.c
|
||
+++ libnih-1.0.3/nih/tests/test_string.c
|
||
@@ -619,6 +619,215 @@
|
||
nih_free (array);
|
||
}
|
||
|
||
+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
|
||
+ "characters at string start");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "\t\tthis is a test", " \t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
|
||
+ for (i = 0; i < 6; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "");
|
||
+ TEST_EQ_STR (array[1], "");
|
||
+ TEST_EQ_STR (array[2], "this");
|
||
+ TEST_EQ_STR (array[3], "is");
|
||
+ TEST_EQ_STR (array[4], "a");
|
||
+ TEST_EQ_STR (array[5], "test");
|
||
+ TEST_EQ_P (array[6], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple different delimiter "
|
||
+ "characters at string start");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, " \tthis is a test", " \t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
|
||
+ for (i = 0; i < 6; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "");
|
||
+ TEST_EQ_STR (array[1], "");
|
||
+ TEST_EQ_STR (array[2], "this");
|
||
+ TEST_EQ_STR (array[3], "is");
|
||
+ TEST_EQ_STR (array[4], "a");
|
||
+ TEST_EQ_STR (array[5], "test");
|
||
+ TEST_EQ_P (array[6], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
|
||
+ "characters within string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "this is a\t\ttest", " \t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 8);
|
||
+ for (i = 0; i < 7; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "this");
|
||
+ TEST_EQ_STR (array[1], "is");
|
||
+ TEST_EQ_STR (array[2], "");
|
||
+ TEST_EQ_STR (array[3], "");
|
||
+ TEST_EQ_STR (array[4], "a");
|
||
+ TEST_EQ_STR (array[5], "");
|
||
+ TEST_EQ_STR (array[6], "test");
|
||
+ TEST_EQ_P (array[7], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple different delimiter "
|
||
+ "characters within string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "this is \n\ta\ttest", " \t\n", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
|
||
+ for (i = 0; i < 6; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "this");
|
||
+ TEST_EQ_STR (array[1], "is");
|
||
+ TEST_EQ_STR (array[2], "");
|
||
+ TEST_EQ_STR (array[3], "");
|
||
+ TEST_EQ_STR (array[4], "a");
|
||
+ TEST_EQ_STR (array[5], "test");
|
||
+ TEST_EQ_P (array[6], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
|
||
+ "characters at string end");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "this is a test ", " \t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
|
||
+ for (i = 0; i < 5; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "this");
|
||
+ TEST_EQ_STR (array[1], "is");
|
||
+ TEST_EQ_STR (array[2], "a");
|
||
+ TEST_EQ_STR (array[3], "test");
|
||
+ TEST_EQ_STR (array[4], "");
|
||
+ TEST_EQ_P (array[5], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple different delimiter "
|
||
+ "characters at string end");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "this is a test \t", " \t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
|
||
+ for (i = 0; i < 5; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "this");
|
||
+ TEST_EQ_STR (array[1], "is");
|
||
+ TEST_EQ_STR (array[2], "a");
|
||
+ TEST_EQ_STR (array[3], "test");
|
||
+ TEST_EQ_STR (array[4], "");
|
||
+ TEST_EQ_P (array[5], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
|
||
+ "characters at beginning, middle and end of string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, " this is\n\n\na test\t\t\t", " \t\n", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 12);
|
||
+ for (i = 0; i < 11; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "");
|
||
+ TEST_EQ_STR (array[1], "");
|
||
+ TEST_EQ_STR (array[2], "");
|
||
+ TEST_EQ_STR (array[3], "this");
|
||
+ TEST_EQ_STR (array[4], "is");
|
||
+ TEST_EQ_STR (array[5], "");
|
||
+ TEST_EQ_STR (array[6], "");
|
||
+ TEST_EQ_STR (array[7], "a");
|
||
+ TEST_EQ_STR (array[8], "test");
|
||
+ TEST_EQ_STR (array[9], "");
|
||
+ TEST_EQ_STR (array[10], "");
|
||
+ TEST_EQ_P (array[11], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with no repeat and multiple different delimiter "
|
||
+ "characters at beginning, middle and end of string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, ": \nthis is\t \n:a test:\n ", "\n :\t", FALSE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 13);
|
||
+ for (i = 0; i < 12; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "");
|
||
+ TEST_EQ_STR (array[1], "");
|
||
+ TEST_EQ_STR (array[2], "");
|
||
+ TEST_EQ_STR (array[3], "this");
|
||
+ TEST_EQ_STR (array[4], "is");
|
||
+ TEST_EQ_STR (array[5], "");
|
||
+ TEST_EQ_STR (array[6], "");
|
||
+ TEST_EQ_STR (array[7], "");
|
||
+ TEST_EQ_STR (array[8], "a");
|
||
+ TEST_EQ_STR (array[9], "test");
|
||
+ TEST_EQ_STR (array[10], "");
|
||
+ TEST_EQ_STR (array[11], "");
|
||
+ TEST_EQ_P (array[12], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
|
||
/* Check that we can split a string treating multiple consecutive
|
||
* matching characters as a single separator to be skipped.
|
||
@@ -645,6 +854,177 @@
|
||
nih_free (array);
|
||
}
|
||
|
||
+ /* Check that we can split a string containing multiple
|
||
+ * occurences of one of the delimiter characters at the
|
||
+ * beginning of the string.
|
||
+ */
|
||
+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter characters at string start");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "\n\nhello", " \t\r\n", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
|
||
+ for (i = 0; i < 1; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_P (array[1], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter characters at string start");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "\n\r hello", " \t\r\n", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
|
||
+ for (i = 0; i < 1; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_P (array[1], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
|
||
+ "characters within string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "hello\n\rworld", " \t\n\r", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
|
||
+ for (i = 0; i < 2; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_STR (array[1], "world");
|
||
+ TEST_EQ_P (array[2], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
|
||
+ "characters within string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "hello\n\r\tworld", " \t\n\r", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
|
||
+ for (i = 0; i < 2; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_STR (array[1], "world");
|
||
+ TEST_EQ_P (array[2], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
|
||
+ "characters at string end");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "hello\n\n\n\n\n\n\n", " \t\r\n", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
|
||
+ for (i = 0; i < 1; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_P (array[1], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
|
||
+ "characters at string end");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL, "hello \r\t\r\t\n ", " \t\r\n", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
|
||
+ for (i = 0; i < 1; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_P (array[1], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
|
||
+ "characters at beginning, middle and end of string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL,
|
||
+ " hello\n\n\n, world\n\n\n",
|
||
+ "\r\t\n ", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
|
||
+ for (i = 0; i < 3; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_STR (array[1], ",");
|
||
+ TEST_EQ_STR (array[2], "world");
|
||
+ TEST_EQ_P (array[3], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
+
|
||
+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
|
||
+ "characters at beginning, middle and end of string");
|
||
+ TEST_ALLOC_FAIL {
|
||
+ array = nih_str_split (NULL,
|
||
+ "\n \r\thello\n\n\r , \n\t\rworld\t \r\n \n",
|
||
+ " \t\n\r", TRUE);
|
||
+
|
||
+ if (test_alloc_failed) {
|
||
+ TEST_EQ_P (array, NULL);
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
|
||
+ for (i = 0; i < 3; i++)
|
||
+ TEST_ALLOC_PARENT (array[i], array);
|
||
+
|
||
+ TEST_EQ_STR (array[0], "hello");
|
||
+ TEST_EQ_STR (array[1], ",");
|
||
+ TEST_EQ_STR (array[2], "world");
|
||
+ TEST_EQ_P (array[3], NULL);
|
||
+
|
||
+ nih_free (array);
|
||
+ }
|
||
|
||
/* Check that we can give an empty string, and end up with a
|
||
* one-element array that only contains a NULL pointer.
|
||
--- libnih-1.0.3.orig/nih/tests/test_file.c
|
||
+++ libnih-1.0.3/nih/tests/test_file.c
|
||
@@ -724,6 +724,25 @@
|
||
return FALSE;
|
||
}
|
||
|
||
+/* find only frodo files */
|
||
+static int
|
||
+my_filter_frodo_file (void *data,
|
||
+ const char *path,
|
||
+ int is_dir)
|
||
+{
|
||
+ char *slash;
|
||
+
|
||
+ if (is_dir)
|
||
+ return FALSE;
|
||
+
|
||
+ slash = strrchr (path, '/');
|
||
+ if (strcmp (slash, "/frodo"))
|
||
+ return TRUE;
|
||
+
|
||
+ return FALSE;
|
||
+}
|
||
+
|
||
+
|
||
static int logger_called = 0;
|
||
|
||
static int
|
||
@@ -905,6 +924,48 @@
|
||
TEST_EQ_STR (v->path, filename);
|
||
|
||
nih_free (visited);
|
||
+
|
||
+ /* Try also inverse filter */
|
||
+ TEST_ALLOC_SAFE {
|
||
+ visitor_called = 0;
|
||
+ visited = nih_list_new (NULL);
|
||
+ }
|
||
+
|
||
+ ret = nih_dir_walk (dirname, my_filter_frodo_file,
|
||
+ my_visitor, NULL, &ret);
|
||
+
|
||
+ TEST_EQ (ret, 0);
|
||
+ TEST_EQ (visitor_called, 4);
|
||
+
|
||
+ v = (Visited *)visited->next;
|
||
+ TEST_EQ (v->data, &ret);
|
||
+ TEST_EQ_STR (v->dirname, dirname);
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/bar");
|
||
+ TEST_EQ_STR (v->path, filename);
|
||
+
|
||
+ v = (Visited *)v->entry.next;
|
||
+ TEST_EQ (v->data, &ret);
|
||
+ TEST_EQ_STR (v->dirname, dirname);
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/bar/frodo");
|
||
+ TEST_EQ_STR (v->path, filename);
|
||
+
|
||
+ v = (Visited *)v->entry.next;
|
||
+ TEST_EQ (v->data, &ret);
|
||
+ TEST_EQ_STR (v->dirname, dirname);
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/baz");
|
||
+ TEST_EQ_STR (v->path, filename);
|
||
+
|
||
+ v = (Visited *)v->entry.next;
|
||
+ TEST_EQ (v->data, &ret);
|
||
+ TEST_EQ_STR (v->dirname, dirname);
|
||
+ strcpy (filename, dirname);
|
||
+ strcat (filename, "/frodo");
|
||
+ TEST_EQ_STR (v->path, filename);
|
||
+
|
||
+ nih_free (visited);
|
||
}
|
||
|
||
|
||
--- libnih-1.0.3.orig/debian/control
|
||
+++ libnih-1.0.3/debian/control
|
||
@@ -0,0 +1,81 @@
|
||
+Source: libnih
|
||
+Section: libs
|
||
+Priority: required
|
||
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||
+XSBC-Original-Maintainer: Scott James Remnant <scott@netsplit.com>
|
||
+Standards-Version: 3.9.4
|
||
+Build-Depends: debhelper (>= 9), pkg-config (>= 0.22), libdbus-1-dev (>= 1.4), libexpat1-dev (>= 2.0.0), dbus (>= 1.4), libc6-dev (>= 2.15~) | libc6.1-dev (>= 2.15~),
|
||
+ dh-autoreconf, autopoint, dpkg-dev (>= 1.16.1~)
|
||
+# To cross build this package also needs: libdbus-1-dev:native (>= 1.4), libexpat1-dev:native (>= 2.0.0)
|
||
+# But :native build-deps are not supported yet, so instead one can do
|
||
+# $ apt-get build-dep libnih
|
||
+# $ apt-get build-dep libnih -aarmhf
|
||
+# instead to get all required build-deps
|
||
+Vcs-Bzr: lp:ubuntu/libnih
|
||
+XSC-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/libnih.git
|
||
+XSC-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/libnih.git;a=summary
|
||
+Homepage: https://launchpad.net/libnih
|
||
+
|
||
+Package: libnih1
|
||
+Architecture: any
|
||
+Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends}, ${misc:Depends}
|
||
+Multi-Arch: same
|
||
+Description: NIH Utility Library
|
||
+ libnih is a light-weight "standard library" of C functions to ease the
|
||
+ development of other libraries and applications, especially those
|
||
+ normally found in /lib.
|
||
+ .
|
||
+ This package contains the shared library.
|
||
+
|
||
+Package: libnih-dev
|
||
+Priority: optional
|
||
+Section: libdevel
|
||
+Architecture: any
|
||
+Multi-Arch: same
|
||
+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||
+Description: NIH Utility Library (development files)
|
||
+ libnih is a light-weight "standard library" of C functions to ease the
|
||
+ development of other libraries and applications, especially those
|
||
+ normally found in /lib.
|
||
+ .
|
||
+ This package contains the static library and C header files which are
|
||
+ needed for developing software using libnih.
|
||
+
|
||
+Package: libnih-dbus1
|
||
+Architecture: any
|
||
+Pre-Depends: ${misc:Pre-Depends}
|
||
+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||
+Multi-Arch: same
|
||
+Description: NIH D-Bus Bindings Library
|
||
+ libnih-dbus is a D-Bus bindings library that integrates with the main
|
||
+ loop provided by libnih.
|
||
+ .
|
||
+ This package contains the shared library.
|
||
+
|
||
+Package: libnih-dbus-dev
|
||
+Priority: optional
|
||
+Section: libdevel
|
||
+Architecture: any
|
||
+Multi-Arch: same
|
||
+Depends: libnih-dbus1 (= ${binary:Version}), libnih-dev (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
|
||
+Recommends: nih-dbus-tool (= ${binary:Version})
|
||
+Description: NIH D-Bus Bindings Library (development files)
|
||
+ libnih-dbus is a D-Bus bindings library that integrates with the main
|
||
+ loop provided by libnih.
|
||
+ .
|
||
+ This package contains the static library and C header files which are
|
||
+ needed for developing software using libnih-dbus.
|
||
+
|
||
+Package: nih-dbus-tool
|
||
+Section: devel
|
||
+Architecture: any
|
||
+Multi-Arch: foreign
|
||
+Depends: ${shlibs:Depends}, ${misc:Depends}
|
||
+Recommends: libnih-dbus-dev (= ${binary:Version})
|
||
+Description: NIH D-Bus Binding Tool
|
||
+ nih-dbus-tool generates C source code from the D-Bus Introspection XML
|
||
+ data provided by most services; either to make implementing the
|
||
+ described objects in C programs or to make proxying to the described
|
||
+ remote objects easier.
|
||
+ .
|
||
+ The generated code requires libnih-dbus-dev to be compiled.
|
||
--- libnih-1.0.3.orig/debian/libnih-dev.install
|
||
+++ libnih-1.0.3/debian/libnih-dev.install
|
||
@@ -0,0 +1,6 @@
|
||
+lib/*/libnih.a
|
||
+lib/*/libnih.so
|
||
+usr/include/libnih.h
|
||
+usr/include/nih
|
||
+usr/lib/*/pkgconfig/libnih.pc
|
||
+usr/share/aclocal/libnih.m4
|
||
--- libnih-1.0.3.orig/debian/libnih1.docs
|
||
+++ libnih-1.0.3/debian/libnih1.docs
|
||
@@ -0,0 +1,3 @@
|
||
+AUTHORS
|
||
+NEWS
|
||
+README
|
||
--- libnih-1.0.3.orig/debian/libnih-dbus1.install
|
||
+++ libnih-1.0.3/debian/libnih-dbus1.install
|
||
@@ -0,0 +1 @@
|
||
+lib/*/libnih-dbus.so.*
|
||
--- libnih-1.0.3.orig/debian/libnih1.install
|
||
+++ libnih-1.0.3/debian/libnih1.install
|
||
@@ -0,0 +1 @@
|
||
+lib/*/libnih.so.*
|
||
--- libnih-1.0.3.orig/debian/rules
|
||
+++ libnih-1.0.3/debian/rules
|
||
@@ -0,0 +1,54 @@
|
||
+#!/usr/bin/make -f
|
||
+
|
||
+include /usr/share/dpkg/architecture.mk
|
||
+
|
||
+%:
|
||
+ dh $@ --with autoreconf
|
||
+
|
||
+
|
||
+CFLAGS := -Wall -fstack-protector -fPIE $(shell dpkg-buildflags --get CFLAGS)
|
||
+LDFLAGS := -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -pie $(shell dpkg-buildflags --get LDFLAGS)
|
||
+
|
||
+override_dh_auto_configure:
|
||
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
|
||
+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
||
+ --libdir=/lib/$(DEB_HOST_MULTIARCH)
|
||
+else
|
||
+ dh_auto_configure -B build-dbus-tool/ -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
||
+ --libdir=/lib/$(DEB_BUILD_MULTIARCH) \
|
||
+ --host=$(DEB_BUILD_GNU_TYPE)
|
||
+ dh_auto_build -B build-dbus-tool/ --parallel
|
||
+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
||
+ NIH_DBUS_TOOL=$(CURDIR)/build-dbus-tool/nih-dbus-tool/nih-dbus-tool \
|
||
+ --libdir=/lib/$(DEB_HOST_MULTIARCH)
|
||
+endif
|
||
+
|
||
+override_dh_auto_build:
|
||
+ dh_auto_build --parallel
|
||
+
|
||
+override_dh_auto_test:
|
||
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
|
||
+ dh_auto_test --parallel
|
||
+endif
|
||
+
|
||
+override_dh_auto_install:
|
||
+ dh_auto_install -- pkgconfigdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
|
||
+
|
||
+override_dh_makeshlibs:
|
||
+ dh_makeshlibs -plibnih1 -V 'libnih1 (>= 1.0.0)'
|
||
+ dh_makeshlibs -plibnih-dbus1 -V 'libnih-dbus1 (>= 1.0.0)'
|
||
+ dh_makeshlibs -Nlibnih1 -Nlibnih-dbus1
|
||
+
|
||
+override_dh_shlibdeps:
|
||
+ dh_shlibdeps
|
||
+ sed -i 's/2\.14/2.15/' debian/*.substvars
|
||
+ sed -i 's/>= 2.15)/>= 2.15~)/g' debian/*.substvars
|
||
+
|
||
+
|
||
+# Symlink /usr/share/doc directories together
|
||
+override_dh_installdocs:
|
||
+ dh_installdocs --link-doc=libnih1
|
||
+
|
||
+override_dh_clean:
|
||
+ rm -rf build-dbus-tool/
|
||
+ dh_clean
|
||
--- libnih-1.0.3.orig/debian/compat
|
||
+++ libnih-1.0.3/debian/compat
|
||
@@ -0,0 +1 @@
|
||
+9
|
||
--- libnih-1.0.3.orig/debian/nih-dbus-tool.install
|
||
+++ libnih-1.0.3/debian/nih-dbus-tool.install
|
||
@@ -0,0 +1,2 @@
|
||
+usr/bin/nih-dbus-tool
|
||
+usr/share/man/man1/nih-dbus-tool.1
|
||
--- libnih-1.0.3.orig/debian/copyright
|
||
+++ libnih-1.0.3/debian/copyright
|
||
@@ -0,0 +1,18 @@
|
||
+This is the Ubuntu package of libnih, the NIH Utility Library.
|
||
+
|
||
+Copyright © 2009 Canonical Ltd.
|
||
+Copyright © 2009 Scott James Remnant <scott@netsplit.com>
|
||
+
|
||
+Licence:
|
||
+
|
||
+This program is free software; you can redistribute it and/or modify
|
||
+it under the terms of the GNU General Public License version 2, as
|
||
+published by the Free Software Foundation.
|
||
+
|
||
+This program is distributed in the hope that it will be useful, but
|
||
+WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
+General Public License for more details.
|
||
+
|
||
+On Ubuntu systems, the complete text of the GNU General Public License
|
||
+can be found in ‘/usr/share/common-licenses/GPL-2’.
|
||
--- libnih-1.0.3.orig/debian/libnih-dbus1.postinst
|
||
+++ libnih-1.0.3/debian/libnih-dbus1.postinst
|
||
@@ -0,0 +1,53 @@
|
||
+#!/bin/sh
|
||
+
|
||
+set -e
|
||
+
|
||
+if [ "$1" = configure ]; then
|
||
+ # A dependent library of Upstart has changed, so restart Upstart
|
||
+ # such that it can safely unmount the root filesystem (LP: #740390)
|
||
+
|
||
+ # Query running version of Upstart, but only when we know
|
||
+ # that initctl will work.
|
||
+ #
|
||
+ # The calculated version string may be the null string if
|
||
+ # Upstart is not running (where for example an alternative
|
||
+ # init is running outside a chroot environment) or if the
|
||
+ # query failed for some reason. However, the version check
|
||
+ # below handles a null version string correctly.
|
||
+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
|
||
+ awk '{print $3}'|tr -d ')' || :)
|
||
+
|
||
+ if ischroot; then
|
||
+ # Do not honour re-exec when requested from within a
|
||
+ # chroot since:
|
||
+ #
|
||
+ # (a) The version of Upstart outside might not support it.
|
||
+ # (b) An isolated environment such as a chroot should
|
||
+ # not be able to modify its containing environment.
|
||
+ #
|
||
+ # A sufficiently new Upstart will actually handle a re-exec
|
||
+ # request coming from telinit within a chroot correctly (by
|
||
+ # doing nothing) but it's simple enough to perform the check
|
||
+ # here and save Upstart the effort.
|
||
+ :
|
||
+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
|
||
+ # We are not running inside a chroot and the running version
|
||
+ # of Upstart supports stateful re-exec, so we can
|
||
+ # restart immediately.
|
||
+ #
|
||
+ # XXX: Note that the check on the running version must
|
||
+ # remain *indefinitely* since it's the only safe way to
|
||
+ # know if stateful re-exec is supported: simply checking
|
||
+ # packaged version numbers is not sufficient since
|
||
+ # the package could be upgraded multiple times without a
|
||
+ # reboot.
|
||
+ telinit u || :
|
||
+ else
|
||
+ # Before we shutdown or reboot, we need to re-exec so that we
|
||
+ # can safely remount the root filesystem; we can't just do that
|
||
+ # here because we lose state.
|
||
+ touch /var/run/init.upgraded || :
|
||
+ fi
|
||
+fi
|
||
+
|
||
+#DEBHELPER#
|
||
--- libnih-1.0.3.orig/debian/changelog.DEBIAN
|
||
+++ libnih-1.0.3/debian/changelog.DEBIAN
|
||
@@ -0,0 +1,118 @@
|
||
+libnih (1.0.3-4) unstable; urgency=low
|
||
+
|
||
+ * Rebuild for new libc to update versioned dependency; this comes from
|
||
+ the __abort_msg dependency, dpkg-shlibs needs overriding since this is
|
||
+ actually a weak link, but this rebuild fixes things for now.
|
||
+ Closes: #625257.
|
||
+
|
||
+ -- Scott James Remnant <scott@netsplit.com> Mon, 02 May 2011 15:08:33 -0700
|
||
+
|
||
+libnih (1.0.3-3) unstable; urgency=low
|
||
+
|
||
+ * New maintainer. Closes: #624442.
|
||
+
|
||
+ -- Scott James Remnant <scott@netsplit.com> Thu, 28 Apr 2011 14:26:05 -0700
|
||
+
|
||
+libnih (1.0.3-2) unstable; urgency=low
|
||
+
|
||
+ * Bump build dependency on libdbus-1-dev and dbus to (>= 1.4) for Unix file
|
||
+ descriptor passing support.
|
||
+
|
||
+ -- Michael Biebl <biebl@debian.org> Thu, 10 Feb 2011 20:25:18 +0100
|
||
+
|
||
+libnih (1.0.3-1ubuntu1) natty; urgency=low
|
||
+
|
||
+ * Rebuild with libc6-dev (>= 2.13~).
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
|
||
+
|
||
+libnih (1.0.3-1) unstable; urgency=low
|
||
+
|
||
+ * New upstream release.
|
||
+ * Bump debhelper compatibility level to 8 and update build dependency
|
||
+ accordingly.
|
||
+
|
||
+ -- Michael Biebl <biebl@debian.org> Mon, 07 Feb 2011 22:19:13 +0100
|
||
+
|
||
+libnih (1.0.2-2) unstable; urgency=low
|
||
+
|
||
+ * Install library development files to /usr/lib and not /lib.
|
||
+ * Remove libtool *.la files as there are no reverse dependencies referencing
|
||
+ them.
|
||
+ * Bump Standards-Version to 3.9.1. No further changes.
|
||
+
|
||
+ -- Michael Biebl <biebl@debian.org> Sun, 02 Jan 2011 21:09:40 +0100
|
||
+
|
||
+libnih (1.0.2-1ubuntu3) natty; urgency=low
|
||
+
|
||
+ * Disable some tests on ppc64 to build an initial package.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
|
||
+
|
||
+libnih (1.0.2-1ubuntu2) maverick; urgency=low
|
||
+
|
||
+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
|
||
+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
|
||
+
|
||
+ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
|
||
+
|
||
+libnih (1.0.2-1ubuntu1) maverick; urgency=low
|
||
+
|
||
+ * Rebuild with libc6-dev (>= 2.12~), after checking that
|
||
+ __abort_msg is available with the same signature in eglibc 2.12.
|
||
+ * Don't build the testsuite with -fPIE on armel; LP: #398403.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
|
||
+
|
||
+libnih (1.0.2-1) unstable; urgency=low
|
||
+
|
||
+ * Initial upload to Debian. Closes: #585071
|
||
+ * Based on the Ubuntu package for Lucid done by Scott James Remnant with the
|
||
+ following changes:
|
||
+ - Switch packages to priority optional.
|
||
+ - Use binary:Version instead of Source-Version.
|
||
+ - Bump Standards-Version to 3.8.4.
|
||
+ - Add Homepage and Vcs-* fields.
|
||
+ - Don't symlink /usr/share/doc directories.
|
||
+ - Refer to versioned /usr/share/common-licenses/GPL-2 file in
|
||
+ debian/copyright.
|
||
+ - List all symbols explicitly instead of using a wildcard and add symbols
|
||
+ introduced in 1.0.1.
|
||
+ - Use the symbols files to create the correct version info instead of
|
||
+ specifying it manually via shlibs.
|
||
+ - Switch to source format 3.0 (quilt).
|
||
+ - Add watch file to track new upstream releases.
|
||
+
|
||
+ -- Michael Biebl <biebl@debian.org> Sun, 13 Jun 2010 23:36:52 +0200
|
||
+
|
||
+libnih (1.0.1-1) lucid; urgency=low
|
||
+
|
||
+ * New upstream release:
|
||
+ - Add missing __nih_* symbols to linker version script so that we
|
||
+ can link Upstart's test suite.
|
||
+ - Glibc __abort_msg symbol now only linked as a weak symbol.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
|
||
+
|
||
+libnih (1.0.0-2build1) lucid; urgency=low
|
||
+
|
||
+ * Rebuild to pick up relaxed dependency on libc6, after checking that
|
||
+ __abort_msg is available with the same signature in eglibc 2.11.
|
||
+ LP: #508702.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
|
||
+
|
||
+libnih (1.0.0-2) lucid; urgency=low
|
||
+
|
||
+ * debian/control: Add build-dependency on dbus so the test suite can
|
||
+ pass on the buildds.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
|
||
+
|
||
+libnih (1.0.0-1) lucid; urgency=low
|
||
+
|
||
+ * First upstream release. Previously this code was included in the
|
||
+ upstart, mountall and ureadahead source packages.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
|
||
+
|
||
--- libnih-1.0.3.orig/debian/libnih1.symbols
|
||
+++ libnih-1.0.3/debian/libnih1.symbols
|
||
@@ -0,0 +1,2 @@
|
||
+libnih.so.1 libnih1 #MINVER#
|
||
+ *@LIBNIH_1_0 1.0.0
|
||
--- libnih-1.0.3.orig/debian/libnih-dbus-dev.install
|
||
+++ libnih-1.0.3/debian/libnih-dbus-dev.install
|
||
@@ -0,0 +1,5 @@
|
||
+lib/*/libnih-dbus.a
|
||
+lib/*/libnih-dbus.so
|
||
+usr/include/libnih-dbus.h
|
||
+usr/include/nih-dbus
|
||
+usr/lib/*/pkgconfig/libnih-dbus.pc
|
||
--- libnih-1.0.3.orig/debian/libnih1.postinst
|
||
+++ libnih-1.0.3/debian/libnih1.postinst
|
||
@@ -0,0 +1,53 @@
|
||
+#!/bin/sh
|
||
+
|
||
+set -e
|
||
+
|
||
+if [ "$1" = configure ]; then
|
||
+ # A dependent library of Upstart has changed, so restart Upstart
|
||
+ # such that it can safely unmount the root filesystem (LP: #740390)
|
||
+
|
||
+ # Query running version of Upstart, but only when we know
|
||
+ # that initctl will work.
|
||
+ #
|
||
+ # The calculated version string may be the null string if
|
||
+ # Upstart is not running (where for example an alternative
|
||
+ # init is running outside a chroot environment) or if the
|
||
+ # query failed for some reason. However, the version check
|
||
+ # below handles a null version string correctly.
|
||
+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
|
||
+ awk '{print $3}'|tr -d ')' || :)
|
||
+
|
||
+ if ischroot; then
|
||
+ # Do not honour re-exec when requested from within a
|
||
+ # chroot since:
|
||
+ #
|
||
+ # (a) The version of Upstart outside might not support it.
|
||
+ # (b) An isolated environment such as a chroot should
|
||
+ # not be able to modify its containing environment.
|
||
+ #
|
||
+ # A sufficiently new Upstart will actually handle a re-exec
|
||
+ # request coming from telinit within a chroot correctly (by
|
||
+ # doing nothing) but it's simple enough to perform the check
|
||
+ # here and save Upstart the effort.
|
||
+ :
|
||
+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
|
||
+ # We are not running inside a chroot and the running version
|
||
+ # of Upstart supports stateful re-exec, so we can
|
||
+ # restart immediately.
|
||
+ #
|
||
+ # XXX: Note that the check on the running version must
|
||
+ # remain *indefinitely* since it's the only safe way to
|
||
+ # know if stateful re-exec is supported: simply checking
|
||
+ # packaged version numbers is not sufficient since
|
||
+ # the package could be upgraded multiple times without a
|
||
+ # reboot.
|
||
+ telinit u || :
|
||
+ else
|
||
+ # Before we shutdown or reboot, we need to re-exec so that we
|
||
+ # can safely remount the root filesystem; we can't just do that
|
||
+ # here because we lose state.
|
||
+ touch /var/run/init.upgraded || :
|
||
+ fi
|
||
+fi
|
||
+
|
||
+#DEBHELPER#
|
||
--- libnih-1.0.3.orig/debian/libnih-dbus1.symbols
|
||
+++ libnih-1.0.3/debian/libnih-dbus1.symbols
|
||
@@ -0,0 +1,2 @@
|
||
+libnih-dbus.so.1 libnih-dbus1 #MINVER#
|
||
+ *@LIBNIH_DBUS_1_0 1.0.0
|
||
--- libnih-1.0.3.orig/debian/changelog
|
||
+++ libnih-1.0.3/debian/changelog
|
||
@@ -0,0 +1,213 @@
|
||
+libnih (1.0.3-4ubuntu16) raring; urgency=low
|
||
+
|
||
+ * debian/{libnih1.postinst,libnih-dbus1.postinst}: Force an upgrade to
|
||
+ restart Upstart (to pick up new package version) if the running
|
||
+ instance supports it.
|
||
+ * Merge of important fixes from lp:~upstart-devel/libnih/nih
|
||
+ (LP: #776532, LP: #777097, LP: #834813, LP: #1123588).
|
||
+
|
||
+ -- James Hunt <james.hunt@ubuntu.com> Thu, 14 Mar 2013 09:14:22 +0000
|
||
+
|
||
+libnih (1.0.3-4ubuntu15) raring; urgency=low
|
||
+
|
||
+ * Enable cross-building, sans adding :native build-dependencies.
|
||
+ See comments in debian/control.
|
||
+ * Lintian fixes.
|
||
+
|
||
+ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 08 Jan 2013 15:38:58 +0000
|
||
+
|
||
+libnih (1.0.3-4ubuntu14) raring; urgency=low
|
||
+
|
||
+ * Update dbus code generator to allow for empty lists for type 'as'.
|
||
+ This drops the != NULL check for NULL terminated arrays and moves the
|
||
+ iteration loop inside an 'if' statement.
|
||
+
|
||
+ -- Stéphane Graber <stgraber@ubuntu.com> Thu, 13 Dec 2012 10:00:27 -0500
|
||
+
|
||
+libnih (1.0.3-4ubuntu13) raring; urgency=low
|
||
+
|
||
+ [ Petr Lautrbach <plautrba@redhat.com>, Dmitrijs Ledkovs ]
|
||
+ * Fallback to lstat, if dirent.d_type is not available (not portable)
|
||
+ (LP: #672643) (Closes: #695604)
|
||
+
|
||
+ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 11 Dec 2012 17:26:52 +0000
|
||
+
|
||
+libnih (1.0.3-4ubuntu12) raring; urgency=low
|
||
+
|
||
+ * nih/logging.c: Use our own __nih_abort_msg rather than the (e)glibc
|
||
+ private symbol __abort_msg to avoid upgrade issues (LP: #997359).
|
||
+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
|
||
+
|
||
+ -- James Hunt <james.hunt@ubuntu.com> Thu, 25 Oct 2012 10:57:30 +0100
|
||
+
|
||
+libnih (1.0.3-4ubuntu11) quantal; urgency=low
|
||
+
|
||
+ * Addition of debian/libnih-dbus1.postinst and
|
||
+ debian/libnih1.postinst to force Upstart re-exec on shutdown
|
||
+ to avoid unmounting disks uncleanly (LP: #740390).
|
||
+
|
||
+ -- James Hunt <james.hunt@ubuntu.com> Wed, 03 Oct 2012 16:49:40 +0100
|
||
+
|
||
+libnih (1.0.3-4ubuntu10) quantal; urgency=low
|
||
+
|
||
+ * Update config.guess,sub for aarch64
|
||
+
|
||
+ -- Wookey <wookey@wookware.org> Mon, 01 Oct 2012 12:57:05 +0100
|
||
+
|
||
+libnih (1.0.3-4ubuntu9) precise; urgency=low
|
||
+
|
||
+ * Mark the nih-dbus-tool package Multi-Arch: foreign so it can be used as
|
||
+ a build-dependency of upstart when cross-building.
|
||
+
|
||
+ -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 15 Feb 2012 22:57:50 -0800
|
||
+
|
||
+libnih (1.0.3-4ubuntu8) precise; urgency=low
|
||
+
|
||
+ * libnih1 needs a versioned Pre-Depend on libc6 instead of just a Depend,
|
||
+ because libc6 itself uses runlevel from the upstart package in its
|
||
+ preinst, which in turn uses libnih1, which needs to be loadable (i.e.,
|
||
+ its symbol references resolve). We therefore need to ensure that
|
||
+ libnih1's dependencies are always unpacked before libnih1 itself is
|
||
+ unpacked. While having something further up the stack (such as upstart,
|
||
+ or something on top of upstart) being marked Essential: yes and with the
|
||
+ necessary pre-depends would let apt handle this for us with its
|
||
+ "immediate configuration" support, but for various reasons we don't want
|
||
+ to make upstart essential. LP: #508083.
|
||
+
|
||
+ -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 10 Feb 2012 12:13:25 -0800
|
||
+
|
||
+libnih (1.0.3-4ubuntu7) precise; urgency=low
|
||
+
|
||
+ * Relax dependency on libc6.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 23:43:21 +0100
|
||
+
|
||
+libnih (1.0.3-4ubuntu6) precise; urgency=low
|
||
+
|
||
+ * Rebuild with libc6-dev (>= 2.15~).
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 21:48:57 +0100
|
||
+
|
||
+libnih (1.0.3-4ubuntu5) precise; urgency=low
|
||
+
|
||
+ * Mark libnih-dev and libnih-dbus-dev Multi-Arch: same as well.
|
||
+
|
||
+ -- Steve Langasek <steve.langasek@ubuntu.com> Sun, 06 Nov 2011 14:45:07 -0800
|
||
+
|
||
+libnih (1.0.3-4ubuntu4) precise; urgency=low
|
||
+
|
||
+ * Make libnih1 and libnih-dbus1 installable using multi-arch.
|
||
+
|
||
+ -- James Hunt <james.hunt@ubuntu.com> Tue, 01 Nov 2011 14:25:09 -0400
|
||
+
|
||
+libnih (1.0.3-4ubuntu3) precise; urgency=low
|
||
+
|
||
+ * Build to install with eglibc-2.15.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Fri, 14 Oct 2011 14:05:03 +0200
|
||
+
|
||
+libnih (1.0.3-4ubuntu2) oneiric; urgency=low
|
||
+
|
||
+ * Use dpkg-buildflags to get the build flags.
|
||
+ * Build with the default build flags, don't hard-code -Os. LP: #791315.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jun 2011 16:45:42 +0200
|
||
+
|
||
+libnih (1.0.3-4ubuntu1) oneiric; urgency=low
|
||
+
|
||
+ * Merge from debian unstable. Retained Ubuntu Build-Depends and Priority.
|
||
+
|
||
+ -- James Hunt <james.hunt@ubuntu.com> Mon, 23 May 2011 19:28:19 +0100
|
||
+
|
||
+libnih (1.0.3-1ubuntu1) natty; urgency=low
|
||
+
|
||
+ * Rebuild with libc6-dev (>= 2.13~).
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
|
||
+
|
||
+libnih (1.0.3-1) natty; urgency=low
|
||
+
|
||
+ * New upstream release:
|
||
+ - Added support for passing file descriptors over D-Bus to nih-dbus-tool
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Thu, 23 Dec 2010 22:28:24 +0000
|
||
+
|
||
+libnih (1.0.2-2) natty; urgency=low
|
||
+
|
||
+ * Revert the previous upload. It is never acceptable to simply disable
|
||
+ tests, especially when it turns out that the test that was disabled
|
||
+ was failing because there was a serious bug that could cause kernel
|
||
+ panics for people on boot.
|
||
+
|
||
+ Test suites are here for a reason.
|
||
+
|
||
+ * Bumped libdbus Build-Dependency to the version with the bug fix that
|
||
+ caused the test suite to fail.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Wed, 08 Dec 2010 19:40:15 +0000
|
||
+
|
||
+libnih (1.0.2-1ubuntu3) natty; urgency=low
|
||
+
|
||
+ * Disable some tests on ppc64 to build an initial package.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
|
||
+
|
||
+libnih (1.0.2-1ubuntu2) maverick; urgency=low
|
||
+
|
||
+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
|
||
+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
|
||
+
|
||
+ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
|
||
+
|
||
+libnih (1.0.2-1ubuntu1) maverick; urgency=low
|
||
+
|
||
+ * Rebuild with libc6-dev (>= 2.12~), after checking that
|
||
+ __abort_msg is available with the same signature in eglibc 2.12.
|
||
+ * Don't build the testsuite with -fPIE on armel; LP: #398403.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
|
||
+
|
||
+libnih (1.0.2-1) maverick; urgency=low
|
||
+
|
||
+ * New upstream release:
|
||
+ - Rename AC_COPYRIGHT to NIH_COPYRIGHT to avoid conflict with other
|
||
+ packages.
|
||
+ - Add serial to libnih.m4
|
||
+ - Add NIH_WITH_LOCAL_LIBNIH macro.
|
||
+
|
||
+ * Fix use of ${Source-Version} to be ${binary:Version}
|
||
+ * Add debian/source/format with "1.0" to be future compatible.
|
||
+ * Bump standards version.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Tue, 27 Apr 2010 10:49:55 -0700
|
||
+
|
||
+libnih (1.0.1-1) lucid; urgency=low
|
||
+
|
||
+ * New upstream release:
|
||
+ - Add missing __nih_* symbols to linker version script so that we
|
||
+ can link Upstart's test suite.
|
||
+ - Glibc __abort_msg symbol now only linked as a weak symbol.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
|
||
+
|
||
+libnih (1.0.0-2build1) lucid; urgency=low
|
||
+
|
||
+ * Rebuild to pick up relaxed dependency on libc6, after checking that
|
||
+ __abort_msg is available with the same signature in eglibc 2.11.
|
||
+ LP: #508702.
|
||
+
|
||
+ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
|
||
+
|
||
+libnih (1.0.0-2) lucid; urgency=low
|
||
+
|
||
+ * debian/control: Add build-dependency on dbus so the test suite can
|
||
+ pass on the buildds.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
|
||
+
|
||
+libnih (1.0.0-1) lucid; urgency=low
|
||
+
|
||
+ * First upstream release. Previously this code was included in the
|
||
+ upstart, mountall and ureadahead source packages.
|
||
+
|
||
+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
|
||
--- libnih-1.0.3.orig/debian/source/format
|
||
+++ libnih-1.0.3/debian/source/format
|
||
@@ -0,0 +1 @@
|
||
+1.0
|
||
--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.h
|
||
+++ libnih-1.0.3/nih-dbus/dbus_proxy.h
|
||
@@ -146,14 +146,14 @@
|
||
const char *name, const char *path,
|
||
NihDBusLostHandler lost_handler,
|
||
void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy,
|
||
const NihDBusInterface *interface,
|
||
const char *name,
|
||
NihDBusSignalHandler handler,
|
||
void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus/dbus_object.h
|
||
+++ libnih-1.0.3/nih-dbus/dbus_object.h
|
||
@@ -61,8 +61,7 @@
|
||
DBusConnection *connection,
|
||
const char *path,
|
||
const NihDBusInterface **interfaces,
|
||
- void *data)
|
||
- __attribute__ ((malloc));
|
||
+ void *data);
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus/dbus_util.h
|
||
+++ libnih-1.0.3/nih-dbus/dbus_util.h
|
||
@@ -26,7 +26,7 @@
|
||
NIH_BEGIN_EXTERN
|
||
|
||
char *nih_dbus_path (const void *parent, const char *root, ...)
|
||
- __attribute__ ((sentinel, warn_unused_result, malloc));
|
||
+ __attribute__ ((sentinel, warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus/dbus_pending_data.h
|
||
+++ libnih-1.0.3/nih-dbus/dbus_pending_data.h
|
||
@@ -104,7 +104,7 @@
|
||
NihDBusReplyHandler handler,
|
||
NihDBusErrorHandler error_handler,
|
||
void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.c
|
||
+++ libnih-1.0.3/nih-dbus/dbus_proxy.c
|
||
@@ -46,11 +46,11 @@
|
||
__attribute__ ((warn_unused_result));
|
||
static char *nih_dbus_proxy_name_rule (const void *parent,
|
||
NihDBusProxy *proxy)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static int nih_dbus_proxy_signal_destroy (NihDBusProxySignal *proxied);
|
||
static char *nih_dbus_proxy_signal_rule (const void *parent,
|
||
NihDBusProxySignal *proxied)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
/* Prototypes for handler functions */
|
||
static DBusHandlerResult nih_dbus_proxy_name_owner_changed (DBusConnection *connection,
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/symbol.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/symbol.c
|
||
@@ -40,10 +40,10 @@
|
||
/* Prototypes for static functions */
|
||
static char *symbol_strcat_interface (char **str, const void *parent,
|
||
const char *format, ...)
|
||
- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
|
||
static char *symbol_strcat_title (char **str, const void *parent,
|
||
const char *format, ...)
|
||
- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
|
||
+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
|
||
|
||
|
||
/**
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/demarshal.h
|
||
@@ -37,7 +37,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/symbol.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/symbol.h
|
||
@@ -28,22 +28,22 @@
|
||
int symbol_valid (const char *symbol);
|
||
|
||
char *symbol_from_name (const void *parent, const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char *symbol_impl (const void *parent, const char *prefix,
|
||
const char *interface_name, const char *name,
|
||
const char *postfix)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char *symbol_extern (const void *parent, const char *prefix,
|
||
const char *interface_symbol, const char *midfix,
|
||
const char *symbol, const char *postfix)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char *symbol_typedef (const void *parent, const char *prefix,
|
||
const char *interface_symbol, const char *midfix,
|
||
const char *symbol, const char *postfix)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/output.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/output.h
|
||
@@ -35,9 +35,9 @@
|
||
__attribute__ ((warn_unused_result));
|
||
|
||
char *output_preamble (const void *parent, const char *path)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char *output_sentinel (const void *parent, const char *path)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/parse.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/parse.h
|
||
@@ -95,7 +95,7 @@
|
||
|
||
ParseStack *parse_stack_push (const void *parent, NihList *stack,
|
||
ParseStackType type, void *data)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
ParseStack *parse_stack_top (NihList *stack);
|
||
|
||
void parse_start_tag (XML_Parser xmlp, const char *tag,
|
||
@@ -103,7 +103,7 @@
|
||
void parse_end_tag (XML_Parser xmlp, const char *tag);
|
||
|
||
Node * parse_xml (const void *parent, int fd, const char *filename)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/type.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/type.h
|
||
@@ -94,43 +94,43 @@
|
||
|
||
char * type_of (const void * parent,
|
||
DBusSignatureIter *iter)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
TypeVar * type_var_new (const void *parent, const char *type,
|
||
const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_var_to_string (const void *parent, TypeVar *var)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_var_layout (const void *parent, NihList *vars)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
TypeFunc * type_func_new (const void *parent, const char *type,
|
||
const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_func_to_string (const void *parent, TypeFunc *func)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_func_to_typedef (const void *parent, TypeFunc *func)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_func_layout (const void *parent, NihList *funcs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
TypeStruct *type_struct_new (const void *parent, const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_struct_to_string (const void *parent, TypeStruct *structure)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * type_to_const (char **type, const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_to_pointer (char **type, const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_to_static (char **type, const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * type_to_extern (char **type, const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * type_strcat_assert (char **block, const void *parent,
|
||
TypeVar *var, TypeVar *prev, TypeVar *next)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/argument.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/argument.h
|
||
@@ -61,7 +61,7 @@
|
||
|
||
Argument *argument_new (const void *parent, const char *name,
|
||
const char *type, NihDBusArgDir direction)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int argument_start_tag (XML_Parser xmlp, const char *tag,
|
||
char * const *attr)
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/indent.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/indent.h
|
||
@@ -26,9 +26,9 @@
|
||
NIH_BEGIN_EXTERN
|
||
|
||
char *indent (char **str, const void *parent, int level)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char *comment (char **str, const void *parent)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/main.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/main.c
|
||
@@ -52,10 +52,10 @@
|
||
/* Prototypes for local functions */
|
||
char *source_file_path (const void *parent, const char *output_path,
|
||
const char *filename)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char *header_file_path (const void *parent, const char *output_path,
|
||
const char *filename)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
/**
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/signal.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/signal.h
|
||
@@ -58,7 +58,7 @@
|
||
int signal_name_valid (const char *name);
|
||
|
||
Signal * signal_new (const void *parent, const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int signal_start_tag (XML_Parser xmlp, const char *tag,
|
||
char * const *attr)
|
||
@@ -76,18 +76,18 @@
|
||
char * signal_object_function (const void *parent, const char *prefix,
|
||
Interface *interface, Signal *signal,
|
||
NihList *prototypes, NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * signal_proxy_function (const void *parent, const char *prefix,
|
||
Interface *interface, Signal *signal,
|
||
NihList *prototypes, NihList *typedefs,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * signal_args_array (const void *parent, const char *prefix,
|
||
Interface *interface, Signal *signal,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/marshal.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/marshal.c
|
||
@@ -49,7 +49,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static char *marshal_array (const void *parent,
|
||
DBusSignatureIter *iter,
|
||
const char *iter_name, const char *name,
|
||
@@ -58,7 +58,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static char *marshal_struct (const void *parent,
|
||
DBusSignatureIter *iter,
|
||
const char *iter_name, const char *name,
|
||
@@ -67,7 +67,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
/**
|
||
@@ -364,6 +364,7 @@
|
||
nih_local TypeVar *element_len_var = NULL;
|
||
nih_local char * block = NULL;
|
||
nih_local char * vars_block = NULL;
|
||
+ nih_local char * loop_block = NULL;
|
||
|
||
nih_assert (iter != NULL);
|
||
nih_assert (iter_name != NULL);
|
||
@@ -448,7 +449,7 @@
|
||
nih_list_add (locals, &array_iter_var->entry);
|
||
|
||
if (dbus_type_is_fixed (element_type)) {
|
||
- if (! nih_strcat_sprintf (&code, parent,
|
||
+ if (! nih_strcat_sprintf (&loop_block, parent,
|
||
"for (size_t %s = 0; %s < %s; %s++) {\n",
|
||
loop_name, loop_name, len_name, loop_name)) {
|
||
nih_free (code);
|
||
@@ -456,6 +457,12 @@
|
||
}
|
||
} else {
|
||
if (! nih_strcat_sprintf (&code, parent,
|
||
+ "if (%s) {\n",
|
||
+ name)) {
|
||
+ nih_free (code);
|
||
+ return NULL;
|
||
+ }
|
||
+ if (! nih_strcat_sprintf (&loop_block, parent,
|
||
"for (size_t %s = 0; %s[%s]; %s++) {\n",
|
||
loop_name, name, loop_name, loop_name)) {
|
||
nih_free (code);
|
||
@@ -576,7 +583,7 @@
|
||
}
|
||
|
||
|
||
- if (! nih_strcat_sprintf (&code, parent,
|
||
+ if (! nih_strcat_sprintf (&loop_block, parent,
|
||
"%s"
|
||
"\n"
|
||
"%s"
|
||
@@ -590,9 +597,34 @@
|
||
}
|
||
|
||
/* Close the container again */
|
||
+ if (! nih_strcat_sprintf (&loop_block, parent,
|
||
+ "}\n")) {
|
||
+ nih_free (code);
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ if (dbus_type_is_fixed (element_type)) {
|
||
+ if (! nih_strcat_sprintf (&code, parent,
|
||
+ "%s\n", loop_block)) {
|
||
+ nih_free (code);
|
||
+ return NULL;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ if (! indent (&loop_block, NULL, 1)) {
|
||
+ nih_free (code);
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ if (! nih_strcat_sprintf (&code, parent,
|
||
+ "%s"
|
||
+ "}\n\n", loop_block)) {
|
||
+ nih_free (code);
|
||
+ return NULL;
|
||
+ }
|
||
+ }
|
||
+
|
||
if (! nih_strcat_sprintf (&code, parent,
|
||
- "}\n"
|
||
- "\n"
|
||
"if (! dbus_message_iter_close_container (&%s, &%s)) {\n"
|
||
"%s"
|
||
"}\n",
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/demarshal.c
|
||
@@ -51,7 +51,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static char *demarshal_array (const void *parent,
|
||
DBusSignatureIter *iter,
|
||
const char *parent_name,
|
||
@@ -62,7 +62,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
static char *demarshal_struct (const void *parent,
|
||
DBusSignatureIter *iter,
|
||
const char *parent_name,
|
||
@@ -73,7 +73,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
/**
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/interface.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/interface.h
|
||
@@ -61,7 +61,7 @@
|
||
|
||
Interface *interface_new (const void *parent,
|
||
const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int interface_start_tag (XML_Parser xmlp,
|
||
const char *tag,
|
||
@@ -81,26 +81,26 @@
|
||
Interface *interface,
|
||
int with_handlers,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * interface_signals_array (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
int with_filters,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * interface_properties_array (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
int with_handlers,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * interface_struct (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
int object,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
|
||
char * interface_proxy_get_all_function (const void *parent,
|
||
@@ -108,7 +108,7 @@
|
||
Interface *interface,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * interface_proxy_get_all_notify_function (const void *parent,
|
||
const char *prefix,
|
||
@@ -116,14 +116,14 @@
|
||
NihList *prototypes,
|
||
NihList *typedefs,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * interface_proxy_get_all_sync_function (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/method.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/method.h
|
||
@@ -62,7 +62,7 @@
|
||
int method_name_valid (const char *name);
|
||
|
||
Method * method_new (const void *parent, const char *name)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int method_start_tag (XML_Parser xmlp, const char *tag,
|
||
char * const *attr)
|
||
@@ -82,33 +82,33 @@
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes, NihList *handlers,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * method_reply_function (const void *parent, const char *prefix,
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes, NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * method_proxy_function (const void *parent, const char *prefix,
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes, NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * method_proxy_notify_function (const void *parent, const char *prefix,
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes, NihList *typedefs,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * method_proxy_sync_function (const void *parent, const char *prefix,
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes, NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * method_args_array (const void *parent, const char *prefix,
|
||
Interface *interface, Method *method,
|
||
NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/node.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/node.h
|
||
@@ -47,7 +47,7 @@
|
||
int node_path_valid (const char *name);
|
||
|
||
Node * node_new (const void *parent, const char *path)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int node_start_tag (XML_Parser xmlp, const char *tag,
|
||
char * const *attr)
|
||
@@ -59,18 +59,18 @@
|
||
|
||
char * node_interfaces_array (const void *parent, const char *prefix,
|
||
Node *node, int object, NihList *prototypes)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * node_object_functions (const void *parent, const char *prefix,
|
||
Node *node,
|
||
NihList *prototypes, NihList *handlers,
|
||
NihList *structs, NihList *externs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * node_proxy_functions (const void *parent, const char *prefix,
|
||
Node *node,
|
||
NihList *prototypes, NihList *structs,
|
||
NihList *typedefs, NihList *externs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/marshal.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/marshal.h
|
||
@@ -35,7 +35,7 @@
|
||
const char *prefix, const char *interface_symbol,
|
||
const char *member_symbol, const char *symbol,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/type.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/type.c
|
||
@@ -1101,7 +1101,7 @@
|
||
nih_assert (block != NULL);
|
||
nih_assert (var != NULL);
|
||
|
||
- if (! strchr (var->type, '*'))
|
||
+ if (! strchr (var->type, '*') || ! strcmp (var->type, "char * const *"))
|
||
return *block;
|
||
|
||
if (next && (! strcmp (next->type, "size_t"))) {
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/property.h
|
||
+++ libnih-1.0.3/nih-dbus-tool/property.h
|
||
@@ -65,7 +65,7 @@
|
||
const char *name,
|
||
const char *type,
|
||
NihDBusAccess access)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
int property_start_tag (XML_Parser xmlp, const char *tag,
|
||
char * const *attr)
|
||
@@ -88,7 +88,7 @@
|
||
NihList *prototypes,
|
||
NihList *handlers,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * property_object_set_function (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
@@ -96,7 +96,7 @@
|
||
NihList *prototypes,
|
||
NihList *handlers,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * property_proxy_get_function (const void *parent,
|
||
const char *prefix,
|
||
@@ -104,7 +104,7 @@
|
||
Property *property,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * property_proxy_get_notify_function (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
@@ -112,7 +112,7 @@
|
||
NihList *prototypes,
|
||
NihList *typedefs,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * property_proxy_set_function (const void *parent,
|
||
const char *prefix,
|
||
@@ -120,7 +120,7 @@
|
||
Property *property,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * property_proxy_set_notify_function (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
@@ -128,7 +128,7 @@
|
||
NihList *prototypes,
|
||
NihList *typedefs,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
char * property_proxy_get_sync_function (const void *parent,
|
||
const char *prefix,
|
||
@@ -136,14 +136,14 @@
|
||
Property *property,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
char * property_proxy_set_sync_function (const void *parent,
|
||
const char *prefix,
|
||
Interface *interface,
|
||
Property *property,
|
||
NihList *prototypes,
|
||
NihList *structs)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
NIH_END_EXTERN
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_main.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/test_main.c
|
||
@@ -100,10 +100,10 @@
|
||
|
||
extern char *source_file_path (const void *parent, const char *output_path,
|
||
const char *filename)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
extern char *header_file_path (const void *parent, const char *output_path,
|
||
const char *filename)
|
||
- __attribute__ ((warn_unused_result, malloc));
|
||
+ __attribute__ ((warn_unused_result));
|
||
|
||
void
|
||
test_source_file_path (void)
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
|
||
@@ -12524,6 +12524,7 @@
|
||
dbus_message_iter_init (reply, &iter);
|
||
|
||
dbus_message_iter_get_basic (&iter, &str_value);
|
||
+ TEST_NE (str_value[0], '\0');
|
||
TEST_TRUE (strchr ("0123456789", str_value[0]));
|
||
|
||
dbus_message_unref (reply);
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_marshal.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/test_marshal.c
|
||
@@ -1479,39 +1479,41 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
- "\tDBusMessageIter value_element_iter;\n"
|
||
- "\tconst int16_t * value_element;\n"
|
||
- "\tsize_t value_element_len;\n"
|
||
+ "if (value) {\n"
|
||
+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
+ "\t\tDBusMessageIter value_element_iter;\n"
|
||
+ "\t\tconst int16_t * value_element;\n"
|
||
+ "\t\tsize_t value_element_len;\n"
|
||
"\n"
|
||
- "\tvalue_element = value[value_i];\n"
|
||
- "\tvalue_element_len = value_len[value_i];\n"
|
||
+ "\t\tvalue_element = value[value_i];\n"
|
||
+ "\t\tvalue_element_len = value_len[value_i];\n"
|
||
"\n"
|
||
|
||
- "\t/* Marshal an array onto the message */\n"
|
||
- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal an array onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
|
||
- "\t\tint16_t value_element_element;\n"
|
||
+ "\t\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
|
||
+ "\t\t\tint16_t value_element_element;\n"
|
||
"\n"
|
||
- "\t\tvalue_element_element = value_element[value_element_i];\n"
|
||
+ "\t\t\tvalue_element_element = value_element[value_element_i];\n"
|
||
"\n"
|
||
- "\t\t/* Marshal a int16_t onto the message */\n"
|
||
- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
|
||
- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\t/* Marshal a int16_t onto the message */\n"
|
||
+ "\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
|
||
+ "\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\t\treturn -1;\n"
|
||
+ "\t\t\t}\n"
|
||
+ "\t\t}\n"
|
||
+ "\n"
|
||
+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
"\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
"\t\t\treturn -1;\n"
|
||
"\t\t}\n"
|
||
- "\t}\n"
|
||
- "\n"
|
||
- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
|
||
+ "\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
"if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
|
||
@@ -1766,15 +1768,17 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
- "\tconst char *value_element;\n"
|
||
+ "if (value) {\n"
|
||
+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
+ "\t\tconst char *value_element;\n"
|
||
"\n"
|
||
- "\tvalue_element = value[value_i];\n"
|
||
+ "\t\tvalue_element = value[value_i];\n"
|
||
"\n"
|
||
- "\t/* Marshal a char * onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
+ "\t\t/* Marshal a char * onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
@@ -1933,35 +1937,39 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
- "\tDBusMessageIter value_element_iter;\n"
|
||
- "\tchar * const * value_element;\n"
|
||
+ "if (value) {\n"
|
||
+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
+ "\t\tDBusMessageIter value_element_iter;\n"
|
||
+ "\t\tchar * const * value_element;\n"
|
||
"\n"
|
||
- "\tvalue_element = value[value_i];\n"
|
||
+ "\t\tvalue_element = value[value_i];\n"
|
||
"\n"
|
||
- "\t/* Marshal an array onto the message */\n"
|
||
- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
- "\n"
|
||
- "\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
|
||
- "\t\tconst char *value_element_element;\n"
|
||
+ "\t\t/* Marshal an array onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\t\tvalue_element_element = value_element[value_element_i];\n"
|
||
+ "\t\tif (value_element) {\n"
|
||
+ "\t\t\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
|
||
+ "\t\t\t\tconst char *value_element_element;\n"
|
||
+ "\n"
|
||
+ "\t\t\t\tvalue_element_element = value_element[value_element_i];\n"
|
||
+ "\n"
|
||
+ "\t\t\t\t/* Marshal a char * onto the message */\n"
|
||
+ "\t\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
|
||
+ "\t\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\t\t\treturn -1;\n"
|
||
+ "\t\t\t\t}\n"
|
||
+ "\t\t\t}\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\t\t/* Marshal a char * onto the message */\n"
|
||
- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
|
||
- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
"\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
"\t\t\treturn -1;\n"
|
||
"\t\t}\n"
|
||
"\t}\n"
|
||
- "\n"
|
||
- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
"if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
|
||
@@ -2194,16 +2202,18 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
|
||
- "\tconst char *value_item2_element;\n"
|
||
+ "if (value_item2) {\n"
|
||
+ "\tfor (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
|
||
+ "\t\tconst char *value_item2_element;\n"
|
||
"\n"
|
||
- "\tvalue_item2_element = value_item2[value_item2_i];\n"
|
||
+ "\t\tvalue_item2_element = value_item2[value_item2_i];\n"
|
||
"\n"
|
||
- "\t/* Marshal a char * onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
+ "\t\t/* Marshal a char * onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
@@ -2642,41 +2652,43 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
- "\tDBusMessageIter value_element_iter;\n"
|
||
- "\tconst char * value_element_item0;\n"
|
||
- "\tuint32_t value_element_item1;\n"
|
||
- "\tconst MyStructArrayValueElement *value_element;\n"
|
||
+ "if (value) {\n"
|
||
+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
+ "\t\tDBusMessageIter value_element_iter;\n"
|
||
+ "\t\tconst char * value_element_item0;\n"
|
||
+ "\t\tuint32_t value_element_item1;\n"
|
||
+ "\t\tconst MyStructArrayValueElement *value_element;\n"
|
||
"\n"
|
||
- "\tvalue_element = value[value_i];\n"
|
||
+ "\t\tvalue_element = value[value_i];\n"
|
||
"\n"
|
||
- "\t/* Marshal a structure onto the message */\n"
|
||
- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a structure onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tvalue_element_item0 = value_element->item0;\n"
|
||
+ "\t\tvalue_element_item0 = value_element->item0;\n"
|
||
"\n"
|
||
- "\t/* Marshal a char * onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a char * onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tvalue_element_item1 = value_element->item1;\n"
|
||
+ "\t\tvalue_element_item1 = value_element->item1;\n"
|
||
"\n"
|
||
- "\t/* Marshal a uint32_t onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a uint32_t onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
@@ -2912,41 +2924,43 @@
|
||
"\treturn -1;\n"
|
||
"}\n"
|
||
"\n"
|
||
- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
- "\tDBusMessageIter value_element_iter;\n"
|
||
- "\tconst char * value_element_item0;\n"
|
||
- "\tuint32_t value_element_item1;\n"
|
||
- "\tconst MyDictEntryArrayValueElement *value_element;\n"
|
||
+ "if (value) {\n"
|
||
+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
|
||
+ "\t\tDBusMessageIter value_element_iter;\n"
|
||
+ "\t\tconst char * value_element_item0;\n"
|
||
+ "\t\tuint32_t value_element_item1;\n"
|
||
+ "\t\tconst MyDictEntryArrayValueElement *value_element;\n"
|
||
"\n"
|
||
- "\tvalue_element = value[value_i];\n"
|
||
+ "\t\tvalue_element = value[value_i];\n"
|
||
"\n"
|
||
- "\t/* Marshal a structure onto the message */\n"
|
||
- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a structure onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tvalue_element_item0 = value_element->item0;\n"
|
||
+ "\t\tvalue_element_item0 = value_element->item0;\n"
|
||
"\n"
|
||
- "\t/* Marshal a char * onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a char * onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tvalue_element_item1 = value_element->item1;\n"
|
||
+ "\t\tvalue_element_item1 = value_element->item1;\n"
|
||
"\n"
|
||
- "\t/* Marshal a uint32_t onto the message */\n"
|
||
- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
- "\t}\n"
|
||
+ "\t\t/* Marshal a uint32_t onto the message */\n"
|
||
+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\n"
|
||
- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
- "\t\treturn -1;\n"
|
||
+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
|
||
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
|
||
+ "\t\t\treturn -1;\n"
|
||
+ "\t\t}\n"
|
||
"\t}\n"
|
||
"}\n"
|
||
"\n"
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
|
||
@@ -27359,6 +27359,7 @@
|
||
TEST_TRUE (unix_fd_to_str_replied);
|
||
|
||
TEST_EQ_P (last_data, parent);
|
||
+ TEST_NE (last_str_value[0], '\0');
|
||
TEST_TRUE (strchr ("0123456789", last_str_value[0]));
|
||
TEST_ALLOC_PARENT (last_str_value, parent);
|
||
|
||
@@ -27673,6 +27674,7 @@
|
||
|
||
TEST_EQ (ret, 0);
|
||
|
||
+ TEST_NE (str_value[0], '\0');
|
||
TEST_TRUE (strchr ("0123456789", str_value[0]));
|
||
TEST_ALLOC_PARENT (str_value, parent);
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_property.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/test_property.c
|
||
@@ -8733,7 +8733,7 @@
|
||
TypeVar * var;
|
||
NihListEntry * attrib;
|
||
NihDBusProxy * proxy = NULL;
|
||
- void * parent = NULL;
|
||
+ void * parent __attribute__((unused)) = NULL;
|
||
pid_t pid = -1;
|
||
int status;
|
||
DBusMessage * method_call;
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
|
||
@@ -136,17 +136,19 @@
|
||
goto enomem;
|
||
}
|
||
|
||
- for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
- const char *output_element;
|
||
+ if (output) {
|
||
+ for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
+ const char *output_element;
|
||
|
||
- output_element = output[output_i];
|
||
+ output_element = output[output_i];
|
||
|
||
- /* Marshal a char * onto the message */
|
||
- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
- dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
- dbus_message_unref (reply);
|
||
- reply = NULL;
|
||
- goto enomem;
|
||
+ /* Marshal a char * onto the message */
|
||
+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
+ dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
+ dbus_message_unref (reply);
|
||
+ reply = NULL;
|
||
+ goto enomem;
|
||
+ }
|
||
}
|
||
}
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
|
||
@@ -7,7 +7,6 @@
|
||
DBusMessageIter output_iter;
|
||
|
||
nih_assert (message != NULL);
|
||
- nih_assert (output != NULL);
|
||
|
||
/* If the sender doesn't care about a reply, don't bother wasting
|
||
* effort constructing and sending one.
|
||
@@ -28,16 +27,18 @@
|
||
return -1;
|
||
}
|
||
|
||
- for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
- const char *output_element;
|
||
-
|
||
- output_element = output[output_i];
|
||
-
|
||
- /* Marshal a char * onto the message */
|
||
- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
- dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
- dbus_message_unref (reply);
|
||
- return -1;
|
||
+ if (output) {
|
||
+ for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
+ const char *output_element;
|
||
+
|
||
+ output_element = output[output_i];
|
||
+
|
||
+ /* Marshal a char * onto the message */
|
||
+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
+ dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
+ dbus_message_unref (reply);
|
||
+ return -1;
|
||
+ }
|
||
}
|
||
}
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
|
||
@@ -7,7 +7,6 @@
|
||
DBusMessageIter output_iter;
|
||
|
||
nih_assert (message != NULL);
|
||
- nih_assert (output != NULL);
|
||
|
||
/* If the sender doesn't care about a reply, don't bother wasting
|
||
* effort constructing and sending one.
|
||
@@ -28,16 +27,18 @@
|
||
return -1;
|
||
}
|
||
|
||
- for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
- const char *output_element;
|
||
-
|
||
- output_element = output[output_i];
|
||
-
|
||
- /* Marshal a char * onto the message */
|
||
- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
- dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
- dbus_message_unref (reply);
|
||
- return -1;
|
||
+ if (output) {
|
||
+ for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
+ const char *output_element;
|
||
+
|
||
+ output_element = output[output_i];
|
||
+
|
||
+ /* Marshal a char * onto the message */
|
||
+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
+ dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
+ dbus_message_unref (reply);
|
||
+ return -1;
|
||
+ }
|
||
}
|
||
}
|
||
|
||
--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
|
||
+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
|
||
@@ -88,17 +88,19 @@
|
||
goto enomem;
|
||
}
|
||
|
||
- for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
- const char *output_element;
|
||
+ if (output) {
|
||
+ for (size_t output_i = 0; output[output_i]; output_i++) {
|
||
+ const char *output_element;
|
||
|
||
- output_element = output[output_i];
|
||
+ output_element = output[output_i];
|
||
|
||
- /* Marshal a char * onto the message */
|
||
- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
- dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
- dbus_message_unref (reply);
|
||
- reply = NULL;
|
||
- goto enomem;
|
||
+ /* Marshal a char * onto the message */
|
||
+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
|
||
+ dbus_message_iter_abandon_container (&iter, &output_iter);
|
||
+ dbus_message_unref (reply);
|
||
+ reply = NULL;
|
||
+ goto enomem;
|
||
+ }
|
||
}
|
||
}
|
||
|