bug-texinfo
[Top][All Lists]
Advanced

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

Re: a segfault


From: Karl Berry
Subject: Re: a segfault
Date: Sun, 6 Jun 2004 20:53:43 -0400

    makeinfo --html 
    segfaults with the associated file. 

Seems not every part of new index nodes were getting initialized.
I just checked in this fix.

Thanks,
karl


*** index.c.~1.14.~     Sun Apr 11 11:42:22 2004
--- index.c     Sun Jun  6 17:49:30 2004
***************
*** 180,187 ****
          flush_output ();
  
        new->next = the_indices[which];
-       new->entry_text = index_entry;
        new->entry = NULL;
        /* Since footnotes are handled at the very end of the document,
           node name in the non-split HTML outputs always show the last
           node.  We artificially make it ``Footnotes''.  */
--- 180,187 ----
          flush_output ();
  
        new->next = the_indices[which];
        new->entry = NULL;
+       new->entry_text = index_entry;
        /* Since footnotes are handled at the very end of the document,
           node name in the non-split HTML outputs always show the last
           node.  We artificially make it ``Footnotes''.  */
***************
*** 197,202 ****
--- 197,207 ----
            else
              new->section_name = "";
          }
+       else
+         {
+           new->section = NULL;
+           new->section_name = NULL;
+         }
        new->code = tem->code;
        new->defining_line = line_number - 1;
        new->output_line = no_headers ? output_line_number : node_line_number;
***************
*** 204,212 ****
           something that goes away, for example, inside a macro.
           (see the findexerr test).  */
        new->defining_file = xstrdup (input_filename);
-       the_indices[which] = new;
- 
-       new->entry_number = index_counter;
  
        if (html && splitting)
          {
--- 209,214 ----
***************
*** 215,220 ****
--- 217,227 ----
            else
              new->output_file = xstrdup ("");
          }
+       else
+         new->output_file = NULL;        
+ 
+       new->entry_number = index_counter;
+       the_indices[which] = new;
  
  #if 0
        /* The index breaks if there are colons in the entry.
***************
*** 832,838 ****
                escaped_entry = escape_string (escaped_entry);
                expanded_entry = expansion (escaped_entry, index->code);
                add_html_block_elt_args ("\n<li><a href=\"%s#index-",
!                   (splitting ? index->output_file : ""), index_name);
                add_escaped_anchor_name (index->entry_text);
                add_word_args ("-%d\">%s</a>: ", index->entry_number,
                    expanded_entry);
--- 839,846 ----
                escaped_entry = escape_string (escaped_entry);
                expanded_entry = expansion (escaped_entry, index->code);
                add_html_block_elt_args ("\n<li><a href=\"%s#index-",
!                   (splitting && index->output_file)
!                    ? index->output_file : "");
                add_escaped_anchor_name (index->entry_text);
                add_word_args ("-%d\">%s</a>: ", index->entry_number,
                    expanded_entry);




reply via email to

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