From f3dff9ded98fa9d078699ce52b2b0c119eedfcb9 Mon Sep 17 00:00:00 2001 From: jixiufeng Date: Sun, 25 Nov 2018 23:48:35 +0800 Subject: run hook vterm-exit-hook with term buffer as argument --- vterm.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vterm.el b/vterm.el index 3a0a354..6623839 100644 --- a/vterm.el +++ b/vterm.el @@ -54,7 +54,7 @@ to the terminal anymore." :type '(repeat string) :group 'vterm) -(defcustom vterm-exit-hook nil +(defcustom vterm-exit-functions nil "Shell exit hook. This hook applies only to new vterms, created after setting this @@ -159,7 +159,7 @@ for different shell. " :coding 'no-conversion :connection-type 'pty :filter #'vterm--filter - :sentinel (when vterm-exit-hook #'vterm--sentinel))))) + :sentinel (when vterm-exit-functions #'vterm--sentinel))))) ;; Keybindings (define-key vterm-mode-map [tab] #'vterm--self-insert) @@ -260,8 +260,9 @@ Then triggers a redraw from the module." (defun vterm--sentinel (process event) "Sentinel of vterm PROCESS." (when (not (process-live-p process)) - (with-current-buffer (process-buffer process) - (run-hooks 'vterm-exit-hook)))) + (let ((buf (process-buffer process))) + (run-hook-with-args 'vterm-exit-functions + (if (buffer-live-p buf) buf nil))))) (defun vterm--window-size-change (frame) "Callback triggered by a size change of the FRAME. -- cgit v1.0 From 071e2cc74409ae2f0a71c1a77c1237ce538e68b3 Mon Sep 17 00:00:00 2001 From: jixiufeng Date: Mon, 26 Nov 2018 00:01:36 +0800 Subject: Rename vterm-set-title-hook to vterm-set-title-functions --- vterm.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/vterm.el b/vterm.el index 6623839..94bafef 100644 --- a/vterm.el +++ b/vterm.el @@ -65,16 +65,16 @@ Note that this hook will not work if another package like :type 'hook :group 'vterm) -(defcustom vterm-set-title-hook nil +(defcustom vterm-set-title-functions nil "Shell set title hook. those functions are called one by one, with 1 arguments. -`vterm-set-title-hook' should be a symbol, a hook variable. +`vterm-set-title-functions' should be a symbol, a hook variable. The value of HOOK may be nil, a function, or a list of functions. for example (defun vterm--rename-buffer-as-title (title) (rename-buffer (format \"vterm %s\" title))) -(add-hook 'vterm-set-title-hook 'vterm--rename-buffer-as-title) +(add-hook 'vterm-set-title-functions 'vterm--rename-buffer-as-title) see http://tldp.org/HOWTO/Xterm-Title-4.html about how to set terminal title for different shell. " @@ -259,10 +259,9 @@ Then triggers a redraw from the module." (defun vterm--sentinel (process event) "Sentinel of vterm PROCESS." - (when (not (process-live-p process)) - (let ((buf (process-buffer process))) - (run-hook-with-args 'vterm-exit-functions - (if (buffer-live-p buf) buf nil))))) + (let ((buf (process-buffer process))) + (run-hook-with-args 'vterm-exit-functions + (if (buffer-live-p buf) buf nil)))) (defun vterm--window-size-change (frame) "Callback triggered by a size change of the FRAME. @@ -309,7 +308,7 @@ Feeds the size change to the virtual terminal." (defun vterm--set-title (title) "Run the `vterm--set-title-hook' with TITLE as argument." - (run-hook-with-args 'vterm-set-title-hook title)) + (run-hook-with-args 'vterm-set-title-functions title)) (provide 'vterm) -- cgit v1.0