1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-30 01:47:42 +03:00

util: allow trailing semicolons on define_trivial_cleanup_func lines

Emacs C indenting really gets confused by these lines if they carry no
trailing semicolon, hence let's make this nicer for good old emacs. The
other macros which define functions already do this too, so let's copy
the scheme here.

Also, let's use an uppercase name for the macro. So far our rough rule
was that macros that are totally not function-like (like this ones,
which define a function) are uppercase. (Well, admittedly it is a rough
rule only, for example function and variable decorators are all
lower-case SINCE THE CONSTANT YELLING IN THE SOURCES WOULD SUCK, and
also they at least got underscore prefixes.) Also, the macros that
define functions that we already have are all uppercase, so let's do the
same here...
This commit is contained in:
Lennart Poettering 2013-10-14 04:59:26 +02:00
parent 416446221d
commit 14bf2c9d37
8 changed files with 22 additions and 21 deletions

View File

@ -54,7 +54,7 @@
static const char *arg_dest = "/tmp";
define_trivial_cleanup_func(blkid_probe, blkid_free_probe)
DEFINE_TRIVIAL_CLEANUP_FUNC(blkid_probe, blkid_free_probe);
#define _cleanup_blkid_freep_probe_ _cleanup_(blkid_free_probep)
static int verify_gpt_partition(const char *node, sd_id128_t *type, unsigned *nr, char **fstype) {

View File

@ -135,7 +135,7 @@ struct sd_journal {
char *journal_make_match_string(sd_journal *j);
void journal_print_header(sd_journal *j);
define_trivial_cleanup_func(sd_journal*, sd_journal_close)
DEFINE_TRIVIAL_CLEANUP_FUNC(sd_journal*, sd_journal_close);
#define _cleanup_journal_close_ _cleanup_(sd_journal_closep)
#define JOURNAL_FOREACH_DATA_RETVAL(j, data, l, retval) \

View File

@ -49,5 +49,5 @@ int fdset_iterate(FDSet *s, Iterator *i);
#define FDSET_FOREACH(fd, fds, i) \
for ((i) = ITERATOR_FIRST, (fd) = fdset_iterate((fds), &(i)); (fd) >= 0; (fd) = fdset_iterate((fds), &(i)))
define_trivial_cleanup_func(FDSet*, fdset_free)
DEFINE_TRIVIAL_CLEANUP_FUNC(FDSet*, fdset_free);
#define _cleanup_fdset_free_ _cleanup_(fdset_freep)

View File

@ -73,7 +73,7 @@ char **set_get_strv(Set *s);
#define SET_FOREACH_BACKWARDS(e, s, i) \
for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); (e); (e) = set_iterate_backwards((s), &(i)))
define_trivial_cleanup_func(Set*, set_free)
define_trivial_cleanup_func(Set*, set_free_free)
DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free);
DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free_free);
#define _cleanup_set_free_ _cleanup_(set_freep)
#define _cleanup_set_free_free_ _cleanup_(set_free_freep)

View File

@ -30,7 +30,7 @@ char *strv_find(char **l, const char *name) _pure_;
char *strv_find_prefix(char **l, const char *name) _pure_;
void strv_free(char **l);
define_trivial_cleanup_func(char**, strv_free)
DEFINE_TRIVIAL_CLEANUP_FUNC(char**, strv_free);
#define _cleanup_strv_free_ _cleanup_(strv_freep)
char **strv_copy(char * const *l);

View File

@ -24,11 +24,11 @@
#include "udev.h"
#include "util.h"
define_trivial_cleanup_func(struct udev*, udev_unref)
define_trivial_cleanup_func(struct udev_device*, udev_device_unref)
define_trivial_cleanup_func(struct udev_enumerate*, udev_enumerate_unref)
define_trivial_cleanup_func(struct udev_event*, udev_event_unref)
define_trivial_cleanup_func(struct udev_rules*, udev_rules_unref)
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev*, udev_unref);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_device*, udev_device_unref);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_enumerate*, udev_enumerate_unref);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref);
#define _cleanup_udev_unref_ _cleanup_(udev_unrefp)
#define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp)

View File

@ -556,11 +556,12 @@ static inline void freep(void *p) {
free(*(void**) p);
}
#define define_trivial_cleanup_func(type, func) \
static inline void func##p(type *p) { \
if (*p) \
func(*p); \
} \
#define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \
static inline void func##p(type *p) { \
if (*p) \
func(*p); \
} \
struct __useless_struct_to_allow_trailing_semicolon__
static inline void closep(int *fd) {
if (*fd >= 0)
@ -571,10 +572,10 @@ static inline void umaskp(mode_t *u) {
umask(*u);
}
define_trivial_cleanup_func(FILE*, fclose)
define_trivial_cleanup_func(FILE*, pclose)
define_trivial_cleanup_func(DIR*, closedir)
define_trivial_cleanup_func(FILE*, endmntent)
DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, fclose);
DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, pclose);
DEFINE_TRIVIAL_CLEANUP_FUNC(DIR*, closedir);
DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, endmntent);
#define _cleanup_free_ _cleanup_(freep)
#define _cleanup_close_ _cleanup_(closep)

View File

@ -995,7 +995,7 @@ static void item_free(Item *i) {
free(i);
}
define_trivial_cleanup_func(Item*, item_free)
DEFINE_TRIVIAL_CLEANUP_FUNC(Item*, item_free);
#define _cleanup_item_free_ _cleanup_(item_freep)
static bool item_equal(Item *a, Item *b) {