diff --git a/tools/generation/lib/template.py b/tools/generation/lib/template.py index bdd3eb1bcd54054d740b19b01a2e9990835e52d6..92b8016f3c14b90510611de17161f62c3205b4a6 100644 --- a/tools/generation/lib/template.py +++ b/tools/generation/lib/template.py @@ -20,7 +20,11 @@ def indent(text, prefix = ' '): else: lines = text.split('\n') - return prefix + ('\n' + prefix).join(lines) + indented = map( + lambda line: line if len(line) == 0 else prefix + line, + lines) + + return '\n'.join(indented) class Template: def __init__(self, filename): diff --git a/tools/generation/test/expected/normal/info-multiline-folding-normal.js b/tools/generation/test/expected/normal/info-multiline-folding-normal.js new file mode 100644 index 0000000000000000000000000000000000000000..0c9a1f16747deb73562b1b593c972d2ba608bea0 --- /dev/null +++ b/tools/generation/test/expected/normal/info-multiline-folding-normal.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - tools/generation/test/fixtures/normal.case +// - tools/generation/test/fixtures/normal/info-multiline-folding.template +/*--- +description: foobar (First template name) +es6id: 1.2.3 +flags: [generated, a, b] +includes: [foo.js] +info: > + This is an "info" field with an + + empty line + Trailing white space in the template: + should be preserved: + + + + + + + + + case info +---*/ + +// Trailing white space in the test body: +// should be preserved: + + + + + + + + +'This is "teardown" code.'; diff --git a/tools/generation/test/fixtures/normal/info-multiline-folding.template b/tools/generation/test/fixtures/normal/info-multiline-folding.template new file mode 100644 index 0000000000000000000000000000000000000000..d2ede4bf76bd59adab38c18c41f623eaa93ef45a --- /dev/null +++ b/tools/generation/test/fixtures/normal/info-multiline-folding.template @@ -0,0 +1,30 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +name: First template name +path: normal/info-multiline-folding- +es6id: 1.2.3 +info: | + This is an "info" field with an + + empty line + Trailing white space in the template: + should be preserved: + + + + + + + +---*/ + +// Trailing white space in the test body: +// should be preserved: + + + + + + +