texinfo-commits
[Top][All Lists]
Advanced

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

[7970] _abort_empty_line


From: gavinsmith0123
Subject: [7970] _abort_empty_line
Date: Mon, 25 Sep 2017 14:42:42 -0400 (EDT)

Revision: 7970
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7970
Author:   gavin
Date:     2017-09-25 14:42:41 -0400 (Mon, 25 Sep 2017)
Log Message:
-----------
_abort_empty_line

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2017-09-25 18:28:59 UTC (rev 7969)
+++ trunk/ChangeLog     2017-09-25 18:42:41 UTC (rev 7970)
@@ -1,5 +1,11 @@
 2017-09-25  Gavin Smith  <address@hidden>
 
+       * tp/Texinfo/Parser.pm (_abort_empty_line): Change code to
+       keep track of which element refers to space element in its
+       'extra' hash.  No functional change intended.
+
+2017-09-25  Gavin Smith  <address@hidden>
+
        * tp/Texinfo/Parser.pm (_abort_empty_line): Change the name of a 
        variable.  Use a variable to simplify the code.
 

Modified: trunk/tp/Texinfo/Parser.pm
===================================================================
--- trunk/tp/Texinfo/Parser.pm  2017-09-25 18:28:59 UTC (rev 7969)
+++ trunk/tp/Texinfo/Parser.pm  2017-09-25 18:42:41 UTC (rev 7970)
@@ -2146,47 +2146,51 @@
 
     my $spaces_element = $current->{'contents'}->[-1];
 
+    my $owning_element;
+    if ($current->{'extra'} 
+        and $current->{'extra'}->{'spaces_before_argument'}
+        and $current->{'extra'}->{'spaces_before_argument'} 
+              eq $spaces_element) {
+      $owning_element = $current;
+    } elsif ($current->{'parent'} and $current->{'parent'}->{'extra'} 
+        and $current->{'parent'}->{'extra'}->{'spaces_before_argument'}
+        and $current->{'parent'}->{'extra'}->{'spaces_before_argument'} 
+              eq $spaces_element) {
+      $owning_element = $current->{'parent'};
+    } elsif ($current->{'extra'} 
+        and $current->{'extra'}->{'spaces_after_command'}
+        and $current->{'extra'}->{'spaces_after_command'} 
+              eq $spaces_element) {
+      $owning_element = $current;
+    } elsif ($current->{'parent'} and $current->{'parent'}->{'extra'} 
+        and $current->{'parent'}->{'extra'}->{'spaces_after_command'}
+        and $current->{'parent'}->{'extra'}->{'spaces_after_command'} 
+              eq $spaces_element) {
+      $owning_element = $current->{'parent'};
+    }
+
     print STDERR "ABORT EMPTY "
-    .$spaces_element->{'type'}
-    ." additional text |$additional_spaces|,"
-    ." current |$current->{'contents'}->[-1]->{'text'}|\n"
-      if ($self->{'DEBUG'});
+      .$spaces_element->{'type'}
+      ." additional text |$additional_spaces|,"
+      ." current |$spaces_element->{'text'}|\n"
+        if ($self->{'DEBUG'});
 
     $spaces_element->{'text'} .= $additional_spaces;
     # remove empty 'empty*before'.
     if ($spaces_element->{'text'} eq '') {
-      # as we remove 'empty_spaces_before_argument', 'spaces_before_argument'
-      # is removed from 'extra' too.
-      if ($current->{'extra'} 
-          and $current->{'extra'}->{'spaces_before_argument'}
-          and $current->{'extra'}->{'spaces_before_argument'} 
-                eq $spaces_element) {
-        delete ($current->{'extra'}->{'spaces_before_argument'});
-        delete ($current->{'extra'}) if !(keys(%{$current->{'extra'}}));
-      } elsif ($current->{'parent'} and $current->{'parent'}->{'extra'} 
-          and $current->{'parent'}->{'extra'}->{'spaces_before_argument'}
-          and $current->{'parent'}->{'extra'}->{'spaces_before_argument'} 
-                eq $spaces_element) {
-        delete ($current->{'parent'}->{'extra'}->{'spaces_before_argument'});
-        delete ($current->{'parent'}->{'extra'})
-          if !(keys(%{$current->{'parent'}->{'extra'}}));
-      } elsif ($current->{'extra'} 
-          and $current->{'extra'}->{'spaces_after_command'}
-          and $current->{'extra'}->{'spaces_after_command'} 
-                eq $spaces_element) {
-        delete ($current->{'extra'}->{'spaces_after_command'});
-        delete ($current->{'extra'})
-          if !(keys(%{$current->{'extra'}}));
-      } elsif ($current->{'parent'} and $current->{'parent'}->{'extra'} 
-          and $current->{'parent'}->{'extra'}->{'spaces_after_command'}
-          and $current->{'parent'}->{'extra'}->{'spaces_after_command'} 
-                eq $spaces_element) {
-        delete ($current->{'parent'}->{'extra'}->{'spaces_after_command'});
-        delete ($current->{'parent'}->{'extra'})
-          if !(keys(%{$current->{'parent'}->{'extra'}}));
+      pop @{$current->{'contents'}};
+
+      if ($owning_element
+          and $owning_element->{'extra'}->{'spaces_before_argument'}) {
+        delete ($owning_element->{'extra'}->{'spaces_before_argument'});
+        delete ($owning_element->{'extra'})
+          if !(keys(%{$owning_element->{'extra'}}));
+      } elsif ($owning_element
+          and $owning_element->{'extra'}->{'spaces_after_command'}) {
+        delete ($owning_element->{'extra'}->{'spaces_after_command'});
+        delete ($owning_element->{'extra'})
+          if !(keys(%{$owning_element->{'extra'}}));
       }
-
-      pop @{$current->{'contents'}} 
     } elsif ($spaces_element->{'type'} eq 'empty_line') {
       # exactly the same condition than to begin a paragraph
       if ((!$current->{'type'} or $type_with_paragraph{$current->{'type'}})




reply via email to

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