Tags         Redraw Operation
--------------------------------------------
ScreenStart  Block Selection (line)
             Translations    (tab expansion)
             Trimming        (visable line)
Cursors      Colorization    (syntax hilighting)


-------------------------

pos = GetLine(TBuffer, pos)
      HandleError(Translators.call(TBuffer))
      HandleError(Trim(TBuffer)
      HandleError(Colorizers.call(TBuffer, CBuffer)
      HandleError(DisplayLine(TBuffer, CBuffer)


--------------------

   for (LineCounter = 0;  LineCounter < Display->Height; LineCounter++ ) {    
   
     // First we get data from the buffer to be processed
     Dataf.SelectionStart ( Dataf.SelectionEnd() + 1 );                     // Get a line
     Dataf.SelectionEnd   ( Dataf.LineEnd() );
     Dataf.Read           ( LineBuff, LINEBUFF_SIZE );
     // Next we change the colours of things, er go cursors or syntax hilighting
     //  It is important to do this while the data still syncs with the primary buffer positions
     //  it is also important that all the data be fed through any will-be syntax engines
     PropManager.Colourize( LineBuff, LINEBUFF_SIZE, PropBuff );      // Hilight Props
     // We then process control characters, like tabs
     //   due to a lack of unification this needs to make corresponding prop buffer changes
     Translator.Translate ( LineBuff, LINEBUFF_SIZE, PropBuff );                      // Translate control characters
     // We then trim the data according to x scroll and display width
     // VVVV                txtbuff,  txtBuffLen,    startCrop  , CropLen(minSize)   , auxbuff );
     DisplayModule.Trim   ( LineBuff, LINEBUFF_SIZE, ScrollLoc.X, (Display->Width -1), PropBuff ); // Trim to width  
     // Were done, post the result.
     Display->BufferPos   (0, LineCounter + 1);                             // Write to display
     Display->BufferText  ( LineBuff, PropBuff ); 
     
   } // end of for
  



      
      
Objects needed 
---------------
Generic Error Handler      HandleError(foo)
Linked List Function Call  CallChain(foo)

FunctionChain
  - Add    (function *)
  - Remove (function *)
  - Call   (function *)
  - Delete (function *)
  
  

  
