Package: manpages-dev
Version: 3.44-1
Severity: normal
Tags: patch
Add information about follow macroses:
- LIST_INSERT_BEFORE
- LIST_FOREACH
- LIST_EMPTY
- LIST_FIRST
- LIST_NEXT
-- System Information:
Debian Release: 7.8
APT prefers oldstable-updates
APT policy: (500, 'oldstable-updates'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages manpages-dev depends on:
ii manpages 3.44-1
manpages-dev recommends no packages.
Versions of packages manpages-dev suggests:
ii man-db [man-browser] 2.6.2-1
-- no debconf information
From 1b0695c38460cd7aa6b55631358b9a862fb94696 Mon Sep 17 00:00:00 2001
From: Brilliantov Kirill Vladimirovich <[email protected]>
Date: Wed, 8 Jul 2015 17:15:30 +0300
Subject: [PATCH] queue.3: Update information about list
Signed-off-by: Brilliantov Kirill Vladimirovich <[email protected]>
---
man3/LIST_EMPTY.3 | 1 +
man3/LIST_FIRST.3 | 1 +
man3/LIST_FOREACH.3 | 1 +
man3/LIST_INSERT_BEFORE.3 | 1 +
man3/LIST_NEXT.3 | 1 +
man3/queue.3 | 57 ++++++++++++++++++++++++++++++++++++++---------
6 files changed, 51 insertions(+), 11 deletions(-)
create mode 100644 man3/LIST_EMPTY.3
create mode 100644 man3/LIST_FIRST.3
create mode 100644 man3/LIST_FOREACH.3
create mode 100644 man3/LIST_INSERT_BEFORE.3
create mode 100644 man3/LIST_NEXT.3
diff --git a/man3/LIST_EMPTY.3 b/man3/LIST_EMPTY.3
new file mode 100644
index 0000000..c2956c9
--- /dev/null
+++ b/man3/LIST_EMPTY.3
@@ -0,0 +1 @@
+.so man3/queue.3
diff --git a/man3/LIST_FIRST.3 b/man3/LIST_FIRST.3
new file mode 100644
index 0000000..c2956c9
--- /dev/null
+++ b/man3/LIST_FIRST.3
@@ -0,0 +1 @@
+.so man3/queue.3
diff --git a/man3/LIST_FOREACH.3 b/man3/LIST_FOREACH.3
new file mode 100644
index 0000000..c2956c9
--- /dev/null
+++ b/man3/LIST_FOREACH.3
@@ -0,0 +1 @@
+.so man3/queue.3
diff --git a/man3/LIST_INSERT_BEFORE.3 b/man3/LIST_INSERT_BEFORE.3
new file mode 100644
index 0000000..c2956c9
--- /dev/null
+++ b/man3/LIST_INSERT_BEFORE.3
@@ -0,0 +1 @@
+.so man3/queue.3
diff --git a/man3/LIST_NEXT.3 b/man3/LIST_NEXT.3
new file mode 100644
index 0000000..c2956c9
--- /dev/null
+++ b/man3/LIST_NEXT.3
@@ -0,0 +1 @@
+.so man3/queue.3
diff --git a/man3/queue.3 b/man3/queue.3
index 153a111..e35402b 100644
--- a/man3/queue.3
+++ b/man3/queue.3
@@ -38,12 +38,12 @@
.\"
.TH QUEUE 3 2007-12-28 "Linux" "Linux Programmer's Manual"
.SH NAME
-LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER,
-LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD,
-TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL,
-TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT,
-CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE,
-CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL,
+LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_BEFORE,
+LIST_INSERT_HEAD, LIST_REMOVE, LIST_FOREACH, LIST_EMPTY, LIST_FIRST, LIST_NEXT,
+TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD,
+TAILQ_INSERT_TAIL, TAILQ_REMOVE,
+CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER,
+CIRCLEQ_INSERT_BEFORE, CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL,
CIRCLEQ_REMOVE \- implementations of lists, tail queues, and circular queues
.SH SYNOPSIS
.nf
@@ -54,9 +54,15 @@ CIRCLEQ_REMOVE \- implementations of lists, tail queues, and circular queues
.BI "LIST_INIT(LIST_HEAD *" head );
.BI "LIST_INSERT_AFTER(LIST_ENTRY *" listelm ", "
.BI " TYPE *" elm ", LIST_ENTRY " NAME );
+.BI "LIST_INSERT_BEFORE(LIST_ENTRY *" listelm ", "
+.BI " TYPE *" elm ", LIST_ENTRY " NAME );
.BI "LIST_INSERT_HEAD(LIST_HEAD *" head ", "
.BI " TYPE *" elm ", LIST_ENTRY " NAME );
.BI "LIST_REMOVE(TYPE *" elm ", LIST_ENTRY " NAME );
+.BI "LIST_FOREACH(TYPE *"elm ", LIST_HEAD *" head ", LIST_ENTRY " NAME );
+.BI "LIST_EMPTY(LIST_HEAD *" head " );
+.BI "LIST_FIRST(LIST_HEAD *" head " );
+.BI "LIST_NEXT(TYPE *"elm ", LIST_ENTRY " NAME );
.BI "TAILQ_ENTRY(" TYPE );
.BI "TAILQ_HEAD("HEADNAME ", " TYPE );
@@ -236,10 +242,34 @@ after the element
.IR listelm .
.PP
The macro
+.B LIST_INSERT_BEFORE
+inserts the new element
+.I elm
+before the element
+.IR listelm .
+.PP
+The macro
.B LIST_REMOVE
removes the element
.I elm
from the list.
+.PP
+The macro
+.B LIST_FOREACH
+is wrapper for "for" loop.
+.PP
+The macro
+.B LIST_EMPTY
+check what list havn't any elements.
+.PP
+The macro
+.B LIST_FIRST
+return pointer on first element.
+.PP
+The macro
+.B LIST_NEXT
+return pointer on next after
+.IR listelm .
.SS List example
.nf
LIST_HEAD(listhead, entry) head;
@@ -248,7 +278,7 @@ struct entry {
...
LIST_ENTRY(entry) entries; /* List. */
...
-} *n1, *n2, *np;
+} *n1, *n2, *n3, *np;
LIST_INIT(&head); /* Initialize the list. */
@@ -257,13 +287,18 @@ LIST_INSERT_HEAD(&head, n1, entries);
n2 = malloc(sizeof(struct entry)); /* Insert after. */
LIST_INSERT_AFTER(n1, n2, entries);
+
+n3 = malloc(sizeof(struct entry)); /* Insert before. */
+LIST_INSERT_BEFORE(n2, n3, entry);
/* Forward traversal. */
-for (np = head.lh_first; np != NULL; np = np\->entries.le_next)
+LIST_FOREACH (np, &head, entries)
np\-> ...
-.\" FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=1506
-while (head.lh_first != NULL) /* Delete. */
- LIST_REMOVE(head.lh_first, entries);
+while (!LIST_EMPTY(&head)) { /* Delete. */
+ np = LIST_FIRST(&head)
+ LIST_REMOVE(np, entries);
+ free(np);
+}
.fi
.SS Tail queues
A tail queue is headed by a structure defined by the
--
2.1.4