]> git.donarmstrong.com Git - lilypond.git/blobdiff - lib/source-file.cc
release: 0.1.13
[lilypond.git] / lib / source-file.cc
index 7d912edd6367a05890acabbaaeef50a100b11c1d..dc6c092519a66eaec827c602ebc3a3cd7d8dbf3c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  source-file.cc -- implement 
+  source-file.cc -- implement Source_file
 
   source file of the GNU LilyPond music typesetter
 
 
 Source_file::Source_file(String filename_str)
 {
-    name_str_ = filename_str;
-    istream_p_ = 0;
-    storage_p_ = new Simple_file_storage(filename_str);
+  name_str_ = filename_str;
+  istream_p_ = 0;
+  storage_p_ = new Simple_file_storage(filename_str);
 }
 
 istream*
 Source_file::istream_l()
 {
+  /*
     if (!name_str_.length_i())
-       return &cin;
-    
-    if (!istream_p_) 
-      {
-       if (length_i()) // can-t this be done without such a hack?
-           istream_p_ = new istrstream(ch_C(), length_i());
-        else 
-          {
-           istream_p_ = new istrstream("", 0);
-           istream_p_->set(ios::eofbit);
-         }
-      }
-    return istream_p_;
+      return &cin;
+    */
+  
+  if (!istream_p_) 
+    {
+      if (length_i()) // can-t this be done without such a hack?
+       istream_p_ = new istrstream(ch_C(), length_i());
+      else 
+       {
+         istream_p_ = new istrstream("", 0);
+         istream_p_->set(ios::eofbit);
+       }
+    }
+  return istream_p_;
 }
 
 String
@@ -52,99 +54,99 @@ Source_file::file_line_no_str(char const *context_ch_C) const
     return "(unknown)";
   else
     return name_str() + ": "
-       + String(line_i(context_ch_C));
+      + String(line_i(context_ch_C));
 }
 
 String
 Source_file::name_str() const
 {
-    return name_str_;
+  return name_str_;
 }
 
 Source_file::~Source_file()
 {
-    delete istream_p_;
-    istream_p_ = 0;
-    delete storage_p_;
+  delete istream_p_;
+  istream_p_ = 0;
+  delete storage_p_;
 }
 
 String
 Source_file::error_str(char const* pos_ch_C) const
 {
-    char const* data_ch_C = ch_C();
-    char const * eof_C_ = data_ch_C + length_i();
-    if (!in_b(pos_ch_C))
-       return "(position unknown)";
+  char const* data_ch_C = ch_C();
+  char const * eof_C_ = data_ch_C + length_i();
+  if (!in_b(pos_ch_C))
+    return "(position unknown)";
 
     
-    if (pos_ch_C == eof_C_)
-       pos_ch_C --;
-    char const* begin_ch_C = pos_ch_C;
-    while (begin_ch_C > data_ch_C)
-        if (*--begin_ch_C == '\n') 
-          {
-           begin_ch_C++;
-           break;
-         }
-
-    char const* end_ch_C = pos_ch_C;
-    while (end_ch_C < eof_C_)
-        if (*end_ch_C++ == '\n') 
-          {
-         end_ch_C--;
-         break;
-         }
+  if (pos_ch_C == eof_C_)
+    pos_ch_C --;
+  char const* begin_ch_C = pos_ch_C;
+  while (begin_ch_C > data_ch_C)
+    if (*--begin_ch_C == '\n') 
+      {
+       begin_ch_C++;
+       break;
+      }
+
+  char const* end_ch_C = pos_ch_C;
+  while (end_ch_C < eof_C_)
+    if (*end_ch_C++ == '\n') 
+      {
+       end_ch_C--;
+       break;
+      }
   
-       //    String(char const* p, int length) is missing!?
-    String line_str((Byte const*)begin_ch_C, end_ch_C - begin_ch_C);
-
-    int error_col_i = 0;
-    char const* scan_ch_C = begin_ch_C;
-    while (scan_ch_C < pos_ch_C)
-       if (*scan_ch_C++ == '\t')
-           error_col_i = (error_col_i / 8 + 1) * 8;
-       else
-           error_col_i++;
-
-    String str = line_str.left_str(pos_ch_C - begin_ch_C) 
-       + String('\n')
-       + String(' ', error_col_i) 
-       + line_str.mid_str(pos_ch_C - begin_ch_C, INT_MAX); // String::mid should take 0 arg..
-    return str;
+  //    String(char const* p, int length) is missing!?
+  String line_str((Byte const*)begin_ch_C, end_ch_C - begin_ch_C);
+
+  int error_col_i = 0;
+  char const* scan_ch_C = begin_ch_C;
+  while (scan_ch_C < pos_ch_C)
+    if (*scan_ch_C++ == '\t')
+      error_col_i = (error_col_i / 8 + 1) * 8;
+    else
+      error_col_i++;
+
+  String str = line_str.left_str(pos_ch_C - begin_ch_C) 
+    + String('\n')
+    + String(' ', error_col_i) 
+    + line_str.mid_str(pos_ch_C - begin_ch_C, INT_MAX); // String::mid should take 0 arg..
+  return str;
 }
 
 bool
 Source_file::in_b(char const* pos_ch_C) const
 {
-    return (pos_ch_C && (pos_ch_C >= ch_C()) && (pos_ch_C <= ch_C() + length_i()));
+  return (pos_ch_C && (pos_ch_C >= ch_C()) && (pos_ch_C <= ch_C() + length_i()));
 }
 
 
 int
 Source_file::line_i(char const* pos_ch_C) const
 {
-    if (!in_b(pos_ch_C))
-       return 0;
+  if (!in_b(pos_ch_C))
+    return 0;
 
-    int i = 1;
-    char const* scan_ch_C = ch_C();
-    if (!scan_ch_C)
-      return 0;
+  int i = 1;
+  char const* scan_ch_C = ch_C();
+  if (!scan_ch_C)
+    return 0;
     
-    while (scan_ch_C < pos_ch_C)
-       if (*scan_ch_C++ == '\n')
-               i++;
-    return i;
+  while (scan_ch_C < pos_ch_C)
+    if (*scan_ch_C++ == '\n')
+      i++;
+  return i;
 }
 
 int
 Source_file::length_i() const
 {
-    return storage_p_->length_i();
+  return storage_p_->length_i();
 }
 
 char const *
 Source_file::ch_C() const
 {
-    return storage_p_->ch_C();
+  return storage_p_->ch_C();
 }