summaryrefslogtreecommitdiffstats
path: root/usr.bin/make/lst.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/make/lst.h')
-rw-r--r--usr.bin/make/lst.h118
1 files changed, 68 insertions, 50 deletions
diff --git a/usr.bin/make/lst.h b/usr.bin/make/lst.h
index 3cd997d..8d8abe0 100644
--- a/usr.bin/make/lst.h
+++ b/usr.bin/make/lst.h
@@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)lst.h 8.1 (Berkeley) 6/6/93
+ * @(#)lst.h 8.2 (Berkeley) 4/28/95
*/
/*-
@@ -65,8 +65,8 @@ typedef struct LstNode *LstNode;
* not to be freed.
* NOCOPY performs similarly when given as the copyProc to Lst_Duplicate.
*/
-#define NOFREE ((void (*)()) 0)
-#define NOCOPY ((ClientData (*)()) 0)
+#define NOFREE ((void (*) __P((ClientData))) 0)
+#define NOCOPY ((ClientData (*) __P((ClientData))) 0)
#define LST_CONCNEW 0 /* create new LstNode's when using Lst_Concat */
#define LST_CONCLINK 1 /* relink LstNode's when using Lst_Concat */
@@ -74,72 +74,90 @@ typedef struct LstNode *LstNode;
/*
* Creation/destruction functions
*/
-Lst Lst_Init(); /* Create a new list */
-Lst Lst_Duplicate(); /* Duplicate an existing list */
-void Lst_Destroy(); /* Destroy an old one */
-
-int Lst_Length(); /* Find the length of a list */
-Boolean Lst_IsEmpty(); /* True if list is empty */
+/* Create a new list */
+Lst Lst_Init __P((Boolean));
+/* Duplicate an existing list */
+Lst Lst_Duplicate __P((Lst, ClientData (*)(ClientData)));
+/* Destroy an old one */
+void Lst_Destroy __P((Lst, void (*)(ClientData)));
+/* True if list is empty */
+Boolean Lst_IsEmpty __P((Lst));
/*
* Functions to modify a list
*/
-ReturnStatus Lst_Insert(); /* Insert an element before another */
-ReturnStatus Lst_Append(); /* Insert an element after another */
-ReturnStatus Lst_AtFront(); /* Place an element at the front of
- * a lst. */
-ReturnStatus Lst_AtEnd(); /* Place an element at the end of a
- * lst. */
-ReturnStatus Lst_Remove(); /* Remove an element */
-ReturnStatus Lst_Replace(); /* Replace a node with a new value */
-ReturnStatus Lst_Move(); /* Move an element to another place */
-ReturnStatus Lst_Concat(); /* Concatenate two lists */
+/* Insert an element before another */
+ReturnStatus Lst_Insert __P((Lst, LstNode, ClientData));
+/* Insert an element after another */
+ReturnStatus Lst_Append __P((Lst, LstNode, ClientData));
+/* Place an element at the front of a lst. */
+ReturnStatus Lst_AtFront __P((Lst, ClientData));
+/* Place an element at the end of a lst. */
+ReturnStatus Lst_AtEnd __P((Lst, ClientData));
+/* Remove an element */
+ReturnStatus Lst_Remove __P((Lst, LstNode));
+/* Replace a node with a new value */
+ReturnStatus Lst_Replace __P((LstNode, ClientData));
+/* Concatenate two lists */
+ReturnStatus Lst_Concat __P((Lst, Lst, int));
/*
* Node-specific functions
*/
-LstNode Lst_First(); /* Return first element in list */
-LstNode Lst_Last(); /* Return last element in list */
-LstNode Lst_Succ(); /* Return successor to given element */
-LstNode Lst_Pred(); /* Return predecessor to given
- * element */
-ClientData Lst_Datum(); /* Get datum from LstNode */
+/* Return first element in list */
+LstNode Lst_First __P((Lst));
+/* Return last element in list */
+LstNode Lst_Last __P((Lst));
+/* Return successor to given element */
+LstNode Lst_Succ __P((LstNode));
+/* Get datum from LstNode */
+ClientData Lst_Datum __P((LstNode));
/*
* Functions for entire lists
*/
-LstNode Lst_Find(); /* Find an element in a list */
-LstNode Lst_FindFrom(); /* Find an element starting from
- * somewhere */
-LstNode Lst_Member(); /* See if the given datum is on the
- * list. Returns the LstNode containing
- * the datum */
-int Lst_Index(); /* Returns the index of a datum in the
- * list, starting from 0 */
-void Lst_ForEach(); /* Apply a function to all elements of
- * a lst */
-void Lst_ForEachFrom(); /* Apply a function to all elements of
- * a lst starting from a certain point.
- * If the list is circular, the
- * application will wrap around to the
- * beginning of the list again. */
+/* Find an element in a list */
+LstNode Lst_Find __P((Lst, ClientData,
+ int (*)(ClientData, ClientData)));
+/* Find an element starting from somewhere */
+LstNode Lst_FindFrom __P((Lst, LstNode, ClientData,
+ int (*cProc)(ClientData, ClientData)));
+/*
+ * See if the given datum is on the list. Returns the LstNode containing
+ * the datum
+ */
+LstNode Lst_Member __P((Lst, ClientData));
+/* Apply a function to all elements of a lst */
+void Lst_ForEach __P((Lst, int (*)(ClientData, ClientData),
+ ClientData));
+/*
+ * Apply a function to all elements of a lst starting from a certain point.
+ * If the list is circular, the application will wrap around to the
+ * beginning of the list again.
+ */
+void Lst_ForEachFrom __P((Lst, LstNode,
+ int (*)(ClientData, ClientData),
+ ClientData));
/*
* these functions are for dealing with a list as a table, of sorts.
* An idea of the "current element" is kept and used by all the functions
* between Lst_Open() and Lst_Close().
*/
-ReturnStatus Lst_Open(); /* Open the list */
-LstNode Lst_Prev(); /* Previous element */
-LstNode Lst_Cur(); /* The current element, please */
-LstNode Lst_Next(); /* Next element please */
-Boolean Lst_IsAtEnd(); /* Done yet? */
-void Lst_Close(); /* Finish table access */
+/* Open the list */
+ReturnStatus Lst_Open __P((Lst));
+/* Next element please */
+LstNode Lst_Next __P((Lst));
+/* Done yet? */
+Boolean Lst_IsAtEnd __P((Lst));
+/* Finish table access */
+void Lst_Close __P((Lst));
/*
* for using the list as a queue
*/
-ReturnStatus Lst_EnQueue(); /* Place an element at tail of queue */
-ClientData Lst_DeQueue(); /* Remove an element from head of
- * queue */
+/* Place an element at tail of queue */
+ReturnStatus Lst_EnQueue __P((Lst, ClientData));
+/* Remove an element from head of queue */
+ClientData Lst_DeQueue __P((Lst));
-#endif _LST_H_
+#endif /* _LST_H_ */
OpenPOWER on IntegriCloud