]> andersk Git - moira.git/blobdiff - lib/sq.c
Initial revision
[moira.git] / lib / sq.c
index 63eb625c97c686d64ba3cd06c59a0e5f38c3e40c..952f5c876ec3bb2e1d9ab7c32544b2ff0f47fb61 100644 (file)
--- a/lib/sq.c
+++ b/lib/sq.c
@@ -8,7 +8,10 @@
  */
 
 #include <mit-copyright.h>
-#include <sms.h>
+#include <moira.h>
+#include <string.h>
+
+extern char *malloc();
 
 struct save_queue *
 sq_create()
@@ -49,10 +52,10 @@ sq_save_args(argc, argv, sq)
     for (i = 0; i < argc; i++) {
        n = strlen(argv[i]) + 1;
        argv_copy[i] = (char *)malloc(n);
-       bcopy(argv[i], argv_copy[i], n);
+       memcpy(argv_copy[i], argv[i], n);
     }
 
-    sq_save_data(sq, argv_copy);
+    sq_save_data(sq, (char *)argv_copy);
 }
 
 sq_save_unique_data(sq, data)
@@ -94,6 +97,29 @@ sq_get_data(sq, data)
     return(1);
 }
 
+sq_remove_data(sq, data)
+    register struct save_queue *sq;
+    register char **data;
+{
+    if (sq->q_next != sq) {
+       *data = 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;
+       return(1);
+    }
+    return(0);
+}
+
+int sq_empty(sq)
+    register struct save_queue *sq;
+{
+    if (sq->q_next == sq)
+      return(1);
+    else
+      return(0);
+}
+
 sq_destroy(sq)
     register struct save_queue *sq;
 {
This page took 0.104664 seconds and 4 git commands to generate.