From b5273895f001a4d7e96c0e78d2048ed4b3b1e9b3 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Fri, 3 Feb 2023 09:55:04 -0700 Subject: emacsclient wrapper: don't call realpath & ss on non-existent socket --- bin/emacsclient | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'bin/emacsclient') diff --git a/bin/emacsclient b/bin/emacsclient index 5279effd..ff6b071e 100755 --- a/bin/emacsclient +++ b/bin/emacsclient @@ -83,7 +83,7 @@ eval set -- "$getopt" get_listener () { local socket=$1 listener= listener_age= rematch_listener= rematch_age= # Find the youngest process listening on a socket of this name. - while read -r line; do + [ -e "$socket" ] && while read -r line; do [[ $line =~ ,pid=([[:digit:]]+), ]] || continue rematch_listener=${BASH_REMATCH[1]} rematch_age="$(ps h -o etimes $rematch_listener)" @@ -94,12 +94,8 @@ get_listener () { listener_age=$rematch_age fi done < <(ss -plx src "$(realpath "$socket")") - if [ -z "$listener" -a -e "$socket" ]; then - # Nothing is listening: remove dangling socket. - rm "$socket" - else - echo "$listener" - fi + # If nothing is listening, remove any dangling socket. + [ -n "$listener" ] && echo "$listener" || rm -f "$socket" } gud_status () { -- cgit v1.2.3