1/* 2 Copyright (c) 2010 Frank Lahm <franklahm@gmail.com> 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13*/ 14 15/*! 16 * @file 17 * Additional functions for bstrlib. 18 */ 19 20#ifndef ATALK_BSTRADD_H 21#define ATALK_BSTRADD_H 22 23#ifdef HAVE_CONFIG_H 24#include <config.h> 25#endif 26 27#include <atalk/bstrlib.h> 28 29#define cfrombstr(b) ((char *)((b)->data)) 30 31/* strip slashes from end of a bstring */ 32#define BSTRING_STRIP_SLASH(a) \ 33 do { \ 34 while (bchar((a), blength(a) - 1) == '/') \ 35 bdelete((a), blength(a) - 1, 1); \ 36 } while (0); 37 38typedef struct tagbstring static_bstring; 39 40extern bstring brefcstr(const char *str); 41extern int bunrefcstr(bstring b); 42 43extern struct bstrList *bstrListCreateMin(int min); 44extern int bstrListPush(struct bstrList *sl, bstring bs); 45extern bstring bstrListPop(struct bstrList *sl); 46extern bstring bjoinInv(const struct bstrList * bl, const_bstring sep); 47#endif /* ATALK_BSTRADD_H */ 48