]> andersk Git - moira.git/commitdiff
add sq_remove_last_data, to remove the most recently sq_get_data'd
authordanw <danw>
Mon, 12 Jul 1999 16:26:11 +0000 (16:26 +0000)
committerdanw <danw>
Mon, 12 Jul 1999 16:26:11 +0000 (16:26 +0000)
element from an sq

include/moira.h
lib/sq.c

index 524bb95bed6cbcc1443b3967966634f57f101d5a..40473dd05a40f5d5aeb48d0b5553443941ccb8f5 100644 (file)
@@ -118,6 +118,7 @@ int sq_save_unique_string(struct save_queue *sq, char *data);
    pointer to a pointer */
 int sq_get_data(struct save_queue *sq, void *data);
 int sq_remove_data(struct save_queue *sq, void *data);
+void sq_remove_last_data(struct save_queue *sq);
 int sq_empty(struct save_queue *sq);
 void sq_destroy(struct save_queue *sq);
 
index 3fbd15f4c19b338a2c74882d15b92f755d061616..e7ff6a6fd132805e41d2798e368e9a90c2fa52f0 100644 (file)
--- a/lib/sq.c
+++ b/lib/sq.c
@@ -127,6 +127,18 @@ int sq_remove_data(struct save_queue *sq, void *data)
   return 0;
 }
 
+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)
This page took 0.08195 seconds and 5 git commands to generate.