]> git.sur5r.net Git - cc65/blobdiff - src/cc65/asmcode.c
When using GetQualifier, pass correct params :-)
[cc65] / src / cc65 / asmcode.c
index 9f61dc212c4751a07201996b4319d68852d79aa0..83ea3b2520586d2c0e3558b567add9c6cf4cc446 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000-2004 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
-/*               D-70794 Filderstadt                                         */
-/* EMail:        uz@cc65.org                                                 */
+/* (C) 2000-2009, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -62,6 +62,20 @@ void GetCodePos (CodeMark* M)
 
 
 
+void RemoveCodeRange (const CodeMark* Start, const CodeMark* End)
+/* Remove all code between two code markers */
+{
+    /* Nothing to do if the range is empty */
+    if (Start->Pos == End->Pos) {
+        return;
+    }
+
+    /* Delete the range */
+    CS_DelCodeRange (CS->Code, Start->Pos, End->Pos-1);
+}
+
+
+
 void RemoveCode (const CodeMark* M)
 /* Remove all code after the given code marker */
 {
@@ -83,9 +97,9 @@ void MoveCode (const CodeMark* Start, const CodeMark* End, const CodeMark* Targe
 
 int CodeRangeIsEmpty (const CodeMark* Start, const CodeMark* End)
 /* Return true if the given code range is empty (no code between Start and End) */
-{   
+{
     int Empty;
-    PRECONDITION (Start->Pos >= End->Pos);
+    PRECONDITION (Start->Pos <= End->Pos);
     Empty = (Start->Pos == End->Pos);
     if (Empty) {
         /* Safety */
@@ -96,15 +110,15 @@ int CodeRangeIsEmpty (const CodeMark* Start, const CodeMark* End)
 
 
 
-void WriteOutput (FILE* F)
-/* Write the final output to a file */
+void WriteAsmOutput (void)
+/* Write the final assembler output to the output file */
 {
     SymTable* SymTab;
     SymEntry* Entry;
 
     /* Output the global data segment */
     CHECK (!HaveGlobalCode ());
-    OutputSegments (CS, F);
+    OutputSegments (CS);
 
     /* Output all global or referenced functions */
     SymTab = GetGlobalSymTab ();
@@ -116,7 +130,7 @@ void WriteOutput (FILE* F)
                    /* Function which is defined and referenced or extern */
                    CS_MergeLabels (Entry->V.F.Seg->Code);
                    RunOpt (Entry->V.F.Seg->Code);
-                   OutputSegments (Entry->V.F.Seg, F);
+                   OutputSegments (Entry->V.F.Seg);
                }
                Entry = Entry->NextSym;
     }