projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Unset all MH environment variables that aren't set below.
[mmh]
/
uip
/
mhparse.c
diff --git
a/uip/mhparse.c
b/uip/mhparse.c
index
5b48483
..
8035113
100644
(file)
--- a/
uip/mhparse.c
+++ b/
uip/mhparse.c
@@
-85,16
+85,12
@@
struct k2v SubApplication[] = {
};
};
-/* ftpsbr.c */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-
/* mhcachesbr.c */
int find_cache (CT, int, int *, char *, char *, int);
/* mhmisc.c */
int part_ok (CT, int);
int type_ok (CT, int);
/* mhcachesbr.c */
int find_cache (CT, int, int *, char *, char *, int);
/* mhmisc.c */
int part_ok (CT, int);
int type_ok (CT, int);
-int make_intermediates (char *);
void content_error (char *, CT, char *, ...);
/* mhfree.c */
void content_error (char *, CT, char *, ...);
/* mhfree.c */
@@
-1731,7
+1727,7
@@
static int
openBase64 (CT ct, char **file)
{
int bitno, cc, digested;
openBase64 (CT ct, char **file)
{
int bitno, cc, digested;
- int fd, len, skip;
+ int fd, len, skip, own_ct_fp = 0;
unsigned long bits;
unsigned char value, *b, *b1, *b2, *b3;
unsigned char *cp, *ep;
unsigned long bits;
unsigned char value, *b, *b1, *b2, *b3;
unsigned char *cp, *ep;
@@
-1802,9
+1798,12
@@
openBase64 (CT ct, char **file)
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(1)");
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(1)");
- if (!ct->c_fp && (ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
- content_error (ct->c_file, ct, "unable to open for reading");
- return NOTOK;
+ if (! ct->c_fp) {
+ if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
+ content_error (ct->c_file, ct, "unable to open for reading");
+ return NOTOK;
+ }
+ own_ct_fp = 1;
}
if ((digested = ct->c_digested))
}
if ((digested = ct->c_digested))
@@
-1916,9
+1915,17
@@
self_delimiting:
ready_to_go:
*file = ce->ce_file;
ready_to_go:
*file = ce->ce_file;
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
return fileno (ce->ce_fp);
clean_up:
return fileno (ce->ce_fp);
clean_up:
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
free_encoding (ct, 0);
return NOTOK;
}
free_encoding (ct, 0);
return NOTOK;
}
@@
-1958,7
+1965,7
@@
InitQuoted (CT ct)
static int
openQuoted (CT ct, char **file)
{
static int
openQuoted (CT ct, char **file)
{
- int cc, digested, len, quoted;
+ int cc, digested, len, quoted, own_ct_fp = 0;
unsigned char *cp, *ep;
char buffer[BUFSIZ];
unsigned char mask;
unsigned char *cp, *ep;
char buffer[BUFSIZ];
unsigned char mask;
@@
-2020,17
+2027,15
@@
openQuoted (CT ct, char **file)
return NOTOK;
}
return NOTOK;
}
- if ((ce->ce_fp = fopen (ce->ce_file, "w+")) == NULL) {
- content_error (ce->ce_file, ct, "unable to fopen for reading/writing");
- return NOTOK;
- }
-
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(2)");
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(2)");
- if (!ct->c_fp && (ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
- content_error (ct->c_file, ct, "unable to open for reading");
- return NOTOK;
+ if (! ct->c_fp) {
+ if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
+ content_error (ct->c_file, ct, "unable to open for reading");
+ return NOTOK;
+ }
+ own_ct_fp = 1;
}
if ((digested = ct->c_digested))
}
if ((digested = ct->c_digested))
@@
-2152,10
+2157,18
@@
openQuoted (CT ct, char **file)
ready_to_go:
*file = ce->ce_file;
ready_to_go:
*file = ce->ce_file;
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
return fileno (ce->ce_fp);
clean_up:
free_encoding (ct, 0);
return fileno (ce->ce_fp);
clean_up:
free_encoding (ct, 0);
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
return NOTOK;
}
return NOTOK;
}
@@
-2178,7
+2191,7
@@
Init7Bit (CT ct)
int
open7Bit (CT ct, char **file)
{
int
open7Bit (CT ct, char **file)
{
- int cc, fd, len;
+ int cc, fd, len, own_ct_fp = 0;
char buffer[BUFSIZ];
/* sbeck -- handle suffixes */
char *cp;
char buffer[BUFSIZ];
/* sbeck -- handle suffixes */
char *cp;
@@
-2288,9
+2301,12
@@
open7Bit (CT ct, char **file)
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(3)");
if ((len = ct->c_end - ct->c_begin) < 0)
adios (NULL, "internal error(3)");
- if (!ct->c_fp && (ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
- content_error (ct->c_file, ct, "unable to open for reading");
- return NOTOK;
+ if (! ct->c_fp) {
+ if ((ct->c_fp = fopen (ct->c_file, "r")) == NULL) {
+ content_error (ct->c_file, ct, "unable to open for reading");
+ return NOTOK;
+ }
+ own_ct_fp = 1;
}
lseek (fd = fileno (ct->c_fp), (off_t) ct->c_begin, SEEK_SET);
}
lseek (fd = fileno (ct->c_fp), (off_t) ct->c_begin, SEEK_SET);
@@
-2327,10
+2343,18
@@
open7Bit (CT ct, char **file)
ready_to_go:
*file = ce->ce_file;
ready_to_go:
*file = ce->ce_file;
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
return fileno (ce->ce_fp);
clean_up:
free_encoding (ct, 0);
return fileno (ce->ce_fp);
clean_up:
free_encoding (ct, 0);
+ if (own_ct_fp) {
+ fclose (ct->c_fp);
+ ct->c_fp = NULL;
+ }
return NOTOK;
}
return NOTOK;
}