X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=include%2Fcstack.h;h=230fcdde8bda37c66d1b1a92c15a2fa85f0b50ec;hb=4b8ad1b3b464836eca2e876dd418a8e8d87bd721;hp=d6ca4079720637a3d3e9b014bc6e66cf08499e19;hpb=b416f18295f7edcb5474396a6b26a59fd5ddb1f5;p=smdp.git diff --git a/include/cstack.h b/include/cstack.h index d6ca407..230fcdd 100644 --- a/include/cstack.h +++ b/include/cstack.h @@ -2,7 +2,24 @@ #define CSTACK_H /* - * A implementation of a char stack in heap memory. + * 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 . + * * * struct: cstack_t which defines char stack type in heap memory * @@ -21,23 +38,25 @@ * */ +#include "common.h" + typedef struct _cstack_t { - char *content; + wchar_t *content; size_t alloc; size_t size; int head; - void (*push)(struct _cstack_t *self, char c); - char (*pop)(struct _cstack_t *self); - int (*top)(struct _cstack_t *self, char c); - int (*empty)(struct _cstack_t *self); + void (*push)(struct _cstack_t *self, wchar_t c); + wchar_t (*pop)(struct _cstack_t *self); + bool (*top)(struct _cstack_t *self, wchar_t c); + bool (*empty)(struct _cstack_t *self); void (*delete)(struct _cstack_t *self); } cstack_t; cstack_t *cstack_init(); -void cstack_push(cstack_t *self, char c); -char cstack_pop(cstack_t *self); -int cstack_top(cstack_t *self, char c); -int cstack_empty(cstack_t *self); +void cstack_push(cstack_t *self, wchar_t c); +wchar_t cstack_pop(cstack_t *self); +bool cstack_top(cstack_t *self, wchar_t c); +bool cstack_empty(cstack_t *self); void cstack_delete(cstack_t *self); -#endif // !defined( CSTACK_H ) \ No newline at end of file +#endif // !defined( CSTACK_H )