]> git.sur5r.net Git - cc65/blobdiff - src/ca65html/ca65html
Fixed a problem and a typo
[cc65] / src / ca65html / ca65html
index ec6895ffd2e8001e6cc1c64b1840450d1992e29a..c86e4b8af604f994589ddbcfbb9a5c0ddaa8e181 100755 (executable)
 
 
 
+# Things currently missing:
+#
+#   - Scoping with .proc/.endproc
+#   - .global is ignored
+#   - .constructor/.destructor/.condes dito
+#   - .ignorecase is ignored, labels are always case sensitive
+#   - .include handling (difficult)
+#   - The global namespace operator ::
+#
+
+
+
 use strict 'vars';
 use warnings;
 
@@ -68,7 +80,7 @@ my $IndexPage         = 0;            # Create an index page
 my $LinkStyle          = 0;            # Default link style
 my $ReplaceExt         = 0;            # Replace extension instead of appending
 my $TextColor          = "#000000";    # Text color
-my $Verbose            = 0;            # Be quiet
+my $Verbose            = 0;            # Be quiet
 
 # Table used to convert the label number into names
 my @NameTab            = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
@@ -283,7 +295,7 @@ sub RefLabel {
 
 
 #-----------------------------------------------------------------------------#
-#                                  Pass 1                                    #
+#                                  Pass 1                                    #
 # ----------------------------------------------------------------------------#
 
 
@@ -486,24 +498,28 @@ sub Process2 {
                $Line = $2;
 
                # Variable to assemble HTML representation
-               my $Item = $Id;
+                       my $Contents = "";
+
+               # Make this import a link target
+               if (exists ($Imports{$OutName}{$Id})) {
+                           $Label = $Imports{$OutName}{$1};
+                           $Contents .= sprintf (" name=\"%s\"", $Label);
+               }
 
                # If we have an export for this import, add a link to this
                # export definition
                if (exists ($Exports{$Id})) {
                    $Label = $Exports{$Id};
-                   $Item = sprintf ("<a href=\"%s\">%s</a>", $Label, $Item);
+                   $Contents .= sprintf (" href=\"%s\"", $Label);
                }
 
-               # Make this import a link target
-               if (exists ($Imports{$OutName}{$Id})) {
-                           $Label = $Imports{$OutName}{$1};
-                   $Item = sprintf ("<a name=\"%s\">%s</a>", $Label, $Item);
+               # Add the HTML stuff to the output line
+               if ($Contents ne "") {
+                   $OutLine .= sprintf ("<a%s>%s</a>", $Contents, $Id);
+               } else {
+                   $OutLine .= $Id;
                }
 
-               # Add the HTML stuff to the output line
-               $OutLine .= $Item;
-
                # Check if another identifier follows
                if ($Line =~ /^(\s*),(\s*)(.*)$/) {
                    $OutLine .= "$1,$2";
@@ -531,13 +547,13 @@ sub Process2 {
                $Line = $2;
 
                # Variable to assemble HTML representation
-               my $Item = $Id;
+                       my $Contents = "";
 
                # If we have a definition for this export in this file, add
                # a link to the definition.
                if (exists ($Labels{$OutName}{$1})) {
                    $Label = $Labels{$OutName}{$1};
-                           $Item = sprintf ("<a href=\"#%s\">%s</a>", $Label, $Item);
+                           $Contents = sprintf (" href=\"#%s\"", $Label);
                }
 
                # If we have this identifier in the list of exports, add a
@@ -545,12 +561,16 @@ sub Process2 {
                if (exists ($Exports{$Id})) {
                    $Label = $Exports{$Id};
                            # Be sure to use only the label part
-                   $Label =~ s/^(.*#)(.*)$/$2/;
-                   $Item = sprintf ("<a name=\"%s\">%s</a>", $Label, $Item);
+                   $Label =~ s/^(.*#)(.*)$/$2/;        # ##FIXME: Expensive
+                   $Contents .= sprintf (" name=\"%s\"", $Label);
                }
 
                # Add the HTML stuff to the output line
-               $OutLine .= $Item;
+               if ($Contents ne "") {
+                   $OutLine .= sprintf ("<a%s>%s</a>", $Contents, $Id);
+               } else {
+                   $OutLine .= $Id;
+               }
 
                # Check if another identifier follows
                if ($Line =~ /^(\s*),(\s*)(.*)$/) {