Bug 91508 - bogus tags added, e.g. </?echo>
Summary: bogus tags added, e.g. </?echo>
Status: RESOLVED FIXED
Alias: None
Product: quanta
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: András Manţia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-17 12:28 UTC by S. Burmeister
Modified: 2004-10-18 20:03 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description S. Burmeister 2004-10-17 12:28:39 UTC
Version:            (using KDE KDE 3.3.1)
Installed from:    SuSE RPMs
OS:                Linux

Save the following script-code as aa PHP-script.
Go to $Favoriten[$i]&Merkzettel=1 and enter a ?> after $Favoriten[$i], before the &Merkzettel=1.

Quanta adds some bogus tag, in this case </?echo> as you can see in the second code-snipplet. I thought the bug had something to do with the missing blank before echo, after <?. However if you replace <?echo by <? echo Quanta adds </?>, which isbogus too.

<?php
?>
<li><a href='index.php?<?echo $URL;?>&Bereich=Details&Inserat=<?echo $Favoriten[$i]&Merkzettel=1'><img src='bilder/".$Favoriten[$i]."_0.jpg' width='100' border=0></a>

?>
<li><a href='index.php?<?echo $URL;?>&Bereich=Details&Inserat=<?echo $Favoriten[$i]?></?echo>&Merkzettel=1'><img src='bilder/".$Favoriten[$i]."_0.jpg' width='100' border=0></a>

I see this behaviour of making up tags also in some cases where I want to set a </div> tag in a non-script area, i.e. script-area was closed by ?>, and when I type </ Quanta adds <?/php tag> or something similar. I'll post it when I come across it again.
Comment 1 András Manţia 2004-10-17 19:34:51 UTC
A quick question: is the Quanta version 3.3.1? Check the Help->About 
Quanta.

Comment 2 S. Burmeister 2004-10-17 19:39:49 UTC
It states: Quanta post-3.3.0
Comment 3 András Manţia 2004-10-17 19:44:30 UTC
The official 3.3.1 should says that it's "3.3.1". I don't know what SuSE 
packaged this time... But I see the problem, yet it's strange that it 
sometimes works... I'm trying to find out what is the reason.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBcq2ITQdfac6L/08RAvmpAJ9qN7KkL/2zsB0MgDW/AvQzuf0HXgCgmBQo
oN+mm4SY3fLoGW819K2ljr8=
=mm8l
-----END PGP SIGNATURE-----

Comment 4 András Manţia 2004-10-17 19:47:42 UTC
Please try the following: put the <img> tag in a new line. Does it also 
happen after that? I'm just trying to figure out what confuses the 
parser.

Comment 5 S. Burmeister 2004-10-17 19:54:41 UTC
Puttin the img-tag in a new line solves the problem in this case.
Comment 6 András Manţia 2004-10-18 09:28:35 UTC
CVS commit by amantia: 

Don't lose the script nodes if the script is inside a tag and the next tag follows immediately after the current one, like in case of;
<a href='index.php?<?echo $URL;?>'><img src='a'></a>

Fixes #91508.

BUG: 91508


  M +1 -0      ChangeLog   1.315
  M +2 -2      quanta.kdevelop   1.257
  M +11 -0     parsers/parser.cpp   1.226


--- kdewebdev/quanta/ChangeLog  #1.314:1.315
@@ -31,4 +31,5 @@
         - read the tables correctly also if the doctype definition is wrong
           (for example HTML tables inside XHTML)
+        - fix node tree corruption while parsing scripts inside a tag [#91508]
 
   - behavioral/user interface changes:

--- kdewebdev/quanta/quanta.kdevelop  #1.256:1.257
@@ -243,8 +243,8 @@
   <kdevfilecreate>
     <filetypes>
-      <type icon="" ext="h" create="template" name="C++ header" >
+      <type icon="" ext="h" name="C++ header" create="template" >
         <descr>Quanta speicfic header</descr>
       </type>
-      <type icon="source_cpp" ext="cpp" create="template" name="C++ source" >
+      <type icon="source_cpp" ext="cpp" name="C++ source" create="template" >
         <descr>A new empty C++ file.</descr>
       </type>

--- kdewebdev/quanta/parsers/parser.cpp  #1.225:1.226
@@ -388,5 +388,16 @@ Node *Parser::parseArea(int startLine, i
           {
             if (parentNode)
+            {
+              if (!parentNode->child)
                 parentNode->child = node;
+              else
+              {
+                Node *n = parentNode->child;
+                while (n->next)
+                  n = n->next;
+                n->next = node;
+                node->prev = n;
+              }
+            }
           }
         }


Comment 7 S. Burmeister 2004-10-18 19:51:45 UTC
Could you please check whether the following bogus tag is also fixed?

Insert the vode into a php-script file. Then go to public $Verlauf = ""; and insert this-> after $. What I get when I press > is: <span><?echo $this-></PHP Block>Verlauf</span>

Code:
<?php

class Verlauf

{
public $Verlauf = "";

function Erstellen($Variablen)

{
extract($Variablen);

?>
<div>Der Verlauf Ihres Besuches bei uns:<br>
<span><?echo $Verlauf</span>

</div>

<?

}//Ende Erstellen

funtion Aktualisieren($Variablen)
{
extract($Variablen);



}


}//Ende Klasse

?>
Comment 8 András Manţia 2004-10-18 20:03:06 UTC
Works fine here.