summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2006-05-20 10:42:43 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2006-05-20 10:42:43 +0000
commite7269ace9e44ab2b221f8e297229c8965d296a0f (patch)
treeee0f8ce845e50430735785f2f3370e3aee9d123e
parent7074a95563646f47e7a6ef3608995b0e9e47c3e4 (diff)
downloadmailutils-e7269ace9e44ab2b221f8e297229c8965d296a0f.tar.gz
mailutils-e7269ace9e44ab2b221f8e297229c8965d296a0f.tar.bz2
New file
-rw-r--r--mh/mh_format.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/mh/mh_format.h b/mh/mh_format.h
new file mode 100644
index 000000000..61b3f5a8c
--- /dev/null
+++ b/mh/mh_format.h
@@ -0,0 +1,64 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+ GNU Mailutils is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Mailutils is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Mailutils; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301 USA */
+
+#define obstack_chunk_alloc malloc
+#define obstack_chunk_free free
+#include <obstack.h>
+
+typedef struct /* A string object type */
+{
+ int size; /* Allocated size or 0 for static storage */
+ char *ptr; /* Actual data */
+}
+strobj_t;
+
+#define strobj_ptr(p) ((p)->ptr ? (p)->ptr : "")
+#define strobj_len(p) (strobj_is_null(p) ? 0 : strlen((p)->ptr))
+#define strobj_is_null(p) ((p)->ptr == NULL)
+#define strobj_is_static(p) ((p)->size == 0)
+
+struct mh_machine
+{
+ strobj_t reg_str; /* String register */
+ int reg_num; /* Numeric register */
+
+ strobj_t arg_str; /* String argument */
+ long arg_num; /* Numeric argument */
+
+ size_t pc; /* Program counter */
+ size_t progsize; /* Size of allocated program*/
+ mh_instr_t *prog; /* Program itself */
+ int stop; /* Stop execution immediately */
+
+ struct obstack stk; /* Output buffer */
+ size_t width; /* Output buffer width */
+ size_t ind; /* Output buffer index */
+
+ mu_list_t addrlist; /* The list of email addresses output this far */
+ int fmtflags; /* Current formatting flags */
+
+ mu_message_t message; /* Current message */
+ size_t msgno; /* Its number */
+};
+
+void strobj_free (strobj_t *obj);
+void strobj_create (strobj_t *lvalue, char *str);
+void strobj_set (strobj_t *lvalue, char *str);
+void strobj_assign (strobj_t *lvalue, strobj_t *rvalue);
+void strobj_copy (strobj_t *lvalue, strobj_t *rvalue);
+void strobj_realloc (strobj_t *obj, size_t length);

Return to:

Send suggestions and report system problems to the System administrator.