"str" interface declaration

crux-00011: $SRC/str/str.h


struct str
{
  char * s;
  int l;
  int z;
};

int str_length (struct str *);
char * str_view (struct str *, int pos, int l);
void str_set_length (struct str *, int l);
void str_set (struct str *, int l, char * s);
void str_set0 (struct str *, char * s);
void str_adjoin (struct str *, char c);
void str_append (struct str *, int l, char * s);
void str_append0 (struct str *, char *);
void str_copy (struct str *, struct str *);
void str_cat (struct str *, struct str *);
void str_trim (struct str *);
int str_overlaps (struct str *, int l, char * c);

/*

    This file is part of Crux.

    Crux 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.

    Crux 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 Crux.  If not, see <http://www.gnu.org/licenses/>.

*/