- if (cr) {
- indentation = 0;
- } else if (c==' ' && indentation >= 0) {
- indentation++;
- } else if (indentation >= 0) {
- //System.err.println("\r \rindent: " + (indentation - lastIndentation));
- redent(indentation - lastIndentation);
- r.unread(c);
+ if (cr && ignore) {
+ ignore = false;
+ } else if (cr) {
+ while(true) {
+ indentation = 0;
+ do { i = r.read(); if (i==' ') indentation++; } while (i==' ');
+ if (i=='\n') { /* FIXME */ continue; }
+ if (i==-1) { /* FIXME */ }
+ if (indentation - lastIndentation > 0) {
+ r.unread('\n');
+ for(int j=0; j<indentation; j++) r.unread(' ');
+ redent(indentation - lastIndentation);
+ } else {
+ redent(indentation - lastIndentation);
+ r.unread('\n');
+ for(int j=0; j<indentation; j++) r.unread(' ');
+ }
+ if (i != -1) r.unread((char)i);
+ ignore = true;
+ break;
+ }