X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/62bfda03da9ba46273bbbffe6be1df498b21d991..0509728c8a506f287fa3483d8e8ffaf8fb66d41d:/h/utils.h?ds=inline diff --git a/h/utils.h b/h/utils.h index 767ff9b8..19d71563 100644 --- a/h/utils.h +++ b/h/utils.h @@ -1,8 +1,15 @@ - -/* - * utils.h -- utility prototypes +/* utils.h -- utility prototypes */ +/* PLURALS gives a pointer to the string "s" when n isn't 1, and to the + * empty string "" when it is. Suitable for obtaining the plural `s' + * used for English nouns. It treats -1 as plural, as does GNU gettext. + * Having output vary for plurals is annoying for those writing parsers; + * better to phrase the output such that no test is needed, e.g. + * "messages found: 42". */ +extern const char plurals[]; +#define PLURALS(n) (plurals + ((n) == 1)) + /* Call malloc(3), exiting on NULL return. */ void *mh_xmalloc(size_t size); @@ -70,9 +77,9 @@ void trunccpy(char *dst, const char *src, size_t size); bool has_prefix(const char *s, const char *prefix); bool has_suffix(const char *s, const char *suffix); bool has_suffix_c(const char *s, int c); -void TrimSuffixC(char *s, int c); -void ToLower(char *s); -void ToUpper(char *s); +void trim_suffix_c(char *s, int c); +void to_lower(char *s); +void to_upper(char *s); /* * See if a string contains 8 bit characters (use isascii() for the test). @@ -100,6 +107,16 @@ int contains8bit(const char *start, const char *end); */ int scan_input (int fd, int *eightbit); +/* + * program initialization + * + * argv0 - argv[0], presumably the program name + * read_context - 0: don't read context + * - 1: read context, check nmh version, and issue warning message + * if non-existent or old + * - 2: read context, don't check nmh version + */ +int nmh_init(const char *argv0, int read_context); /* * Compares prior version of nmh with current version. Returns 1