diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-07 18:06:15 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-12-07 18:06:15 -0500 |
commit | f7c30a3acca755fae92269dc72b6e2d746d6bf39 (patch) | |
tree | 3c2a4864ef689c96b4e68f7654be2bf64a5e6d29 /.config | |
parent | 91cb29902208d72688d4a3e836fc8e2e46bb66f2 (diff) |
bash: emacs: hostname communication
Diffstat (limited to '.config')
-rw-r--r-- | .config/bash/rc.d/90_emacs.sh | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/.config/bash/rc.d/90_emacs.sh b/.config/bash/rc.d/90_emacs.sh index 79d5e61..90e771c 100644 --- a/.config/bash/rc.d/90_emacs.sh +++ b/.config/bash/rc.d/90_emacs.sh @@ -35,17 +35,23 @@ if [[ $TERM == eterm* ]]; then # before the hostname is set, otherwise it will set # (default-directory) to an invalid TRAMP string. # - # Because the hostname is compared to (system-name) to - # check if it is localhost, "$(hostname -f)" may need - # to be used instead of $HOSTNAME, if - # $HOSTNAME/$(hostname) doesn't return a qualified - # domain. - local hostname=$HOSTNAME - [[ $hostname = *.* ]] || hostname="$(hostname -f)" + # The hostname is compared to (system-name) to check + # if it is localhost. In Emacs 25, (system-name) is + # just gethostname(2), and in Bash 4.2, $HOSTNAME is + # also just gethostname(2). + # + # As an aside, Emacs and Bash deal with hostnames > + # 255 bytes differently. They both use 255 bytes for + # the initial call, but Bash won't retry with a bigger + # limit, but Emacs will. I don't care, because + # besides such long hostnames being uncommon, Linux's + # HOST_NAME_MAX on i686 and x86_64 is only 64, so it's + # actually impossible. IDK about other kernels or + # architectures. printf '\eAnSiT%s %s\n' \ u "$USER" \ c "$PWD" \ - h "$hostname" + h "$HOSTNAME" } # Set the shell's X11 display (emacs -> shell) _emacs_set_shell_DISPLAY() { |