# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SLIST" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. SLIST_FOREACH_FROM, #. SLIST_FOREACH_FROM_SAFE, #. SLIST_FOREACH_SAFE, #. SLIST_REMOVE_AFTER, #. SLIST_SWAP #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "SLIST_EMPTY, SLIST_ENTRY, SLIST_FIRST, SLIST_FOREACH, SLIST_HEAD, " "SLIST_HEAD_INITIALIZER, SLIST_INIT, SLIST_INSERT_AFTER, SLIST_INSERT_HEAD, " "SLIST_NEXT, SLIST_REMOVE, SLIST_REMOVE_HEAD - implementation of a singly " "linked list" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Esys/queue.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B\n" "BIB<);>\n" "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<,>\n" "B< struct TYPE *>IB<, SLIST_ENTRY >IB<);>\n" "BIB<,>\n" "B< struct TYPE *>IB<, SLIST_ENTRY >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<);>\n" "BIB<, SLIST_ENTRY >IB<);>\n" msgstr "" #. #-#-#-#-# archlinux: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-bookworm: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .PP #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-unstable: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-40: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-rawhide: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# mageia-cauldron: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .PP #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head , #. .BI " SLIST_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<, SLIST_HEAD *>IB<, SLIST_ENTRY >IB<);>\n" msgstr "" #. #-#-#-#-# archlinux: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# debian-bookworm: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .PP #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# debian-unstable: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# fedora-40: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# fedora-rawhide: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# mageia-cauldron: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .PP #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm , #. .BI " SLIST_ENTRY " NAME ); #. .P #. .BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 , #. .BI " SLIST_ENTRY " NAME ); #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, struct TYPE *>IB<,>\n" "B< SLIST_ENTRY >IB<);>\n" "BIB<,>\n" "B< SLIST_ENTRY >IB<);>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed msgid "These macros define and operate on singly linked lists." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the macro definitions, I is the name of a user-defined structure, " "that must contain a field of type I, named I. The " "argument I is the name of a user-defined structure that must be " "declared using the macro B()." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Creation" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A singly linked list is headed by a structure defined by the " "B() macro. This structure contains a single pointer to the " "first element on the list. The elements are singly linked for minimum space " "and pointer manipulation overhead at the expense of O(n) removal for " "arbitrary elements. New elements can be added to the list after an existing " "element or at the head of the list. An I structure is declared " "as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SLIST_HEAD(HEADNAME, TYPE) head;\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "where I is the structure to be defined, and I " "is the type of the elements to be linked into the list. A pointer to the " "head of the list can later be declared as:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "struct HEADNAME *headp;\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "(The names I and I are user selectable.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() declares a structure that connects the elements in the " "list." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() evaluates to an initializer for the list " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() initializes the list referenced by I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() evaluates to true if there are no elements in the list." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Insertion" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I at the head of the " "list." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I after the element " "I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Traversal" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns the first element in the list, or NULL if the list " "is empty." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() returns the next element in the list." msgstr "" #. #-#-#-#-# archlinux: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-bookworm: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-unstable: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-40: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-rawhide: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# mageia-cauldron: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_FOREACH_FROM () #. behaves identically to #. .BR SLIST_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. .Pp #. .BR SLIST_FOREACH_SAFE () #. traverses the list referenced by #. .I head #. in the forward direction, assigning each element in #. turn to #. .IR var . #. However, unlike #. .BR SLIST_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR SLIST_FOREACH_FROM_SAFE () #. behaves identically to #. .BR SLIST_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found SLIST element and begins the loop at #. .I var #. instead of the first element in the SLIST referenced by #. .IR head . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() traverses the list referenced by I in the forward " "direction, assigning each element in turn to I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Removal" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() removes the element I from the list." msgstr "" #. #-#-#-#-# archlinux: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# debian-bookworm: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# debian-unstable: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# fedora-40: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# fedora-rawhide: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# mageia-cauldron: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: slist.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR SLIST_REMOVE_AFTER () #. removes the element after #. .I elm #. from the list. #. Unlike #. .IR SLIST_REMOVE , #. this macro does not traverse the entire list. #. .SS Other features #. .BR SLIST_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() removes the element I from the head of the " "list. For optimum efficiency, elements being removed from the head of the " "list should explicitly use this macro instead of the generic " "B()." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns nonzero if the list is empty, and zero if the list " "contains at least one entry." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(), and B() return a pointer to the first or next " "I structure, respectively." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns an initializer that can be assigned to " "the list I." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "BSD." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "4.4BSD." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() doesn't allow I to be removed or freed within the " "loop, as it would interfere with the traversal. B(), " "which is present on the BSDs but is not present in glibc, fixes this " "limitation by allowing I to safely be removed from the list and freed " "from within the loop without interfering with the traversal." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/queue.hE\n" "\\&\n" "struct entry {\n" " int data;\n" " SLIST_ENTRY(entry) entries; /* Singly linked list */\n" "};\n" "\\&\n" "SLIST_HEAD(slisthead, entry);\n" "\\&\n" "int\n" "main(void)\n" "{\n" " struct entry *n1, *n2, *n3, *np;\n" " struct slisthead head; /* Singly linked list\n" " head */\n" "\\&\n" " SLIST_INIT(&head); /* Initialize the queue */\n" "\\&\n" " n1 = malloc(sizeof(struct entry)); /* Insert at the head */\n" " SLIST_INSERT_HEAD(&head, n1, entries);\n" "\\&\n" " n2 = malloc(sizeof(struct entry)); /* Insert after */\n" " SLIST_INSERT_AFTER(n1, n2, entries);\n" "\\&\n" " SLIST_REMOVE(&head, n2, entry, entries);/* Deletion */\n" " free(n2);\n" "\\&\n" " n3 = SLIST_FIRST(&head);\n" " SLIST_REMOVE_HEAD(&head, entries); /* Deletion from the head */\n" " free(n3);\n" "\\&\n" " for (unsigned int i = 0; i E 5; i++) {\n" " n1 = malloc(sizeof(struct entry));\n" " SLIST_INSERT_HEAD(&head, n1, entries);\n" " n1-Edata = i;\n" " }\n" "\\&\n" " /* Forward traversal */\n" " SLIST_FOREACH(np, &head, entries)\n" " printf(\"%i\\en\", np-Edata);\n" "\\&\n" " while (!SLIST_EMPTY(&head)) { /* List deletion */\n" " n1 = SLIST_FIRST(&head);\n" " SLIST_REMOVE_HEAD(&head, entries);\n" " free(n1);\n" " }\n" " SLIST_INIT(&head);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(3), B(7)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2022-10-30" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 msgid "These macros define and operate on doubly linked lists." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Not in POSIX.1, POSIX.1-2001, or POSIX.1-2008. Present on the BSDs (SLIST " "macros first appeared in 4.4BSD)." msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/queue.hE\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "struct entry {\n" " int data;\n" " SLIST_ENTRY(entry) entries; /* Singly linked list */\n" "};\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "SLIST_HEAD(slisthead, entry);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct entry *n1, *n2, *n3, *np;\n" " struct slisthead head; /* Singly linked list\n" " head */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " SLIST_INIT(&head); /* Initialize the queue */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n1 = malloc(sizeof(struct entry)); /* Insert at the head */\n" " SLIST_INSERT_HEAD(&head, n1, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n2 = malloc(sizeof(struct entry)); /* Insert after */\n" " SLIST_INSERT_AFTER(n1, n2, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " SLIST_REMOVE(&head, n2, entry, entries);/* Deletion */\n" " free(n2);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n3 = SLIST_FIRST(&head);\n" " SLIST_REMOVE_HEAD(&head, entries); /* Deletion from the head */\n" " free(n3);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (unsigned int i = 0; i E 5; i++) {\n" " n1 = malloc(sizeof(struct entry));\n" " SLIST_INSERT_HEAD(&head, n1, entries);\n" " n1-Edata = i;\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Forward traversal */\n" " SLIST_FOREACH(np, &head, entries)\n" " printf(\"%i\\en\", np-Edata);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " while (!SLIST_EMPTY(&head)) { /* List deletion */\n" " n1 = SLIST_FIRST(&head);\n" " SLIST_REMOVE_HEAD(&head, entries);\n" " free(n1);\n" " }\n" " SLIST_INIT(&head);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""