eval: Remove a single trailing \n from "returning string" functions.
authorRichard W.M. Jones <rjones@redhat.com>
Sun, 12 Jan 2020 19:13:09 +0000 (19:13 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Sun, 12 Jan 2020 19:13:34 +0000 (19:13 +0000)
src/eval.ml

index 053d8bf..3363eef 100644 (file)
@@ -278,6 +278,10 @@ and call_function_really env loc name returning code =
      let r, b = run_code_to_string env loc code in
      if r <> 0 then
        failwithf "function ā€˜%sā€™ failed with exit code %d" name r;
+     (* Remove a single trailing \n if present. *)
+     let b =
+       let len = String.length b in
+       if len > 0 && b.[len-1] = '\n' then String.sub b 0 (len-1) else b in
      Ast.EConstant (loc, Ast.CString b)
 
   | RetStrings ->