From 4da51bc42a26d60bc042e55521fc73884c232737 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Fri, 7 Dec 2018 10:10:22 -0500 Subject: [PATCH] Modified the "makedbh" script to avoid intermixing "printf" and "echo", because there is at least one OS variant out there where the two buffer independently and cause the output to have lines out of order. The script had previously used "printf" because "echo -n" is not POSIX-compliant and so not necessarily universally compatible. The script was changed to use "printf" throughout. --- scripts/makedbh | 128 ++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/scripts/makedbh b/scripts/makedbh index ede6930b..01e4fa52 100755 --- a/scripts/makedbh +++ b/scripts/makedbh @@ -47,143 +47,143 @@ while (${maskwords} >= 0) @ maskwords-- end -# Definitions -set ECHO_N = printf -# echo -n is not POSIX, not portable to newer Bourne-shells +# NOTE: echo -n is not POSIX, not portable to newer Bourne-shells, so use printf +# NOTE: Some OSes are known to buffer printf and echo independently, so do not +# intermix "echo" and "printf" or output may have lines out of order. -echo "#define TTMaskZero(m) ( \" >> $2 +printf "#define TTMaskZero(m) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " (m)->tt_words[$i] = 0" >> $2 + printf " (m)->tt_words[$i] = 0" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskIsZero(m) ( \" >> $2 +printf "#define TTMaskIsZero(m) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " (m)->tt_words[$i] == 0" >> $2 + printf " (m)->tt_words[$i] == 0" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo " && \" >> $2 + printf " && \\\n" >> $2 endif end -echo "#define TTMaskEqual(m, n) ( \" >> $2 +printf "#define TTMaskEqual(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " (m)->tt_words[$i] == (n)->tt_words[$i]" >> $2 + printf " (m)->tt_words[$i] == (n)->tt_words[$i]" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo " && \" >> $2 + printf " && \\\n" >> $2 endif end -echo "#define TTMaskIntersect(m, n) ( \" >> $2 +printf "#define TTMaskIntersect(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] & (n)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] & (n)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo " || \" >> $2 + printf " || \\\n" >> $2 endif end -echo "#define TTMaskCom(m) ( \" >> $2 +printf "#define TTMaskCom(m) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] = ~(m)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] = ~(m)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskCom2(m, n) ( \" >> $2 +printf "#define TTMaskCom2(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] = ~(n)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] = ~(n)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskSetMask(m, n) ( \" >> $2 +printf "#define TTMaskSetMask(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] |= (n)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] |= (n)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskSetMask3(m, n, o) ( \" >> $2 +printf "#define TTMaskSetMask3(m, n, o) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] |= (n)->tt_words[$i] | (o)->tt_words[$i])" \ + printf " ((m)->tt_words[$i] |= (n)->tt_words[$i] | (o)->tt_words[$i])" \ >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskAndMask(m, n) ( \" >> $2 +printf "#define TTMaskAndMask(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] &= (n)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] &= (n)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskAndMask3(m, n, o) ( \" >> $2 +printf "#define TTMaskAndMask3(m, n, o) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] = (n)->tt_words[$i] & (o)->tt_words[$i])" \ + printf " ((m)->tt_words[$i] = (n)->tt_words[$i] & (o)->tt_words[$i])" \ >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskClearMask(m, n) ( \" >> $2 +printf "#define TTMaskClearMask(m, n) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] &= ~(n)->tt_words[$i])" >> $2 + printf " ((m)->tt_words[$i] &= ~(n)->tt_words[$i])" >> $2 if ($i == 0) then - echo ")" >> $2 - echo "" >> $2 + printf ")\n" >> $2 + printf "\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "#define TTMaskClearMask3(m, n, o) ( \" >> $2 +printf "#define TTMaskClearMask3(m, n, o) ( \\\n" >> $2 foreach i (${count}) - ${ECHO_N} " ((m)->tt_words[$i] = (n)->tt_words[$i] & ~(o)->tt_words[$i])" \ + printf " ((m)->tt_words[$i] = (n)->tt_words[$i] & ~(o)->tt_words[$i])" \ >> $2 if ($i == 0) then - echo ")" >> $2 + printf ")\n" >> $2 else - echo ", \" >> $2 + printf ", \\\n" >> $2 endif end -echo "" >> $2 -echo "#endif /* _DATABASE_H */" >> $2 +printf "\n" >> $2 +printf "#endif /* _DATABASE_H */\n" >> $2