]> git.donarmstrong.com Git - lilypond.git/blobdiff - mi2mu/lily-stream.cc
release: 0.0.44
[lilypond.git] / mi2mu / lily-stream.cc
index 2ac5bc778d7989a521de10c9364ba44b79380aa0..f1b61cab5bdc3b36fa2bc6cfc0857a51fee5dc4c 100644 (file)
 
 Lily_stream::Lily_stream( String filename_str )
 {
-       filename_str_ = filename_str;
-       os_p_ = 0;
-       indent_i_ = 0;
-       comment_mode_bo_ = false;
-       column_i_ = 0;
-       wrap_column_i_ = 60;
-       open();
-       header();
+    filename_str_ = filename_str;
+    os_p_ = 0;
+    indent_i_ = 0;
+    comment_mode_bo_ = false;
+    column_i_ = 0;
+    wrap_column_i_ = 60;
+    open();
+    header();
 }
 
 Lily_stream::~Lily_stream()
 {
-       delete os_p_;
-       if ( indent_i_ )
-               warning( "lily indent level: " + String( indent_i_ ), 0 );
+    delete os_p_;
+    if ( indent_i_ )
+       warning( "lily indent level: " + String( indent_i_ ), 0 );
 }
 
 Lily_stream&
 Lily_stream::operator <<( String str )
 {
-       static String nobreak_str = "\\`'_-.^<>*@";
-       while ( str.length_i() ) {
-               int max_i = wrap_column_i_ - column_i_ - 1;
-               int i = str.length_i() - 1 <? max_i;
-               int nl_i = str.left_str( i + 1 ).index_i( '\n' );
-               if ( nl_i != -1 ) {
-                       i = nl_i - 1;
-                       str = str.nomid_str( nl_i, 1 );
-               }
+    static String nobreak_str = "\\`'_-.^<>*@";
+    while ( str.length_i() ) {
+       int max_i = wrap_column_i_ - column_i_ - 1;
+       int i = str.length_i() - 1 <? max_i;
+       int nl_i = str.left_str( i + 1 ).index_i( '\n' );
+       if ( nl_i != -1 ) {
+           i = nl_i - 1;
+           str = str.nomid_str( nl_i, 1 );
+       }
 
-               if ( ( i != str.length_i() - 1 ) && ( nl_i == -1 ) ) {
-                       while ( i && ( isalnum( str[ i ] ) 
-                               || ( nobreak_str.index_i( str[ i ] ) != -1 ) ) )
-                               i--;
+       if ( ( i != str.length_i() - 1 ) && ( nl_i == -1 ) ) {
+           while ( i && ( isalnum( str[ i ] ) 
+                          || ( nobreak_str.index_i( str[ i ] ) != -1 ) ) )
+               i--;
 
-                       if ( !i ) { // no room left
-                               if ( column_i_ > 8 * indent_i_ ) {
-                                       newline();
-                                       if ( comment_mode_bo_ && ( str[ 0 ] != '%' ) )
-                                               str = "%" + str;
-                                       continue;
-                               }
-                               else { // cannot break neatly...
-                                       i = max_i;
-                               }
-                       }
+           if ( !i ) { // no room left
+               if ( column_i_ > 8 * indent_i_ ) {
+                   newline();
+                   if ( comment_mode_bo_ && ( str[ 0 ] != '%' ) )
+                       str = "%" + str;
+                   continue;
                }
-                               
-               String line = str.left_str( i + 1 ); 
-               str = str.mid_str( i + 1, INT_MAX );
-               *os_p_ << line;
-               column_i_ += line.length_i();
-               if ( nl_i != -1 )
-                        newline();
-               else
-                       check_comment( line );
-               if ( ( str.length_i() && ( nl_i == -1 ) ) || ( column_i_ >= wrap_column_i_ ) ) {
-                       //brr.
-                       if ( comment_mode_bo_ )
-                               str = "%" + str;
-                       newline();
+               else { // cannot break neatly...
+                   i = max_i;
                }
-       }       
-       return *this;
+           }
+       }
+                               
+       String line = str.left_str( i + 1 ); 
+       str = str.mid_str( i + 1, INT_MAX );
+       *os_p_ << line;
+       column_i_ += line.length_i();
+       if ( nl_i != -1 )
+           newline();
+       else
+           check_comment( line );
+       if ( ( str.length_i() && ( nl_i == -1 ) ) || ( column_i_ >= wrap_column_i_ ) ) {
+           //brr.
+           if ( comment_mode_bo_ )
+               str = "%" + str;
+           newline();
+       }
+    }  
+    return *this;
 }
 
 Lily_stream&
 Lily_stream::operator <<( Midi_event& midi_event_r )
 {
-       midi_event_r.output_mudela( *this, false );
-       *os_p_ << flush;
-       return *this;
+    midi_event_r.output_mudela( *this, false );
+    *os_p_ << flush;
+    return *this;
 }
 
 void
 Lily_stream::check_comment( String str )
 {
-       int newline_i = str.index_last_i( '\n' );
-       if ( newline_i != -1 ) {
-               str = str.mid_str( newline_i +1, INT_MAX );
-               comment_mode_bo_ = false;
-       }
-       if ( str.index_i( '%' ) != -1 )
-               comment_mode_bo_ = true;
+    int newline_i = str.index_last_i( '\n' );
+    if ( newline_i != -1 ) {
+       str = str.mid_str( newline_i +1, INT_MAX );
+       comment_mode_bo_ = false;
+    }
+    if ( str.index_i( '%' ) != -1 )
+       comment_mode_bo_ = true;
 }
 
 void
 Lily_stream::header()
 {
-       *os_p_ << "% Creator: " << mi2mu_version_str() << "\n";
-       *os_p_ << "% Automatically generated, at ";
-       time_t t( time( 0 ) );
-       *os_p_ << ctime( &t );
-       *os_p_ << "% from input file: ";
-       *os_p_ << midi_parser_l_g->filename_str_;
-       *os_p_ << "\n\n";    
+    *os_p_ << "% Creator: " << mi2mu_version_str() << "\n";
+    *os_p_ << "% Automatically generated, at ";
+    time_t t( time( 0 ) );
+    *os_p_ << ctime( &t );
+    *os_p_ << "% from input file: ";
+    *os_p_ << midi_parser_l_g->filename_str_;
+    *os_p_ << "\n\n";    
 }
-
+/*
+  snapnie: dit kan toch automaties? Zie ook dstream.
+  */
 void
 Lily_stream::indent()
 {
-       indent_i_++;
-       newline();
+    indent_i_++;
+    newline();
 }
 
 void
 Lily_stream::newline()
 {
-       *os_p_ << endl << String( '\t', indent_i_ );
-       column_i_ = indent_i_ * 8;
-       comment_mode_bo_ = false;
+    *os_p_ << endl << String( '\t', indent_i_ );
+    column_i_ = indent_i_ * 8;
+    comment_mode_bo_ = false;
 }
 
 void
 Lily_stream::open()
 {
-       os_p_ = new ofstream( filename_str_ );
-       if ( !*os_p_ )
-               error ( "can't open `" + filename_str_ + "\'", 0 );
+    os_p_ = new ofstream( filename_str_ );
+    if ( !*os_p_ )
+       error ( "can't open `" + filename_str_ + "\'", 0 );
 }
 
 void
 Lily_stream::tnedni()
 {
-       assert( indent_i_ > 0 );
-       indent_i_--;
-       newline();
+    assert( indent_i_ > 0 );
+    indent_i_--;
+    newline();
 }