diff --git a/archimedean.cpp b/archimedean.cpp index 0d050329..e991f473 100644 --- a/archimedean.cpp +++ b/archimedean.cpp @@ -279,7 +279,7 @@ void archimedean_tiling::regroup() { flags.clear(); flags.resize(M); for(int i=0; i int& { if(nflags.empty()) return nflags0; else return nflags.back(); }; while(true) { if(peek() == ')' || (peek() == '(' && isize(faces)) || peek() == 0) break; else if((peek() == 'L') && faces.size()) { - if(!nflags.empty()) nflags.back() |= sfLINE; + if(!nflags.empty()) nfback() |= sfLINE; have_line = true, at++; } else if((peek() == 'l') && faces.size()) { - if(!nflags.empty()) nflags.back() |= sfSEMILINE; + if(!nflags.empty()) nfback() |= sfSEMILINE; have_line = true, at++; } else if((peek() == 'H' || peek() == 'h') && faces.size()) { - if(!nflags.empty()) nflags.back() |= sfPH; + if(!nflags.empty()) nfback() |= sfPH; have_ph = true, at++; } else if(isnumber()) faces.push_back(read_number()), nflags.push_back(0); @@ -765,10 +762,11 @@ void archimedean_tiling::parse() { at++; int rep = read_number(); if(rep == 0) nflags.pop_back(), faces.pop_back(); - for(int i=1; i