]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/text-stream.hh
patch::: 1.3.144.jcn6
[lilypond.git] / flower / include / text-stream.hh
index 4d369fdbbb8d2c81a0a2ea50cb610207313f7e2f..6d7e5530a807d528b06302f93df61d482f6dcad4 100644 (file)
@@ -5,12 +5,12 @@
 #include <stdio.h>
 #include <ctype.h>
 #include "string.hh"
-#include "varray.hh"
+#include "array.hh"
 
 /**
   line counting input stream. 
   a stream for textfiles. linecounting. Thin interface getchar and
-  ungetchar.  (ungetc is unlimited) 
+  ungetchar. (ungetc is unlimited) 
   
   should protect get and unget against improper use
 */
@@ -27,17 +27,15 @@ class Text_stream
     
 public:
   Text_stream (String fn);
-  String get_name() { return name; }
-  bool eof() {
-    return feof (f);
-  }
-  char    get() {
+  String get_name () { return name; }
+  bool eof_b ();
+  char get () {
     char c;
        
-    if (pushback.empty())
+    if (pushback.empty ())
       c = getc (f);    
     else 
-      c = pushback.pop();
+      c = pushback.pop ();
 
     if (c =='\n')
       line_no++;
@@ -48,24 +46,22 @@ public:
       line_no--;
     pushback.push (c);
   }
-  char peek() {
-    char c = get();
+  char peek () {
+    if (eof_b ())
+      return (char)-1;
+    char c = get ();
     unget (c);
     return c;
   }
-  bool eol() {
-    return (peek() == '\n');
+  bool eol () {
+    return (peek () == '\n');
   }
-  int line(){
+  int line (){
     return line_no;
   }
 
-  ~Text_stream(){
-    if (!eof()) 
-      cerr <<__FUNCTION__<< ": closing unended file";
-    
-    fclose (f);
-  }
+  ~Text_stream ();
+  
 
   /// GNU format message.
   void message (String s);