pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: textproc/mendexk bug report



Fixed in mendexk-2.6fnb3.

-- 
Min Sik Kim

On Sep 7, 2013, at 7:34 AM, Makoto Fujiwara <makoto%ki.nu@localhost> wrote:

> Hi, I'm reading ptex mailing list and following bug is
> reported. Would you commit this ?
> 
> Thanks a lot,
> ---
> Makoto Fujiwara, 
> Chiba, Japan, Narita Airport and Disneyland prefecture.
> 
> Index: textproc/mendexk/distinfo
> ===================================================================
> RCS file: /cvsroot/pkgsrc/textproc/mendexk/distinfo,v
> retrieving revision 1.2
> diff -u -r1.2 distinfo
> --- textproc/mendexk/distinfo 3 Mar 2012 22:13:39 -0000       1.2
> +++ textproc/mendexk/distinfo 7 Sep 2013 14:10:04 -0000
> @@ -3,3 +3,4 @@
> SHA1 (texlive-20110705-source.tar.xz) = 
> 7a47cfe847801c86c98da8ade181baf97339f6e4
> RMD160 (texlive-20110705-source.tar.xz) = 
> fbcad494cc4717a0238ab2624f259270fce9332b
> Size (texlive-20110705-source.tar.xz) = 131207904 bytes
> +SHA1 (patch-texk_mendex_fwrite.c) = eae86a2a8af6d79b0a1ce12cb7430914fbe6dbca
> Index: textproc/mendexk/patches/patch-texk_mendex_fwrite.c
> ===================================================================
> RCS file: textproc/mendexk/patches/patch-texk_mendex_fwrite.c
> diff -N textproc/mendexk/patches/patch-texk_mendex_fwrite.c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ textproc/mendexk/patches/patch-texk_mendex_fwrite.c       7 Sep 2013 
> 14:10:04 -0000
> @@ -0,0 +1,78 @@
> +$NetBSD$
> +
> +Dear all,
> +
> +I hope there is still someone listening.
> +
> +Since quite some time there is a bug in mendex.
> +See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534641
> +
> +Easy to reproduce:
> +
> +With the following idx file:
> +     \indexentry{foo|(}{1}
> +     \indexentry{foo|mac}{1}
> +     \indexentry{foo|)}{1}
> +mendex produces
> +     ...
> +     \item foo, 1}, 1
> +     ...
> +instead of
> +     ...
> +     \item foo, \mac{1}, 1
> +     ...
> +
> +I looked through the current sources in TeX Live and found that
> +in fwrite.c, function range_check:
> +          if (strlen(ind.p[j].enc)>0) {
> +            sprintf(tmpbuff,"%s%s%s",encap_prefix,ind.p[j].enc,encap_infix);
> +            sprintf(tmpbuff,"%s%s%s",ind.p[j].page,encap_suffix,delim_n);
> +            linecheck(lbuff,tmpbuff);
> +          }
> +that looks suspicious. The tmpbuff is overwritten on the second
> +incantation, and in fact the 
> +     encap_prefix            (which is \)
> +     ind.p[j].enc            (which is the macro name)
> +     encap_infix             (which is {)
> +are missing from the output.
> +
> +So my guess is that the correct version would be to have
> +     
> sprintf(tmpbuff,"%s%s%s%s%s%s",encap_prefix,ind.p[j].enc,encap_infix,ind.p[j].page,encap_suffix,delim_n);
> +instead.
> +
> +And indeed, with that change the output is as expected.
> +
> +Checking the differences I see that the *reverse change* was introduced
> +between 2.6c and 2.6d. So till 2.6c the above line was there.
> +
> +I am not sure who is currently maintaining mendex, but I would 
> +suggest to fix it as lined out above.I attach a patch against
> +current TeX Live sources (as far as I see).
> +
> +
> +Norbert
> +------------------------------------------------------------------------
> +      ChangeLog
> +  +2013-09-07  Norbert Preining  <preining%logic.at@localhost>
> +  +
> +  +  * fwrite.c: fix missing output when range operators are
> +  +  used with macro definitions
> +  +
> +   2012-11-19  Peter Breitenlohner  <peb%mppmu.mpg.de@localhost>
> + 
> +     * Makefile.am: Avoid use of deprecated INCLUDES.
> +--- fwrite.c
> ++++ fwrite.c
> +@@ -384,8 +384,7 @@ static int range_check(struct index ind, int count, char 
> *lbuff)
> +                                             ind.p[j].enc++;
> +                                     }
> +                                     if (strlen(ind.p[j].enc)>0) {
> +-                                            
> sprintf(tmpbuff,"%s%s%s",encap_prefix,ind.p[j].enc,encap_infix);
> +-                                            
> sprintf(tmpbuff,"%s%s%s",ind.p[j].page,encap_suffix,delim_n);
> ++                                            
> sprintf(tmpbuff,"%s%s%s%s%s%s",encap_prefix,ind.p[j].enc,encap_infix,ind.p[j].page,encap_suffix,delim_n);
> +                                             linecheck(lbuff,tmpbuff);
> +                                     }
> +                             }
> +
> +--LQksG6bCIzRHxTLp--
> +
> 



Home | Main Index | Thread Index | Old Index