X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Fcontrol-stack.c;h=8456f819f53eaa13e0d77bda090883527aad3d03;hb=b4c6c0abd5358cb64757bec30a42be300e9ccd0f;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..8456f819 100644 --- a/src/language/control/control-stack.c +++ b/src/language/control/control-stack.c @@ -2,7 +2,8 @@ #include "control-stack.h" #include #include -#include "message.h" +#include +#include #include "xalloc.h" #include "gettext.h" @@ -10,17 +11,17 @@ 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 +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,27 +44,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 +75,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 +88,7 @@ ctl_stack_pop (void *private UNUSED) } bool -ctl_stack_is_empty (void) +ctl_stack_is_empty (void) { return ctl_stack == NULL; }