]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Fix ensure_single_trailing_newline() on macs. 16835/head
authorDavid Wells <drwells@email.unc.edu>
Tue, 2 Apr 2024 02:16:18 +0000 (22:16 -0400)
committerDavid Wells <drwells@email.unc.edu>
Wed, 3 Apr 2024 14:28:11 +0000 (10:28 -0400)
I'm not sure exactly why mac's version of sed produces different output here but
it is easy enough to use something simpler. Just check if the last character is
a newline: if not, then append a newline character.

contrib/utilities/indent_common.sh

index 16ffc31f99c49a63c89996d324208bf5a8142078..da3d30708f7503b4791fabe06dd0193bc71a1b1c 100644 (file)
@@ -325,24 +325,10 @@ process_changed()
 #
 ensure_single_trailing_newline()
 {
-  f=$1
-
-  # Remove newlines at end of file
-  # Check that the current line only contains newlines
-  # If it doesn't match, print it
-  # If it does match and we're not at the end of the file,
-  # append the next line to the current line and repeat the check
-  # If it does match and we're at the end of the file,
-  # remove the line.
-  sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' $f >$f.tmpi
-
-  # Then add a newline to the end of the file
-  # '$' denotes the end of file
-  # 'a\' appends the following text (which in this case is nothing)
-  # on a new line
-  sed -e '$a\' $f.tmpi >$f.tmp
-
-  diff -q $f $f.tmp >/dev/null || mv $f.tmp $f
-  rm -f $f.tmp $f.tmpi
+  file="${1}"
+
+  if test $(tail -c1 "$file") ; then
+    echo '' >> "$file"
+  fi
 }
 export -f ensure_single_trailing_newline

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.