Branch: Tag:

2010-01-02

2010-01-02 13:16:07 by Stephen R. van den Berg <srb@cuci.nl>

Cater for Mac-style line endings.

Rev: lib/modules/Parser.pmod/Tabular.pike:1.7

91:   { string s;    if(n)    { s=read(n); -  if(has_value(s,"\n")) +  if(has_value(s,"\n")||has_value(s,"\r"))    throw(severity);    }    else    { s=in->gets();    if(!s)    throw(severity); -  +  if(has_value(s,"\r")) // Retrofix \r-only line endings +  { array t; +  t=s/"\r"; +  s=t[0];in->unread(t[1..]*"\n"); +  }    alread->add(s);alread->putchar('\n');    if(has_suffix(s,"\r"))    s=s[..<1];
205:    break;    }    case '\n': +  FETCHAR(c,buf,i); +  switch(c) +  { default:i--; +  case '\r':case '\x1a':; +  }    eol=1;    break delimready; -  case '\r':case '\x1a':; +  case '\r': +  FETCHAR(c,buf,i); +  if(c!='\n') +  i--; +  eol=1; +  break delimready; +  case '\x1a':;    }    FETCHAR(c,buf,i);    }
250:    }    break;    case '\n': +  FETCHAR(c,buf,i); +  switch(c) +  { default:i--; +  case '\r':case '\x1a':; +  }    if(!inquotes)    { eol=1;    break csvready;    }    word->putchar('\n'); -  case '\r':case '\x1a':; +  break; +  case '\r': +  FETCHAR(c,buf,i); +  if(c!='\n') +  i--; +  if(!inquotes) +  { eol=1; +  break csvready;    } -  +  word->putchar('\n'); +  case '\x1a':; +  }    FETCHAR(c,buf,i);    }    if(!sizeof(buf))