#include <h/utils.h>
#include <h/tws.h>
-static int get_line(void);
-static int make_mime_composition_file_entry(char *, int, char *);
-
-static int field_size; /* size of header field buffer */
-static char *field; /* header field buffer */
-static FILE *draft_file; /* draft file pointer */
-static FILE *composition_file; /* composition file pointer */
+static int get_line(FILE *, char *, size_t);
+static int make_mime_composition_file_entry(FILE *, char *, int, char *);
int
attach(char *attachment_header_field_name, char *draft_file_name,
char *p; /* miscellaneous string pointer */
FILE *fp; /* pointer for mhn.defaults */
FILE *body_file = NULL; /* body file pointer */
+ FILE *draft_file; /* draft file pointer */
+ int field_size; /* size of header field buffer */
+ char *field; /* header field buffer */
+ FILE *composition_file; /* composition file pointer */
+
/*
* Open up the draft file.
has_attachment = 0;
- while (get_line() != EOF && *field != '\0' && *field != '-') {
+ while (get_line(draft_file, field, field_size) != EOF && *field != '\0' &&
+ *field != '-') {
if (strncasecmp(field, attachment_header_field_name, length) == 0 &&
field[length] == ':') {
for (p = field + length + 1; *p == ' ' || *p == '\t'; p++)
has_body = 0;
- while (get_line() != EOF) {
+ while (get_line(draft_file, field, field_size) != EOF) {
for (p = field; *p != '\0'; p++) {
if (*p != ' ' && *p != '\t') {
has_body = 1;
rewind(draft_file);
- while (get_line() != EOF && *field != '\0' && *field != '-')
+ while (get_line(draft_file, field, field_size) != EOF && *field != '\0' &&
+ *field != '-')
if (strncasecmp(field, attachment_header_field_name, length) != 0 ||
field[length] != ':')
(void)fprintf(composition_file, "%s\n", field);
*/
if (has_body)
- if (make_mime_composition_file_entry(body_file_name, attachformat,
- "text/plain")) {
+ if (make_mime_composition_file_entry(composition_file, body_file_name,
+ attachformat, "text/plain")) {
clean_up_temporary_files(body_file_name, composition_file_name);
adios (NULL, "exiting");
}
rewind(draft_file);
- while (get_line() != EOF && *field != '\0' && *field != '-') {
+ while (get_line(draft_file, field, field_size) != EOF && *field != '\0' &&
+ *field != '-') {
if (strncasecmp(field, attachment_header_field_name, length) == 0 &&
field[length] == ':') {
for (p = field + length + 1; *p == ' ' || *p == '\t'; p++)
/* Don't set the default content type so take
make_mime_composition_file_entry() will try
to infer it from the file type. */
- if (make_mime_composition_file_entry(p, attachformat, 0)) {
+ if (make_mime_composition_file_entry(composition_file,
+ p, attachformat,
+ 0)) {
clean_up_temporary_files(body_file_name,
composition_file_name);
adios (NULL, "exiting");
}
static int
-get_line(void)
+get_line(FILE *draft_file, char *field, size_t field_size)
{
int c; /* current character */
- int n; /* number of bytes in buffer */
+ size_t n; /* number of bytes in buffer */
char *p; /* buffer pointer */
/*
}
static int
-make_mime_composition_file_entry(char *file_name, int attachformat,
- char *default_content_type)
+make_mime_composition_file_entry(FILE *composition_file, char *file_name,
+ int attachformat, char *default_content_type)
{
int binary; /* binary character found flag */
int c; /* current character */