From ec80066cee5a6cc1b30f4144b1ef6a3ad4670992 Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Sun, 19 Jan 2014 02:24:26 +0100 Subject: [PATCH] Fixes #5679: lineinfile ignores newline in line argument --- files/lineinfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/files/lineinfile b/files/lineinfile index 82658cae654..e05652a1f9b 100644 --- a/files/lineinfile +++ b/files/lineinfile @@ -348,7 +348,11 @@ def main(): if ins_bef is None and ins_aft is None: ins_aft = 'EOF' - present(module, dest, params['regexp'], params['line'], + # Replace the newline character with an actual newline. Don't replace + # escaped \\n, hence sub and not str.replace. + line = re.sub(r'\n', os.linesep, params['line']) + + present(module, dest, params['regexp'], line, ins_aft, ins_bef, create, backup, backrefs) else: if params['regexp'] is None and params.get('line', None) is None: