Jonathan M Davis wrote: > void removeTabs(int tabSize, string fileName) > { > auto file = File(fileName); > string[] output; > > foreach(line; file.byLine()) > { > int lastTab = 0; > > while(lastTab != -1) > { > const int tab = line.indexOf('\t'); > > if(tab == -1) > break; > > const int numSpaces = tabSize - tab % tabSize; > > line = line[0 .. tab] ~ repeat(" ", numSpaces) ~ line[tab + 1 > .. $]; > > lastTab = tab + numSpaces; > } > > output ~= line.idup; > } > > std.file.write(fileName, output.join("\n")); > }
Actually, looking at the code again, that while loop really should be while(1) rather than while(lastTab != -1), but it will work the same regardless. - Jonathan M Davis