diff --git a/object.js b/object.js index 77d4109..27a1569 100755 --- a/object.js +++ b/object.js @@ -107,14 +107,15 @@ function(text, tab_size, leading_tabs){ // ignore 0 indent of first line... || (i == 0 && indent == 0) ? l - // last line -- ignore leading_tabs if lower indent... - // XXX does not work correctly when: - // - two lines - // - l is 0 - // - non-zero leading_tabs... + // last line... : i == lines.length-1 && indent >= l ? - Math.min(l, Math.max(indent - leading_tabs, 0)) + // XXX feels a bit overcomplicated... + (l < 0 ? + // last of two with 0 indent on first -> indent... + Math.max(indent - leading_tabs, 0) + // ignore leading_tabs if lower indent... + : Math.min(l, Math.max(indent - leading_tabs, 0))) // initial state... : l < 0 ? indent