]> git.llucax.com Git - software/mutt-debian.git/blob - upstream/extra-patches/incomplete-mbyte
mutt (1.5.9-2sarge2) stable-security; urgency=high
[software/mutt-debian.git] / upstream / extra-patches / incomplete-mbyte
1 # vi: ft=diff
2 This is the incomplete multibyte patch by Anders Helmersson
3 <anders.helmersson@telia.com>.
4
5 It was received at Debian's BTS, Bug#260623.
6
7 * Patch last synced with upstream:
8   - Date: 2004-07-22
9   - File: http://bugs.debian.org/cgi-bin/bugreport.cgi/patch-incomplete_multibyte-2?bug=260623&msg=3&att=1
10
11 * Changes made:
12   - 2004-07-22: added entry to PATCHES file.
13   - 2004-07-22: adjusted paths in the diff (to apply with patch -p1).
14   
15 == END PATCH
16 Index: pager.c
17 ===================================================================
18 RCS file: /home/roessler/cvs/mutt/pager.c,v
19 retrieving revision 3.16
20 diff -u -r3.16 pager.c
21 --- a/pager.c   12 Jul 2004 13:35:27 -0000      3.16
22 +++ b/pager.c   21 Jul 2004 08:10:06 -0000
23 @@ -972,6 +972,9 @@
24    unsigned char *p;
25    static int b_read;
26  
27 +  size_t k, n;
28 +  wchar_t wc;
29 +  
30    if (*buf_ready == 0)
31       {
32      buf[blen - 1] = 0;
33 @@ -986,6 +989,18 @@
34      b_read = (int) (*last_pos - offset);
35      *buf_ready = 1;
36  
37 +    /* trim tail of buf so that it contains complete multibyte characters */
38 +    for (n = b_read, p = buf; n > 0; p += k, n -= k)
39 +    {
40 +      k = mbrtowc (&wc, (char *) p, n, NULL);
41 +      if (k == -2) 
42 +       break; 
43 +      else if (k == -1 || k == 0) 
44 +       k = 1;
45 +    }
46 +    b_read -= n;
47 +    buf[b_read] = 0;
48 +    
49      /* copy "buf" to "fmt", but without bold and underline controls */
50      p = buf;
51      while (*p)
52 --- mutt.orig/PATCHES   1970-01-01 01:00:00.000000000 +0100
53 +++ mutt/PATCHES        2003-08-09 15:51:11.000000000 +0200
54 @@ -1,0 +1 @@
55 +patch.helmersson.incomplete-mbyte.2