]> granicus.if.org Git - neomutt/commitdiff
add option to disable fmemopen
authorRichard Russon <rich@flatcap.org>
Sat, 6 Aug 2016 12:08:28 +0000 (13:08 +0100)
committerRichard Russon <rich@flatcap.org>
Thu, 18 Aug 2016 16:40:24 +0000 (17:40 +0100)
configure.ac
handler.c
main.c
pattern.c

index 155336515e0dadad84111bc5e71f8ff45521a472..e2595e7325f23e0da8615bbf1192f679c28ea5ed 100644 (file)
@@ -1318,7 +1318,11 @@ if test $mutt_cv_langinfo_yesexpr = yes; then
   AC_DEFINE(HAVE_LANGINFO_YESEXPR,1,[ Define if you have <langinfo.h> and nl_langinfo(YESEXPR). ])
 fi
 
-AC_CHECK_FUNCS(fmemopen open_memstream)
+AC_CHECK_FUNCS(fmemopen open_memstream, [
+       AC_ARG_ENABLE(fmemopen, AS_HELP_STRING([--disable-fmemopen],[Do NOT use fmemopen]),
+       [],
+       [AC_DEFINE(USE_FMEMOPEN, 1, [Use fmemopen])])
+])
 
 dnl Documentation tools
 have_openjade="no"
index d4490fd35bffb12c3c31994186ce9d64c93bd500..014268f920c7899dfc495052146d5d44fa515469 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -1596,7 +1596,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
   int origType;
   char *savePrefix = NULL;
   FILE *fp = NULL;
-#ifndef HAVE_FMEMOPEN
+#ifndef USE_FMEMOPEN
   char tempfile[_POSIX_PATH_MAX];
 #endif
   size_t tmplength = 0;
@@ -1606,7 +1606,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
 
   fseeko (s->fpin, b->offset, 0);
 
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
   char *temp;
   size_t tempsize;
 #endif
@@ -1626,7 +1626,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
     {
       /* decode to a tempfile, saving the original destination */
       fp = s->fpout;
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
      s->fpout = open_memstream (&temp, &tempsize);
      if (!s->fpout) {
        mutt_error _("Unable to open memory stream!");
@@ -1670,7 +1670,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
       /* restore final destination and substitute the tempfile for input */
       s->fpout = fp;
       fp = s->fpin;
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
       if (tempsize) {
         s->fpin = fmemopen (temp, tempsize, "r");
       } else { /* fmemopen cannot handle zero-length buffers */
@@ -1708,7 +1708,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
 
       /* restore the original source stream */
       safe_fclose (&s->fpin);
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
       if (tempsize)
         FREE(&temp);
 #endif
diff --git a/main.c b/main.c
index b6541697f4c9a7a3c14d6862393197798bd82318..91b3097d90b4e553a05860eeff8a2294df3ed405 100644 (file)
--- a/main.c
+++ b/main.c
@@ -494,6 +494,12 @@ static void show_version (void)
        "-USE_SIDEBAR  "
 #endif
 
+#if USE_FMEMOPEN
+       "+USE_FMEMOPEN  "
+#else
+       "-USE_FMEMOPEN  "
+#endif
+
        );
 
 #ifdef ISPELL
index e5eef6cca5a77ad0490f5256f6212f1775964d42..831ea3346aff3f8f8a56e6ffc2a5016138f44a78 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -152,7 +152,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
   HEADER *h = ctx->hdrs[msgno];
   char *buf;
   size_t blen;
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
   char *temp;
   size_t tempsize;
 #else
@@ -168,7 +168,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
       memset (&s, 0, sizeof (s));
       s.fpin = msg->fp;
       s.flags = MUTT_CHARCONV;
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
       s.fpout = open_memstream (&temp, &tempsize);
       if (!s.fpout) {
        mutt_perror ("Error opening memstream");
@@ -197,7 +197,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
          if (s.fpout)
          {
            safe_fclose (&s.fpout);
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
             FREE(&temp);
 #else
            unlink (tempfile);
@@ -210,7 +210,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
        mutt_body_handler (h->content, &s);
       }
 
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
       fclose (s.fpout);
       lng = tempsize;
 
@@ -280,7 +280,7 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
     if (option (OPTTHOROUGHSRC))
     {
       safe_fclose (&fp);
-#ifdef HAVE_FMEMOPEN
+#ifdef USE_FMEMOPEN
       if (tempsize)
         FREE(&temp);
 #else