Rocco Rutte [Tue, 6 Nov 2007 17:23:06 +0000 (18:23 +0100)]
Add percentages to progress bar optionally supplied by caller.
This is necessary to let the mbox driver print useful percentages. If there's no
percentage given and we have a size, calculate on it on our own. Closes #2929.
Rocco Rutte [Mon, 5 Nov 2007 16:47:26 +0000 (17:47 +0100)]
Save value of errno across mutt_endwin() calls.
Mutt_endwin() is sometimes called after noticing an error but before
printing the message via perror(). Closes #2965.
Ralf Wildenhues [Mon, 5 Nov 2007 11:11:21 +0000 (12:11 +0100)]
Optionally define $datarootdir on our own for autoconf <2.60 compatibility.
While I'm at it, fix two warnings in other files about
ignoring datarootdir with autoconf >2.60. Closes #2905.
Unknown [Sun, 4 Nov 2007 17:27:24 +0000 (18:27 +0100)]
Use strtok_r() to parse mailto: links, not strtok().
In case a headers needs to call mutt_parse_references() which uses
strtok(), too, later headers will be silently discarded. Closes #2968.
Rocco Rutte [Sun, 4 Nov 2007 17:14:25 +0000 (18:14 +0100)]
Prevent mailto parsing buffer overflow by ignoring too long header.
If they're longer than our buffer, we can't turn it into a header to
be parsed by mutt_parse_rfc822_line() anyway, so we bail out in this
case. Also make main() catchup mailto parsing errors. Closes #2980.
Rocco Rutte [Thu, 1 Nov 2007 20:21:33 +0000 (21:21 +0100)]
Unbreak exact address feature.
The problem was that when reading back tempfiles for pager display, trailing
\n were not removed from the input so the pager displayed 2 instead of 1.
Brendan Cully [Wed, 31 Oct 2007 21:04:48 +0000 (14:04 -0700)]
Fix the test for flushing queued STATUS requests in imap_buffy_check.
This should fix the bug that caused every other IMAP connection to
fail to get the new message counts. Thanks to exg for his generous
help debugging this one.
Rocco Rutte [Thu, 18 Oct 2007 08:20:49 +0000 (10:20 +0200)]
Enlarge temporary buffer in hdr_format_str to prevent subject truncation.
The subject along with the thread tree are composed using a
SHORT_STRING-sized buffer which may lead to truncation even
though the destination buffer is large enough.
Rocco Rutte [Thu, 11 Oct 2007 10:10:49 +0000 (12:10 +0200)]
Document format string pipes.
This is roughly the commit message only. Add a line to UPDATING (mark
it as a change rather than a new feature as it may break setups).
Enlarge buffers for printing menu entries from STRING to LONG_STRING.
Now that multibyte padding works, we may too soon run into too short
buffers for common terminal widths in graphical terminals.
Use mutt_paddstr() to print compose menu's status line rather than printw().
All other menus use mutt_paddstr(): printw() prints only N bytes, not N columns.
Enlarge error buffer in mutt_enter_command() to not truncate option queries.
The error buffer gets passed down into parse_set() using it to report
option values. SHORT_STRING is too short to even print some defaults
(e.g. $status_format).
Let %*X padding share the same code of %>X padding
The current implementation of %*X was completely multibyte-unaware and
had buffer overflow issues with large terminals. Now we use the same
code as %>X has and optionally only truncate left content to make sure
the right content can be printed entirely.
Make mutt_FormatString() more multibyte-aware
As default cause, don't copy raw bytes but copy multibyte chars instead
to ensure column computation is correct (needed for padding).
Do so by checking columns and bytes individually to make sure we really
don't write past the end of allocated buffers. This patch fixes all my
crashes I saw with files attached to/with the settings for #2882 and #2900.
Michael Vrable [Thu, 16 Aug 2007 03:09:42 +0000 (20:09 -0700)]
Fix RFC 3676 (format=flowed text) handling.
The old code would consider a line containing "> " to be flowed, but
since this is a quoted and space-stuffed line containing no additional
text, by my reading of RFC 3676 it should be fixed.
Clean up the handling of format=flowed text. Fix the test to determine
whether a line is fixed--if a line ends in a space only because the last
character is a space from space-stuffing, consider the line to be a
fixed line. This makes the test for ((buf_len - buf_off) <= 0) later no
longer necessary.
Also simplify the code by removing checks for curline being non-null; it
is allocated at the start of the function and never reallocated to size
zero, so it should never be a null pointer.
prev_sb.st_size was initialized to zero if USE_FCNTL but not if
USE_FLOCK. Silence the gcc warning for both cases by zeroing the stat
structures on the stack.
Other minor cleanups:
- clean up some whitespace
- convert return (foo) to return foo
- return r at the bottom of the function instead of testing values and
returning them explicitly
- add vim modeline