texinfo-commits
[Top][All Lists]
Advanced

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

[8184] no spaces_after_command_elt


From: gavinsmith0123
Subject: [8184] no spaces_after_command_elt
Date: Fri, 21 Sep 2018 11:19:30 -0400 (EDT)

Revision: 8184
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8184
Author:   gavin
Date:     2018-09-21 11:19:29 -0400 (Fri, 21 Sep 2018)
Log Message:
-----------
no spaces_after_command_elt

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tp/Texinfo/Parser.pm
    trunk/tp/Texinfo/XS/misc.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2018-09-21 10:20:52 UTC (rev 8183)
+++ trunk/ChangeLog     2018-09-21 15:19:29 UTC (rev 8184)
@@ -1,3 +1,10 @@
+2018-09-21  Gavin Smith  <address@hidden>
+
+       * tp/Texinfo/Parser.pm (_start_empty_line_after_command):
+       Do not set a 'spaces_after_command_elt' value.
+       (_abort_empty_line): Do not clear a 'spaces_after_command_elt' value.
+       * tp/Texinfo/XS/misc.c (xs_abort_empty_line): Make the same change.
+
 2018-09-16  Gavin Smith  <address@hidden>
 
        * tp/maintain/regenerate_cmd_tests.sh: Less indirection in test 

Modified: trunk/tp/Texinfo/Parser.pm
===================================================================
--- trunk/tp/Texinfo/Parser.pm  2018-09-21 10:20:52 UTC (rev 8183)
+++ trunk/tp/Texinfo/Parser.pm  2018-09-21 15:19:29 UTC (rev 8184)
@@ -2144,11 +2144,6 @@
         delete ($owning_element->{'extra'}->{'spaces_before_argument_elt'});
         delete ($owning_element->{'extra'})
           if !(keys(%{$owning_element->{'extra'}}));
-      } elsif ($owning_element
-          and $owning_element->{'extra'}->{'spaces_after_command_elt'}) {
-        delete ($owning_element->{'extra'}->{'spaces_after_command_elt'});
-        delete ($owning_element->{'extra'})
-          if !(keys(%{$owning_element->{'extra'}}));
       }
     } elsif ($spaces_element->{'type'} eq 'empty_line') {
       # exactly the same condition than to begin a paragraph
@@ -2169,7 +2164,6 @@
         $owning_element->{'extra'}->{'spaces_before_argument'}
           = $spaces_element->{'text'};
         delete $owning_element->{'extra'}->{'spaces_before_argument_elt'};
-        delete $owning_element->{'extra'}->{'spaces_after_command_elt'};
       } else {
         $spaces_element->{'type'} = 'empty_spaces_after_command';
       }
@@ -3418,7 +3412,6 @@
                                     'parent' => $current, 
                                   };
   if (defined($command)) {
-    $command->{'extra'}->{'spaces_after_command_elt'} = 
$current->{'contents'}->[-1];
     $current->{'contents'}->[-1]->{'extra'} = {'command' => $command};
   }
   return $line;

Modified: trunk/tp/Texinfo/XS/misc.c
===================================================================
--- trunk/tp/Texinfo/XS/misc.c  2018-09-21 10:20:52 UTC (rev 8183)
+++ trunk/tp/Texinfo/XS/misc.c  2018-09-21 15:19:29 UTC (rev 8184)
@@ -55,7 +55,8 @@
   int contents_num;
   HV *spaces_elt;
   //char *key;
-  HV *test_extra;
+  HV *test_extra = 0;
+  HV *command_extra = 0;
 
   HV *owning_elt = 0;
   char *type;
@@ -119,7 +120,8 @@
         {
           owning_elt = (HV *) SvRV (*svp);
           svp = hv_fetch (owning_elt, "extra", strlen ("extra"), 0);
-          test_extra = (HV *) SvRV (*svp);
+          if (svp)
+            command_extra = (HV *) SvRV (*svp);
         }
     }
 
@@ -139,20 +141,19 @@
 
       if (owning_elt)
         {
-          /* We found an "extra" reference to this element.  Remove it. */
-          hv_delete (test_extra,
-                     "spaces_before_argument_elt",
-                     strlen ("spaces_before_argument_elt"),
-                     G_DISCARD);
-          hv_delete (test_extra,
-                     "spaces_after_command_elt",
-                     strlen ("spaces_after_command_elt"),
-                     G_DISCARD);
+          if (command_extra)
+            {
+              /* We found an "extra" reference to this element.  Remove it. */
+              hv_delete (command_extra,
+                         "spaces_before_argument_elt",
+                         strlen ("spaces_before_argument_elt"),
+                         G_DISCARD);
 
-          /* If the extra hash now empty, remove it as well. */
-          hv_iterinit (test_extra);
-          if (!hv_iternext (test_extra))
-            hv_delete (owning_elt, "extra", strlen ("extra"), G_DISCARD);
+              /* If the extra hash now empty, remove it as well. */
+              hv_iterinit (command_extra);
+              if (!hv_iternext (command_extra))
+                hv_delete (owning_elt, "extra", strlen ("extra"), G_DISCARD);
+            }
         }
     }
   else if (!strcmp (type, "empty_line"))
@@ -223,19 +224,21 @@
 
           ptr = SvPV(existing_text_sv, len);
           /* Replace element reference with a simple string. */
-          hv_store (test_extra,
+          if (!command_extra)
+            {
+              command_extra = newHV ();
+              hv_store (owning_elt, "extra", strlen ("extra"),
+                        newRV_inc((SV *)command_extra), 0);
+            }
+          hv_store (command_extra,
                     "spaces_before_argument",
                     strlen ("spaces_before_argument"),
                     newSVpv(ptr, len),
                     0);
-          hv_delete (test_extra,
+          hv_delete (command_extra,
                      "spaces_before_argument_elt",
                      strlen ("spaces_before_argument_elt"),
                      G_DISCARD);
-          hv_delete (test_extra,
-                     "spaces_after_command_elt",
-                     strlen ("spaces_after_command_elt"),
-                     G_DISCARD);
         }
       else
         {




reply via email to

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