diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2013-04-06 10:43:28 +0200 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2013-04-06 10:43:28 +0200 |
| commit | 1f1c3e3eebf7a089ec04d60d4e25c33ac9dc0f87 (patch) | |
| tree | a56126b2e50e5d40c209072579bd4eb3830b5b04 /sqlparse | |
| parent | 2150a0aaef8366c97fa4260d3ba376b211981668 (diff) | |
| download | sqlparse-1f1c3e3eebf7a089ec04d60d4e25c33ac9dc0f87.tar.gz | |
Detect runaway indentations and go back to first column instead of going crazy.
Even though the resulting statement is not correctly formatted, it's
much more usable than before.
Diffstat (limited to 'sqlparse')
| -rw-r--r-- | sqlparse/filters.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sqlparse/filters.py b/sqlparse/filters.py index e238f69..fdb32ac 100644 --- a/sqlparse/filters.py +++ b/sqlparse/filters.py @@ -261,7 +261,13 @@ class ReindentFilter: def nl(self): # TODO: newline character should be configurable - ws = '\n' + (self.char * ((self.indent * self.width) + self.offset)) + space = (self.char * ((self.indent * self.width) + self.offset)) + # Detect runaway indenting due to parsing errors + if len(space) > 200: + # something seems to be wrong, flip back + self.indent = self.offset = 0 + space = (self.char * ((self.indent * self.width) + self.offset)) + ws = '\n' + space return sql.Token(T.Whitespace, ws) def _split_kwds(self, tlist): |
