texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/makeinfo html.c,1.15,1.16 toc.c,1.7,1.8


From: dirt
Subject: texinfo/makeinfo html.c,1.15,1.16 toc.c,1.7,1.8
Date: Thu, 11 Mar 2004 00:28:46 +0100

Update of /cvsroot/texinfo/texinfo/makeinfo
In directory sheep:/tmp/cvs-serv28725/makeinfo

Modified Files:
        html.c toc.c 
Log Message:
2004-03-11  Alper Ersoy  <address@hidden>

        * makeinfo/html.c (add_escaped_anchor_name): removed unnecessary
        ampersand check.
        (fix_filename): removed size calculation and memory reallocation for
        filename as it is already PATH_MAX bytes.  Added a check so we don't
        cross PATH_MAX boundary while expanding not-isalnum to hex values.

        * makeinfo/toc.c (toc_add_entry): generate links following html cross
        refs proposal from Patrice Dumas.



Index: html.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/makeinfo/html.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** html.c      10 Mar 2004 22:34:21 -0000      1.15
--- html.c      10 Mar 2004 23:28:43 -0000      1.16
***************
*** 595,600 ****
             for example o-umlaut should be 246, not -10.  */
          add_word_args ("_00%x", (unsigned char) *name);
-       else if (*name == '&')
-         add_word ("&amp;");
        else
          add_char (*name);
--- 595,598 ----
***************
*** 646,664 ****
    char *oldname = xstrdup (filename);
  
!   {
!     /* Determine the size needed for the fixed name.  */
!     int size = 0;
!     for (i = 0; i < len; i++)
!       {
!         /* Add 5 for non [A-Za-z0-9] (``_00xx'').  */
!         if (!isalnum (filename[i]))
!           size += 5;
!         else
!           size++;
!       }
! 
!     filename = (char *) xrealloc (filename, (size + 1) * sizeof (char));
!     filename[0] = 0;
!   }
  
    for (i = 0; i < len; i++)
--- 644,648 ----
    char *oldname = xstrdup (filename);
  
!   *filename = '\0';
  
    for (i = 0; i < len; i++)
***************
*** 675,678 ****
--- 659,666 ----
            free (hexchar);
          }
+ 
+       /* Check if we are nearing boundaries.  */
+       if (strlen (filename) >= PATH_MAX - 20)
+         break;
      }
  

Index: toc.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/makeinfo/toc.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** toc.c       13 Feb 2004 22:01:39 -0000      1.7
--- toc.c       10 Mar 2004 23:28:43 -0000      1.8
***************
*** 92,103 ****
            for (; *s; s++)
              {
!               if (*s == '&')
!                 {
!                   strcpy (d, "&amp;");
!                   d += 5;
!                 }
                else if (! URL_SAFE_CHAR (*s))
                  {
!                   sprintf (d, "%%%x", (unsigned char) *s);
                    /* do this manually since sprintf returns char * on
                       SunOS 4 and other old systems.  */
--- 92,100 ----
            for (; *s; s++)
              {
!               if (cr_or_whitespace (*s))
!                 *d++ = '-';
                else if (! URL_SAFE_CHAR (*s))
                  {
!                   sprintf (d, "_00%x", (unsigned char) *s);
                    /* do this manually since sprintf returns char * on
                       SunOS 4 and other old systems.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]