Neither "echo -n" nor "echo ... \c" is POSIX compliant.

See "man 1p echo" section "APPLICATION USAGE" or
https://www.in-ulm.de/%7Emascheck/various/echo+printf/

--- di-4.46/C/tests.d/rpmbuild.sh
+++ di-4.46/C/tests.d/rpmbuild.sh
@@ -12,13 +12,13 @@
 locatecmd locrpmbuild rpmbuild
 
 if [ "${locrpmbuild}" = "" ];then
-  echo ${EN} " skipped${EC}" >&5
+  printf '%s' " skipped" >&5
   exit 0
 fi
 
 rvers=`rpmbuild --version | tr -cd '0-9' | sed 's/^\(...\).*/\1/'`
 if [ $rvers -lt 470 ]; then
-  echo ${EN} " old version skipped${EC}" >&5
+  printf '%s' " old version skipped" >&5
   exit 0
 fi
 
--- di-4.46/mkconfig/bin/shellfuncs.sh
+++ di-4.46/mkconfig/bin/shellfuncs.sh
@@ -28,17 +28,6 @@
   echo "mkconfig version ${_MKCONFIG_VERSION}"
 }
 
-setechovars () {
-  EN='-n'
-  EC=''
-  if [ "`echo -n test`" = "-n test" ]; then
-    EN=''
-    EC='\c'
-  fi
-  export EN
-  export EC
-}
-
 dosubst () {
   subvar=$1
   shift
--- di-4.46/mkconfig/bin/testfuncs.sh
+++ di-4.46/mkconfig/bin/testfuncs.sh
@@ -19,14 +19,14 @@
 
 chkccompiler () {
   if [ "${CC}" = "" ]; then
-    echo ${EN} " no C compiler; skipped${EC}" >&5
+    printf '%s' " no C compiler; skipped" >&5
     exit 0
   fi
 }
 
 chkdcompiler () {
   if [ "${DC}" = "" ]; then
-    echo ${EN} " no D compiler; skipped${EC}" >&5
+    printf '%s' " no D compiler; skipped" >&5
     exit 0
   fi
 }
--- di-4.46/mkconfig/mkconfig.sh
+++ di-4.46/mkconfig/mkconfig.sh
@@ -28,7 +28,6 @@
 . ${_MKCONFIG_DIR}/bin/shellfuncs.sh
 
 doshelltest $0 $@
-setechovars
 
 LOG="mkconfig.log"
 _MKCONFIG_TMP="_tmp_mkconfig"
@@ -154,7 +153,7 @@
   tlabel=$2
 
   echo "   $ifleveldisp[${tname}] ${tlabel} ... " >&9
-  echo ${EN} "${ifleveldisp}${tlabel} ... ${EC}" >&1
+  printf '%s' "${ifleveldisp}${tlabel} ... " >&1
 }
 
 _doexport () {
--- di-4.46/mkconfig/mkc.sh
+++ di-4.46/mkconfig/mkc.sh
@@ -16,7 +16,6 @@
 . ${_MKCONFIG_DIR}/bin/shellfuncs.sh
 
 doshelltest $0 $@
-setechovars
 
 rc=0
 args=$@
--- di-4.46/mkconfig/runtests.sh
+++ di-4.46/mkconfig/runtests.sh
@@ -136,8 +136,8 @@
   systype=`uname -s`
   shelllist=""
   for s in $tshelllist; do
-    echo ${EN} "  check $s${EC}" >&8
-    echo ${EN} "   $s${EC}"
+    printf '%s' "  check $s" >&8
+    printf '%s' "   $s"
     cmd="$s -c \". $_MKCONFIG_DIR/bin/shellfuncs.sh;chkshell echo\""
     eval $cmd >&8 2>&1
     rc=$?
@@ -177,7 +177,7 @@
 
   cd $_MKCONFIG_TSTRUNTMPDIR
   if [ "$_MKCONFIG_SHELL" != "" ]; then
-    echo ${EN} " ${dispshell}${EC}"
+    printf '%s' " ${dispshell}"
   fi
   targ=$arg
   if [ "$arg" != "" ]; then
@@ -195,7 +195,7 @@
   echo "####" >&9
   exec 9>&-
   if [ $rc -ne 0 -a "$_MKCONFIG_SHELL" != "" ]; then
-    echo ${EN} "*${EC}"
+    printf '%s' "*"
   fi
   return $rc
 }
@@ -225,7 +225,6 @@
 
 doshelltest $0 $@
 if [ $SUBDIR = F ]; then
-  setechovars
   mkconfigversion
 fi
 
@@ -386,8 +385,8 @@
   arg="mkconfig.sh"
 
   scount=""
-  echo ${EN} "$tbase ...${EC}"
-  echo ${EN} "$tbase ...${EC}" >&8
+  printf '%s' "$tbase ..."
+  printf '%s' "$tbase ..." >&8
   _MKCONFIG_TSTRUNTMPDIR=$_MKCONFIG_RUNTMPDIR/${tbase}
   export _MKCONFIG_TSTRUNTMPDIR
   mkdir ${_MKCONFIG_TSTRUNTMPDIR}
@@ -395,14 +394,14 @@
     cp $tconfig $_MKCONFIG_TSTRUNTMPDIR/$tconfh
   fi
   tfdisp=`$_MKCONFIG_RUNTESTDIR/$tf -d`
-  echo ${EN} " ${tfdisp}${EC}"
-  echo ${EN} " ${tfdisp}${EC}" >&8
+  printf '%s' " ${tfdisp}"
+  printf '%s' " ${tfdisp}" >&8
   $_MKCONFIG_RUNTESTDIR/$tf -q
   runshpl=$?
 
   if [ $runshpl -eq $_MKC_SH -o $runshpl -eq $_MKC_SH_PL ]; then
-    echo ${EN} " ...${EC}"
-    echo ${EN} " ...${EC}" >&8
+    printf '%s' " ..."
+    printf '%s' " ..." >&8
     src=0
     scount=1
     for s in $shelllist; do
@@ -468,12 +467,12 @@
     echo "# Test: $tf mkconfig.pl" >&9
     echo "# $dt" >&9
     echo "####" >&9
-    echo ${EN} "$tbase ...${EC}"
-    echo ${EN} "$tbase ...${EC}" >&8
-    echo ${EN} " ${tfdisp}${EC}"
-    echo ${EN} " ${tfdisp}${EC}" >&8
-    echo ${EN} " ... perl${EC}"
-    echo ${EN} " ... perl${EC}" >&8
+    printf '%s' "$tbase ..."
+    printf '%s' "$tbase ..." >&8
+    printf '%s' " ${tfdisp}"
+    printf '%s' " ${tfdisp}" >&8
+    printf '%s' " ... perl"
+    printf '%s' " ... perl" >&8
     echo "## Using mkconfig.pl " >&9
     if [ -f $tconfig ]; then
       cp $tconfig $_MKCONFIG_TSTRUNTMPDIR/$tconfh
--- di-4.46/mkconfig/units/c-main.sh
+++ di-4.46/mkconfig/units/c-main.sh
@@ -559,7 +559,7 @@
       eval $cmd
       echo "## dcl(C): ${dcl}" >&9
       c=`echo ${dcl} | sed 's/[^,]*//g'`
-      ccount=`echo ${EN} "$c${EC}" | wc -c`
+      ccount=`printf '%s' "$c" | wc -c`
       domath ccount "$ccount + 1"  # 0==1 also, unfortunately
       c=`echo ${dcl} | sed 's/^[^(]*(//'`
       c=`echo ${c} | sed 's/)[^)]*$//'`
--- di-4.46/mkconfig/units/d-main.sh
+++ di-4.46/mkconfig/units/d-main.sh
@@ -1680,7 +1680,7 @@
       echo "## tdcl(D): ${tdcl}" >&9
       if [ $argflag = 1 ]; then
         c=`echo ${tdcl} | sed 's/[^,]*//g'`
-        ccount=`echo ${EN} "$c${EC}" | wc -c`
+        ccount=`printf '%s' "$c" | wc -c`
         domath ccount "$ccount + 1"  # 0==1 also, unfortunately
         c=`echo ${tdcl} | sed 's/^[^(]*(//'`
         c=`echo ${c} | sed 's/)[^)]*$//'`
--- di-4.46/tests.d/buildsh.sh
+++ di-4.46/tests.d/buildsh.sh
@@ -43,7 +43,7 @@
       fi
     fi
 
-    echo ${EN} " ${d}${EC}" >&5
+    printf '%s' " ${d}" >&5
     ${MAKE:-make} ${TMAKEFLAGS} realclean
     ${MAKE:-make} ${TMAKEFLAGS} -e prefix=${instdir} all > make.log 2>&1
     rc=$?
--- di-4.46/tests.d/diarg.sh
+++ di-4.46/tests.d/diarg.sh
@@ -93,7 +93,7 @@
   tdir=$_MKCONFIG_RUNTOPDIR/$d
 
   if [ -x ${tdir}/di ]; then
-    echo ${EN} " ${d}${EC}" >&5
+    printf '%s' " ${d}" >&5
     # most all unix
     ${tdir}/di -n -f M / 2>/dev/null | grep '^/[ ]*$' > /dev/null 2>&1
     rc=$?
@@ -135,7 +135,7 @@
     done
 
     if [ $lrc -ne 0 ]; then
-      echo ${EN} "*${EC}" >&5
+      printf '%s' "*" >&5
       grc=1
     fi
   else
--- di-4.46/tests.d/disort.sh
+++ di-4.46/tests.d/disort.sh
@@ -41,7 +41,7 @@
     fi
   )
   if [ -x $tdir/di ]; then
-    echo ${EN} " ${d}${EC}" >&5
+    printf '%s' " ${d}" >&5
     echo "## regular sort first, then di sort"
     echo "by special"
     ${tdir}/di -n -a -f S | sort > s1
@@ -118,12 +118,12 @@
 
     rm -f s1 s2
     if [ $grc -ne 0 ]; then
-      echo ${EN} "*${EC}" >&5
+      printf '%s' "*" >&5
     fi
   else
     if [ $d = C ]; then
       echo "## no di executable found for dir $d"
-      echo ${EN} "*${EC}" >&5
+      printf '%s' "*" >&5
       grc=1
     fi
   fi
--- di-4.46/tests.d/ditot.sh
+++ di-4.46/tests.d/ditot.sh
@@ -27,7 +27,7 @@
     fi
   )
   if [ -x ${tdir}/di ]; then
-    echo ${EN} " ${d}${EC}" >&5
+    printf '%s' " ${d}" >&5
     for format in $FORMATS; do
       echo "Checking format: $format"
       # have to exclude zfs, null (dragonflybsd)
@@ -37,7 +37,7 @@
       didata=`${tdir}/di -n -d1 -f $format -t -a -x null,zfs,ctfs,objfs,sharefs 2>/dev/null `
       summtot=`(echo "0 ";echo $didata | sed 's/  */ + /g'; echo " - p") | dc`
       if [ $summtot -ne 0 ]; then
-        echo ${EN} "*${EC}" >&5
+        printf '%s' "*" >&5
         echo "## format: $format failed"
         grc=1
       fi
