]> andersk Git - moira.git/blobdiff - lib/sq.c
Change group security when renaming groups.
[moira.git] / lib / sq.c
index 406f0b593a08b1efbf62b00d43d1d58a222ffba6..e7ff6a6fd132805e41d2798e368e9a90c2fa52f0 100644 (file)
--- a/lib/sq.c
+++ b/lib/sq.c
@@ -1,20 +1,23 @@
-/* $Header$
+/* $Id$
  *
  * Generic Queue Routines
  *
- *  (c) Copyright 1988 by the Massachusetts Institute of Technology.
- *  For copying and distribution information, please see the file
- *  <mit-copyright.h>.
+ * Copyright (C) 1988-1998 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
  */
 
 #include <mit-copyright.h>
 #include <moira.h>
-#include <string.h>
+
 #include <stdlib.h>
+#include <string.h>
+
+RCSID("$Header$");
 
 struct save_queue *sq_create(void)
 {
-  register struct save_queue *sq;
+  struct save_queue *sq;
 
   sq = malloc(sizeof(struct save_queue));
   if (!sq)
@@ -25,9 +28,9 @@ struct save_queue *sq_create(void)
   return sq;
 }
 
-int sq_save_data(register struct save_queue *sq, char *data)
+int sq_save_data(struct save_queue *sq, void *data)
 {
-  register struct save_queue *q;
+  struct save_queue *q;
 
   q = malloc(sizeof(struct save_queue));
   if (!q)
@@ -40,12 +43,10 @@ int sq_save_data(register struct save_queue *sq, char *data)
   return 1;
 }
 
-int sq_save_args(register int argc, register char *argv[],
-                register struct save_queue *sq)
+int sq_save_args(int argc, char *argv[], struct save_queue *sq)
 {
-  register char **argv_copy;
-  register int i;
-  register int n;
+  char **argv_copy;
+  int i, n;
 
   argv_copy = malloc(argc * sizeof(char *));
   if (!argv_copy)
@@ -64,12 +65,12 @@ int sq_save_args(register int argc, register char *argv[],
       memcpy(argv_copy[i], argv[i], n);
     }
 
-  return sq_save_data(sq, (char *)argv_copy);
+  return sq_save_data(sq, argv_copy);
 }
 
-int sq_save_unique_data(register struct save_queue *sq, char *data)
+int sq_save_unique_data(struct save_queue *sq, void *data)
 {
-  register struct save_queue *q;
+  struct save_queue *q;
 
   for (q = sq->q_next; q != sq; q = q->q_next)
     {
@@ -80,9 +81,9 @@ int sq_save_unique_data(register struct save_queue *sq, char *data)
   return sq_save_data(sq, data);
 }
 
-int sq_save_unique_string(register struct save_queue *sq, char *data)
+int sq_save_unique_string(struct save_queue *sq, char *data)
 {
-  register struct save_queue *q;
+  struct save_queue *q;
 
   for (q = sq->q_next; q != sq; q = q->q_next)
     {
@@ -93,24 +94,31 @@ int sq_save_unique_string(register struct save_queue *sq, char *data)
   return sq_save_data(sq, data);
 }
 
-int sq_get_data(register struct save_queue *sq, register char **data)
+/* in sq_get_data and sq_remove_data, `data' is actually a pointer to the
+   variable to put the data in to. */
+
+int sq_get_data(struct save_queue *sq, void *data)
 {
-  if (sq->q_lastget == (struct save_queue *)0)
+  void **dptr = data;
+
+  if (sq->q_lastget == NULL)
     sq->q_lastget = sq->q_next;
   else
     sq->q_lastget = sq->q_lastget->q_next;
 
   if (sq->q_lastget == sq)
     return 0;
-  *data = sq->q_lastget->q_data;
+  *dptr = sq->q_lastget->q_data;
   return 1;
 }
 
-int sq_remove_data(register struct save_queue *sq, register char **data)
+int sq_remove_data(struct save_queue *sq, void *data)
 {
+  void **dptr = data;
+
   if (sq->q_next != sq)
     {
-      *data = sq->q_next->q_data;
+      *dptr = sq->q_next->q_data;
       sq->q_next = sq->q_next->q_next;
       free(sq->q_next->q_prev);
       sq->q_next->q_prev = sq;
@@ -119,7 +127,19 @@ int sq_remove_data(register struct save_queue *sq, register char **data)
   return 0;
 }
 
-int sq_empty(register struct save_queue *sq)
+void sq_remove_last_data(struct save_queue *sq)
+{
+  struct save_queue *rem = sq->q_lastget;
+
+  if (rem != NULL)
+    {
+      rem->q_next->q_prev = sq->q_lastget = rem->q_prev;
+      rem->q_prev->q_next = rem->q_next;
+      free(rem);
+    }
+}      
+
+int sq_empty(struct save_queue *sq)
 {
   if (sq->q_next == sq)
     return 1;
@@ -127,9 +147,9 @@ int sq_empty(register struct save_queue *sq)
     return 0;
 }
 
-sq_destroy(register struct save_queue *sq)
+void sq_destroy(struct save_queue *sq)
 {
-  register struct save_queue *q;
+  struct save_queue *q;
 
   for (q = sq->q_next; q != sq; q = sq->q_next)
     {
This page took 0.041386 seconds and 4 git commands to generate.