X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Fcontrol-stack.c;h=f806c7803a5e01c7962ea5e1706f85329182e37b;hb=81579d9e9f994fb2908f50af41c3eb033d216e58;hp=9f1502c2b188f60886919c29beb75426c1cbf478;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp-builds.git diff --git a/src/language/control/control-stack.c b/src/language/control/control-stack.c index 9f1502c2..f806c780 100644 --- a/src/language/control/control-stack.c +++ b/src/language/control/control-stack.c @@ -1,26 +1,31 @@ #include -#include "control-stack.h" + +#include "language/control/control-stack.h" + #include #include -#include "message.h" -#include "xalloc.h" + +#include "libpspp/compiler.h" +#include "libpspp/message.h" + +#include "gl/xalloc.h" #include "gettext.h" #define _(msgid) gettext (msgid) 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) +ctl_stack_clear (void) { - while (ctl_stack != NULL) + while (ctl_stack != NULL) { struct ctl_struct *top = ctl_stack; msg (SE, _("%s without %s."), @@ -30,7 +35,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,27 +48,27 @@ 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) return top->private; - else + else { if (ctl_stack_search (class) != NULL) msg (SE, _("This command must appear inside %s...%s, " "without intermediate %s...%s."), class->start_name, class->end_name, top->class->start_name, top->class->end_name); - return NULL; + return NULL; } } void * -ctl_stack_search (struct ctl_class *class) +ctl_stack_search (const struct ctl_class *class) { struct ctl_struct *ctl; - + for (ctl = ctl_stack; ctl != NULL; ctl = ctl->down) if (ctl->class == class) return ctl->private; @@ -74,10 +79,10 @@ 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; - + assert (top != NULL); assert (top->private == private); @@ -87,7 +92,7 @@ ctl_stack_pop (void *private UNUSED) } bool -ctl_stack_is_empty (void) +ctl_stack_is_empty (void) { return ctl_stack == NULL; }