Actually implement the new procedure code and adapt all of its clients
[pspp] / src / language / control / control-stack.c
index 9f1502c2b188f60886919c29beb75426c1cbf478..4b57bdeceb473e1b2d48872ac25beb2ed2fabd8f 100644 (file)
@@ -2,7 +2,8 @@
 #include "control-stack.h"
 #include <assert.h>
 #include <stdlib.h>
-#include "message.h"
+#include <libpspp/compiler.h>
+#include <libpspp/message.h>
 #include "xalloc.h"
 
 #include "gettext.h"
 
 struct ctl_struct
   {
-    struct ctl_class *class;    /* Class of control structure. */
+    const struct ctl_class *class;    /* Class of control structure. */
     struct ctl_struct *down;   /* Points toward the bottom of ctl_stack. */
     void *private;              /* Private data. */
   };
 
-struct ctl_struct *ctl_stack;
+static struct ctl_struct *ctl_stack;
 
 void
 ctl_stack_clear (void) 
@@ -30,7 +31,7 @@ ctl_stack_clear (void)
 }
 
 void
-ctl_stack_push (struct ctl_class *class, void *private) 
+ctl_stack_push (const struct ctl_class *class, void *private) 
 {
   struct ctl_struct *ctl;
 
@@ -43,7 +44,7 @@ ctl_stack_push (struct ctl_class *class, void *private)
 }
 
 void *
-ctl_stack_top (struct ctl_class *class) 
+ctl_stack_top (const struct ctl_class *class) 
 {
   struct ctl_struct *top = ctl_stack;
   if (top != NULL && top->class == class)
@@ -60,7 +61,7 @@ ctl_stack_top (struct ctl_class *class)
 }
 
 void *
-ctl_stack_search (struct ctl_class *class) 
+ctl_stack_search (const struct ctl_class *class) 
 {
   struct ctl_struct *ctl;
   
@@ -74,7 +75,7 @@ ctl_stack_search (struct ctl_class *class)
 }
 
 void
-ctl_stack_pop (void *private UNUSED
+ctl_stack_pop (void *private) 
 {
   struct ctl_struct *top = ctl_stack;