texinfo-commits
[Top][All Lists]
Advanced

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

[6676] exclude first line of manpage node for detecting xrefs


From: Gavin D. Smith
Subject: [6676] exclude first line of manpage node for detecting xrefs
Date: Sun, 04 Oct 2015 17:20:00 +0000

Revision: 6676
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6676
Author:   gavin
Date:     2015-10-04 17:19:59 +0000 (Sun, 04 Oct 2015)
Log Message:
-----------
exclude first line of manpage node for detecting xrefs

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/info/man.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2015-10-04 17:15:24 UTC (rev 6675)
+++ trunk/ChangeLog     2015-10-04 17:19:59 UTC (rev 6676)
@@ -1,5 +1,10 @@
 2015-10-04  Gavin Smith  <address@hidden>
 
+       * info/man.c (xrefs_of_manpage): Exclude first line of manpage.
+       (get_manpage_node): Don't add an extra line to the manpage node.
+
+2015-10-04  Gavin Smith  <address@hidden>
+
        * doc/texinfo.texi (Overview): Put contents of a footnote in the 
        main text.
 

Modified: trunk/info/man.c
===================================================================
--- trunk/info/man.c    2015-10-04 17:15:24 UTC (rev 6675)
+++ trunk/info/man.c    2015-10-04 17:19:59 UTC (rev 6676)
@@ -97,32 +97,10 @@
         return 0;
       plen = strlen (page);
 
-      if (!preprocess_nodes_p)
-        {
-          char *header;
-          hlen = asprintf (&header, "%s %s,  %s %s,  %s (dir)\n\n",
-                   INFO_FILE_LABEL, MANPAGE_FILE_BUFFER_NAME,
-                   INFO_NODE_LABEL, pagename,
-                   INFO_UP_LABEL);
+      node->contents = page;
+      node->nodelen = plen;
 
-          node->contents = xcalloc (1, hlen + plen + 1);
-          memcpy (node->contents, header, hlen);
-          memcpy (node->contents + hlen, page, plen);
-
-          /* Set nodelen. */
-          node->nodelen = hlen + plen;
-
-          free (header);
-          /* FIXME: Don't allocate page just to immediately free it. */
-          free (page);
-        }
-      else
-        {
-          node->contents = page;
-          node->nodelen = plen;
-        }
-
-      node->body_start = strcspn (node->contents, "\n");
+      node->body_start = 0;
       node->references = xrefs_of_manpage (node);
       node->up = "(dir)";
     }
@@ -570,6 +548,11 @@
   s.flags = 0;
   s.end = node->nodelen;
 
+  /* Exclude first line, which often looks like:
+CAT(1)                           User Commands                          CAT(1)
+  */
+  s.start = strcspn (node->contents, "\n");
+
   /* Build a list of references.  A reference is alphabetic characters
      followed by non-whitespace text within parenthesis leading with a digit. 
*/
   while (search_forward ("(", &s, &position) == search_success)
@@ -581,8 +564,9 @@
         if (whitespace_or_newline (s.buffer[name]))
           break;
 
-      if (name != 0)
-        name++;
+      if (name == 0)
+        goto skip;
+      name++;
 
       if (name == position)
         goto skip; /* Whitespace immediately before '('. */




reply via email to

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