63 #define STR(x) vstring_str(x)
76 if ((cp = strrchr(addr,
'@')) != 0) {
87 if ((cp = strrchr(addr,
'@')) != 0) {
107 int main(
int argc,
char **argv)
119 if (cmd->
argc == 0 || cmd->
argv[0][0] ==
'#') {
128 if (strcmp(args[0],
"host") == 0 && cmd->
argc == 2) {
136 else if (strcmp(args[0],
"user") == 0 && cmd->
argc == 2) {
144 else if (strcmp(args[0],
"all") == 0 && cmd->
argc == 2) {
152 else if (strcmp(args[0],
"none") == 0 && cmd->
argc == 2) {
161 vstream_printf(
"Usage: %s host <addr> | user <addr> | all <addr>\n",
#define vstring_fgets_nonl(s, p)
ARGV * argv_free(ARGV *argvp)
int main(int argc, char **argv)
#define casefold_len(dst, src, len)
VSTRING * vstring_strcpy(VSTRING *vp, const char *src)
#define casefold(dst, src)
#define casefold_append(dst, src)
char * fold_addr(VSTRING *result, const char *addr, int flags)
VSTREAM * vstream_printf(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
int vstream_fflush(VSTREAM *stream)
ARGV * argv_split(const char *, const char *)
VSTRING * vstring_free(VSTRING *vp)
void msg_vstream_init(const char *name, VSTREAM *vp)
VSTRING * vstring_strncpy(VSTRING *vp, const char *src, ssize_t len)
VSTRING * vstring_strcat(VSTRING *vp, const char *src)