Bu bir işlem filtresi ile yapılır.
Varsayılan olarak comint-output-filter-functions
, comint-watch-for-password-prompt
bunu işleyen filtre işlevidir.
Metin eşleşmesini görürse kullanıcıdan şifre istemek için comint-password-prompt-regexp
çağrıda bulunur send-invisible
.
İşlem filtrelerinin nasıl çalıştığı hakkında daha fazla bilgi için bkz. C-hig (elisp)Filter Functions
Düzenleme: Bir takip olarak, ayrıca M-x toggle-debug-on-quit
ve sonra sudo istemi türünde C-gneler olduğunu gösteren bir geri izleme almak için unutmayın. Örneğin:
Debugger entered--Lisp error: (quit)
read-string("[sudo] password for <username>: " nil t nil)
read-passwd("[sudo] password for <username>: ")
send-invisible("[sudo] password for <username>: ")
comint-watch-for-password-prompt("[sudo] password for <username>: ")
run-hook-with-args(comint-watch-for-password-prompt "[sudo] password for <username>: ")
comint-output-filter(#<process shell> "[sudo] password for <username>: ")
Değerlendirilen bayt-derlenmiş kod nedeniyle çıktı minimumdur, bu nedenle detayı comint-output-filter-functions
kaybolur, ancak genel durumu hemen görebilirsiniz. Ayrıca M-x load-library
RET comint.el
RET, derlenmemiş kodu yükleyebilir ve daha ayrıntılı bir geri izleme elde etmek için tüm işlemi tekrarlayabilirsiniz.