X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fstr.h;h=259fd21b45814a4648e16828e9203fb90aaf55c5;hb=f5c108becd49d78f4898cab11352291f5689d24e;hp=81cda125726f531dd6ff791385f483627bb395bc;hpb=0fa141762183890ebd139ccd9264f08db9011539;p=pspp-builds.git diff --git a/src/libpspp/str.h b/src/libpspp/str.h index 81cda125..259fd21b 100644 --- a/src/libpspp/str.h +++ b/src/libpspp/str.h @@ -1,6 +1,5 @@ /* PSPP - computes sample statistics. Copyright (C) 1997-9, 2000 Free Software Foundation, Inc. - Written by Ben Pfaff . This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -28,14 +27,6 @@ #include "compiler.h" #include "memcasecmp.h" -#include "memmem.h" -#include "snprintf.h" -#include "stpcpy.h" -#include "strcase.h" -#include "strftime.h" -#include "strstr.h" -#include "strtok_r.h" -#include "vsnprintf.h" #include "xvasprintf.h" /* Miscellaneous. */ @@ -69,14 +60,15 @@ void *mempset (void *, int, size_t); #define CC_ALNUM CC_LETTERS CC_DIGITS /* Substrings. */ -struct substring +struct substring { char *string; size_t length; }; #define SS_EMPTY_INITIALIZER {NULL, 0} -#define SS_LITERAL_INITIALIZER(LITERAL) {LITERAL, (sizeof LITERAL) - 1} +#define SS_LITERAL_INITIALIZER(LITERAL) \ + {(char *) LITERAL, (sizeof LITERAL) - 1} /* Constructors. These functions do not allocate any memory, so the substrings @@ -90,8 +82,12 @@ struct substring ss_tail (struct substring, size_t); /* Constructors and destructor that allocate and deallocate memory. */ +struct pool; void ss_alloc_substring (struct substring *, struct substring); void ss_alloc_uninit (struct substring *, size_t); +void ss_alloc_substring_pool (struct substring *, struct substring, + struct pool *); +void ss_alloc_uninit_pool (struct substring *, size_t, struct pool *); void ss_dealloc (struct substring *); /* Mutators. @@ -108,6 +104,7 @@ bool ss_tokenize (struct substring src, struct substring delimiters, size_t *save_idx, struct substring *token); void ss_advance (struct substring *, size_t); bool ss_match_char (struct substring *, char); +bool ss_match_string (struct substring *, const struct substring); int ss_get_char (struct substring *); size_t ss_get_chars (struct substring *, size_t cnt, struct substring *); bool ss_get_until (struct substring *, char delimiter, struct substring *);