# remove expr GNUisms: use BRE syntax and remove match, based on
# upstream commit e3bab0cc706880c22f2b205e7abad9d8c0227071, but
# also shield expr from leading dash of X server args.
#
# generate displayname as dictated in the xauth manpage
#
--- startx.in.orig	2025-03-09 20:44:26 UTC
+++ startx.in
@@ -179,7 +179,7 @@ while [ "$1" != "" ]; do
 	else
 	    # display must be the FIRST server argument
 	    if [ "$serverargs" = "" ] && \
-		 expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
+		 expr \( "$1" \) : ':[0-9][0-9]*$' > /dev/null 2>&1; then
 		display="$1"
 	    else
 		serverargs="$serverargs $1"
@@ -242,7 +242,7 @@ for i in $serverargs; do
 # if no vt is specified add vtarg (which may be empty)
 have_vtarg="no"
 for i in $serverargs; do
-    if expr "$i" : 'vt[0-9][0-9]*$' > /dev/null; then
+    if expr \( "$i" \) : 'vt[0-9][0-9]*$' > /dev/null; then
         have_vtarg="yes"
     fi
 done
@@ -271,9 +271,9 @@ if [ "$enable_xauth" = 1 ] ; then
         mcookie=$($mk_cookie)
     else
         if [ -r /dev/urandom ]; then
-            mcookie=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \"%08x\")
+            mcookie=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | /usr/bin/hexdump -e \"%08x\")
         else
-            mcookie=$(dd if=/dev/random bs=16 count=1 2>/dev/null | hexdump -e \"%08x\")
+            mcookie=$(dd if=/dev/random bs=16 count=1 2>/dev/null | /usr/bin/hexdump -e \"%08x\")
         fi
     fi
     if [ "$mcookie" = "" ]; then
@@ -302,9 +302,9 @@ EOF
     # now add the same credentials to the client authority file
     # if '$displayname' already exists do not overwrite it as another
     # server may need it. Add them to the '$xserverauthfile' instead.
-    for displayname in $authdisplay $hostname$authdisplay; do
+    for displayname in $authdisplay $hostname/unix$authdisplay; do
         authcookie=$(xauth list "$displayname" \
-        | sed -n 's/.*'"$displayname"'[[:space:]*].*[[:space:]*]//p' 2>/dev/null);
+        | sed -n 's|.*'"$displayname"'[[:space:]*].*[[:space:]*]||p' 2>/dev/null);
         if [ "z${authcookie}" = "z" ] ; then
             "$xauth" -q << EOF
 add $displayname . $mcookie
