CustomColumn::CustomColumn(string name,string path) { FILE *fp=fopen(path.c_str(),"rb"); fscanf(fp,"%i\n",&w); while(!feof(fp)) { skipWhile(fp,' '); back(fp); char add=fgetc(fp); skipWhile(fp,' '); back(fp); string type; while(!feof(fp)) { char c=fgetc(fp); if(!isalnum(c)) break; type.push_back(c); } #define CHECK(a) if(type==a::cmd()) rules.push_back(new a(add,fp)); CHECK(All); CHECK(Type); CHECK(RT); CHECK(String); CHECK(By); CHECK(Favorited); } init(w,name); }
QString parseToken(QString::const_iterator &it) { skipWhile(it, spaces); auto beg = it; skipUntil(it, spaces); return QString(beg, it - beg); }
QString parseLine(QString::const_iterator &it) { auto beg = it; skipUntil(it, newlns); auto end = it; skipWhile(it, newlns); return QString(beg, end - beg); }
QString parseSingle(QString::const_iterator &it) { skipWhile(it, spaces); return (*it == '"') ? parseQuotes(it) : parseToken(it); }