X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=cstack.c;h=f56ee2cae072a2bf3367025eee362640a887a753;hb=d4843ea375360f37e965709e73c0fbd68e302dca;hp=647443613f6c5b87475a34cb226685046f53eb9b;hpb=584bba9e9357ff7adc0fcedf75fb098c359abb33;p=smdp.git diff --git a/cstack.c b/cstack.c index 6474436..f56ee2c 100644 --- a/cstack.c +++ b/cstack.c @@ -1,3 +1,24 @@ +/* + * An implementation of a char stack in heap memory. + * Copyright (C) 2014 Michael Goehler + * + * This file is part of mdp. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + #include // malloc, realloc #include "include/cstack.h" @@ -29,8 +50,10 @@ char cstack_pop(cstack_t *self) { return self->content[self->head--]; } -char cstack_top(cstack_t *self) { - return self->content[self->head]; +int cstack_top(cstack_t *self, char c) { + if(self->head >= 0 && self->content[self->head] == c) + return 1; + return 0; } int cstack_empty(cstack_t *self) {