K_COPY,
K_MAIL,
K_PIPE,
- K_EMPTY
+ K_EMPTY,
+ K_FILTER
};
struct tree {
OPC_JUMP_IF,
OPC_JUMP_UNLESS,
OPC_DELIVER,
- OPC_CALL_EXT,
OPC_NOP,
OPC_CAT,
OPC_GT,
OPC_DIV,
OPC_PIPE,
OPC_MAIL,
+ OPC_FILTER,
OPC_DISCARD
} opcode;
void print_vars(struct list* hash);
void interp(struct list* ins, struct list* hash);
void free_string(char* c);
+void __attribute__ ((noreturn)) bye(int code, char* msg, ...);
/* ham.c */
char* default_mailbox;
+int chars_written;
struct list* current_headers;
struct email* current_body;
struct email* get_body(void);
int deliver_local_email(char* folder, struct email* email);
int write_email_to_fd(int fd, struct email* email);
+char* read_email(struct email* em);
+void open_email(void);
/* lock.c */
void save_gids(void);