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

Reply via email to