workaround a stupid issue in how decoding is performed in mutt *sigh*
[apps/madmutt.git] / lib-mime / rfc3676.c
index 68bf1f5..3caa76f 100644 (file)
@@ -13,7 +13,7 @@
 
 #include <utime.h>
 
-#include <lib-ui/curses.h>
+#include <lib-ui/lib-ui.h>
 
 #include "state.h"
 #include "rfc3676.h"
@@ -42,15 +42,12 @@ static void print_flowed_line (char *line, STATE * s, int ql) {
       width = MaxLineLength;
   }
   else {
-    if (option (OPTMBOXPANE))
-      width = COLS - SidebarWidth - WrapMargin - ql - 1;
-    else
-      width = COLS - WrapMargin - ql - 1;
+    width = getmaxx(main_w) - WrapMargin - ql - 1;
 
     if (!(s->flags & M_REPLYING) && option (OPTSTUFFQUOTED))
       --width;
     if (width < 0)
-      width = COLS;
+      width = getmaxx(main_w);
   }
 
   if (m_strlen(line) == 0) {
@@ -165,7 +162,7 @@ int rfc3676_handler (BODY * a, STATE * s) {
      * which may make the line look like fixed although it wasn't
      * so keep this in mind for later processing */
     fixed = buf_len == 0 || buf[buf_len - 1] != ' ' ||
-            (strcmp(buf + buf_off, "-- ") == 0);
+            (m_strcmp(buf + buf_off, "-- ") == 0);
 
     if (delsp && buf_len >= 1 && buf[buf_len-1] == ' ')
       buf[--buf_len] = '\0';
@@ -180,14 +177,14 @@ int rfc3676_handler (BODY * a, STATE * s) {
     }
 
     /* signature separator also flushes the previous paragraph */
-    if (strcmp(buf + buf_off, "-- ") == 0 && curline && *curline) {
+    if (m_strcmp(buf + buf_off, "-- ") == 0 && curline && *curline) {
       print_flowed_line (curline, s, quotelevel);
       *curline = '\0';
       curline_len = 1;
     }
 
     p_realloc(&curline, curline_len + buf_len - buf_off);
-    strcpy (curline + curline_len - 1, buf + buf_off);
+    m_strcpy(curline + curline_len - 1, buf_len - buf_off + 1, buf + buf_off);
     curline_len += buf_len - buf_off;
 
     /* if this was a fixed line the paragraph is finished */
@@ -225,7 +222,7 @@ void rfc3676_space_stuff (HEADER* hdr) {
   if ((in = safe_fopen (hdr->content->filename, "r")) == NULL)
     return;
 
-  out = m_tempfile(tmpf, sizeof(tmpf), NONULL(Tempdir), NULL);
+  out = m_tempfile(tmpf, sizeof(tmpf), NONULL(mod_core.tmpdir), NULL);
   if (!out) {
     m_fclose(&in);
     return;