diff --git a/.clang-format b/.clang-format index 6a8388bc91..124d82a269 100644 --- a/.clang-format +++ b/.clang-format @@ -78,4 +78,4 @@ PenaltyBreakString: 80 PenaltyExcessCharacter: 100 Standard: Cpp11 ContinuationIndentWidth: 8 -ForEachMacros: [ 'cds_lfs_for_each', 'cds_lfs_for_each_safe', 'cds_list_for_each_entry_safe' ] +ForEachMacros: [ 'cds_lfs_for_each', 'cds_lfs_for_each_safe', 'cds_list_for_each_entry_safe', 'ISC_LIST_FOREACH', 'ISC_LIST_FOREACH_SAFE' ] diff --git a/lib/isc/include/isc/list.h b/lib/isc/include/isc/list.h index 2cf4437542..a168254d40 100644 --- a/lib/isc/include/isc/list.h +++ b/lib/isc/include/isc/list.h @@ -227,3 +227,17 @@ INSIST(ISC_LIST_EMPTY(dest)); \ ISC_LIST_MOVEUNSAFE(dest, src); \ } + +/* clang-format off */ +#define ISC_LIST_FOREACH(list, elt, link) \ + for (elt = ISC_LIST_HEAD(list); \ + elt != NULL; \ + elt = ISC_LIST_NEXT(elt, link)) +/* clang-format on */ + +/* clang-format off */ +#define ISC_LIST_FOREACH_SAFE(list, elt, link, next) \ + for (elt = ISC_LIST_HEAD(list), next = (elt != NULL) ? ISC_LIST_NEXT(elt, link) : NULL; \ + elt != NULL; \ + elt = next, next = (elt != NULL) ? ISC_LIST_NEXT(elt, link) : NULL) +/* clang-format on */