mstring.h 588 B

123456789101112131415161718192021
  1. #ifndef _string_h_
  2. #define _string_h_
  3. struct mstring {
  4. char *base, *ptr, *end;
  5. };
  6. void msprintf(struct mstring *, const char *, ...);
  7. int mputchar(struct mstring *, int);
  8. struct mstring *msnew(void);
  9. char *msdone(struct mstring *);
  10. /* compare two strings, ignoring whitespace, except between two letters or
  11. ** digits (and treat all of these as equal) */
  12. int strnscmp(const char *, const char *);
  13. /* hash a string, ignoring whitespace */
  14. unsigned int strnshash(const char *);
  15. #define mputc(m, ch) ((m)->ptr==(m)->end?mputchar(m,ch):(*(m)->ptr++=(ch)))
  16. #endif /* _string_h_ */