texinfo-commits
[Top][All Lists]
Advanced

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

[5827] mark dir node and man pages as internal


From: Gavin D. Smith
Subject: [5827] mark dir node and man pages as internal
Date: Sun, 14 Sep 2014 17:24:37 +0000

Revision: 5827
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=5827
Author:   gavin
Date:     2014-09-14 17:24:35 +0000 (Sun, 14 Sep 2014)
Log Message:
-----------
mark dir node and man pages as internal

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/info/dir.c
    trunk/info/footnotes.c
    trunk/info/indices.c
    trunk/info/man.c
    trunk/info/nodemenu.c
    trunk/info/nodes.h
    trunk/info/session.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/ChangeLog     2014-09-14 17:24:35 UTC (rev 5827)
@@ -1,3 +1,17 @@
+2014-09-14  Gavin Smith  <address@hidden>
+
+       * info/nodes.h (N_Unstored): New flag.
+       * info/session.c (info_split_window): Copy 'nodename' and 'references'
+       fields if node is marked with N_Unstored, instead of N_IsInternal.
+       * info/nodemenu.c (list_visted_nodes),
+       * info/indices.c (info_virtual_index),
+       * info/footnotes.c (make_footnotes_node): Mark generated nodes with
+       N_Unstored.
+       * info/dir.c (build_dir_node),
+       * info/man.c (get_manpage_node): Mark generated nodes with
+       N_IsInternal, to disable attempting to get another node in a
+       containing file.
+
 2014-09-13  Gavin Smith  <address@hidden>
 
        * info/info-utils.c (copy_converting) <EINVAL>: Try converting again

Modified: trunk/info/dir.c
===================================================================
--- trunk/info/dir.c    2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/dir.c    2014-09-14 17:24:35 UTC (rev 5827)
@@ -139,7 +139,7 @@
 
   {
     char *old_contents = node->contents;
-    node->flags |= N_IsDir;
+    node->flags |= (N_IsDir | N_IsInternal);
     scan_node_contents (0, &node);
     if (node->flags & N_WasRewritten)
       free (old_contents);

Modified: trunk/info/footnotes.c
===================================================================
--- trunk/info/footnotes.c      2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/footnotes.c      2014-09-14 17:24:35 UTC (rev 5827)
@@ -139,8 +139,6 @@
     memcpy (result->contents + strlen (header),
             fn_node->contents + text_start, fn_node->nodelen - text_start);
 
-    result->flags |= N_IsInternal;
-
    /* Copy and adjust references that appear in footnotes section. */
     {
       REFERENCE **ref = fn_node->references;
@@ -161,7 +159,7 @@
     }
 
     result->nodename = xstrdup (footnote_nodename);
-    result->flags |= N_IsInternal;
+    result->flags |= (N_IsInternal | N_Unstored);
 
     /* Needed in case the user follows a reference in the footnotes window. */
     result->fullpath = fn_node->fullpath;

Modified: trunk/info/indices.c
===================================================================
--- trunk/info/indices.c        2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/indices.c        2014-09-14 17:24:35 UTC (rev 5827)
@@ -783,7 +783,7 @@
   node->contents = text_buffer_base (&text);
   node->nodelen = text_buffer_off (&text) - 1;
   node->body_start = strcspn (node->contents, "\n");
-  node->flags |= N_IsInternal;
+  node->flags |= (N_IsInternal | N_Unstored);
 
   scan_node_contents (0, &node);
   info_set_node_of_window (window, node);

Modified: trunk/info/man.c
===================================================================
--- trunk/info/man.c    2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/man.c    2014-09-14 17:24:35 UTC (rev 5827)
@@ -84,7 +84,7 @@
       tag = info_create_node ();
       tag->fullpath = MANPAGE_FILE_BUFFER_NAME;
       tag->nodename = xstrdup (pagename);
-      tag->flags |= (N_HasTagsTable | N_IsManPage);
+      tag->flags |= (N_HasTagsTable | N_IsManPage | N_IsInternal);
 
       tag->up = "(dir)";
 

Modified: trunk/info/nodemenu.c
===================================================================
--- trunk/info/nodemenu.c       2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/nodemenu.c       2014-09-14 17:24:35 UTC (rev 5827)
@@ -243,6 +243,7 @@
   new->flags |= W_NoWrap;
   node = get_visited_nodes ();
   name_internal_node (node, xstrdup (nodemenu_nodename));
+  node->flags |= N_Unstored;
 
   info_set_node_of_window (new, node);
   active_window = new;

Modified: trunk/info/nodes.h
===================================================================
--- trunk/info/nodes.h  2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/nodes.h  2014-09-14 17:24:35 UTC (rev 5827)
@@ -79,6 +79,7 @@
 #define N_IsIndex      0x200    /* An index node. */
 #define N_IsDir        0x400    /* A dir node. */
 #define N_Subfile      0x800    /* File buffer is a subfile of a split file. */
+#define N_Unstored     0x1000   /* References are not stored anywhere else. */
 
 /* String constants. */
 #define INFO_FILE_LABEL                 "File:"

Modified: trunk/info/session.c
===================================================================
--- trunk/info/session.c        2014-09-13 17:36:39 UTC (rev 5826)
+++ trunk/info/session.c        2014-09-14 17:24:35 UTC (rev 5827)
@@ -879,7 +879,7 @@
 static void
 free_history_node (NODE *n)
 {
-  if (n->flags & N_IsInternal)
+  if (n->flags & N_Unstored)
     {
       /* These fields are not stored anywhere else.  The
          contents field was recorded with add_gcable_pointer. */
@@ -1926,7 +1926,7 @@
 
       /* This allows us to free internal nodes without checking if
          these fields are shared by NODE objects in other windows. */
-      if (copy->flags & N_IsInternal)
+      if (copy->flags & N_Unstored)
         {
           copy->references = info_copy_references (copy->references);
           copy->nodename = xstrdup (copy->nodename);




reply via email to

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