[Top][All Lists]
[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 ("&");
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, "&");
! 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. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- texinfo/makeinfo html.c,1.15,1.16 toc.c,1.7,1.8,
dirt <=