X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib%2Fstr.h;h=cc2e3ac7f6aa637aa110de38b7e3bcee353a2c31;hp=b9adfec89fcc2a47952acb51d3268be6d70da763;hb=8b7093aff990803877b20e86826f0693817cbcaf;hpb=203e950e3d3c76795fa49895d040f732adad2049 diff --git a/lib/str.h b/lib/str.h index b9adfec..cc2e3ac 100644 --- a/lib/str.h +++ b/lib/str.h @@ -8,11 +8,57 @@ * please see the file GPL in the top level source directory. */ -/* mutt functions which are generally useful. */ - #ifndef _LIB_STR_H #define _LIB_STR_H +#include + #define NONULL(x) x?x:"" +# define HUGE_STRING 5120 +# define LONG_STRING 1024 +# define STRING 256 +# define SHORT_STRING 128 + +/* + * Create a format string to be used with scanf. + * To use it, write, for instance, MUTT_FORMAT(HUGE_STRING). + * + * See K&R 2nd ed, p. 231 for an explanation. + */ +# define _MUTT_FORMAT_2(a,b) "%" a b +# define _MUTT_FORMAT_1(a, b) _MUTT_FORMAT_2(#a, b) +# define MUTT_FORMAT(a) _MUTT_FORMAT_1(a, "s") +# define MUTT_FORMAT2(a,b) _MUTT_FORMAT_1(a, b) + +# define ISSPACE(c) isspace((unsigned char)c) +# define strfcpy(A,B,C) strncpy(A,B,C), *(A+(C)-1)=0 + +/* this macro must check for *c == 0 since isspace(0) has unreliable behavior + on some systems */ +# define SKIPWS(c) while (*(c) && isspace ((unsigned char) *(c))) c++; + +#define ISBLANK(c) (c == ' ' || c == '\t') +/* + * These functions aren't defined in lib.c, but + * they are used there. + * + * A non-mutt "implementation" (ahem) can be found in extlib.c. + */ + +char *mutt_strlower (char *); +char *mutt_substrcpy (char *, const char *, const char *, size_t); +char *mutt_substrdup (const char *, const char *); +char *safe_strcat (char *, size_t, const char *); +char *safe_strncat (char *, size_t, const char *, size_t); +char *safe_strdup (const char *); +int mutt_strcasecmp (const char *, const char *); +int mutt_strcmp (const char *, const char *); +int mutt_strncasecmp (const char *, const char *, size_t); +int mutt_strncmp (const char *, const char *, size_t); +int mutt_strcoll (const char *, const char *); +void mutt_str_replace (char **p, const char *s); +void mutt_str_adjust (char **p); +size_t mutt_strlen (const char *a); + #endif /* !_LIB_STR_H */