/usr/share/rep/lisp/rep/system/pwd-prompt.jl is in librep-dev 0.92.5-3+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #| pwd-prompt.jl -- Prompt for a confidential answer (i.e. a password)
$Id$
Copyright (C) 1998, 2000 John Harper <john@dcs.warwick.ac.uk>
This file is part of librep.
librep is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
librep is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with librep; see the file COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA
|#
(declare (in-module rep.system))
(open-structures '(rep.regexp rep.io.streams rep.lang.math))
;;;###autoload
(defun pwd-prompt (prompt)
"Prompt for a confidential string, with PROMPT as the title string. The
contents of the prompt will be masked out whilst being entered."
(when (zerop (system "stty -echo"))
(unwind-protect
(progn
(write standard-error prompt)
(unless (string-match "\s$" prompt)
(write standard-error #\space ))
(flush-file standard-error)
(let ((string (read-line standard-input)))
(when (string-match "\n$" string)
(setq string (substring string 0 (match-start))))
(write standard-error #\newline)
string))
(system "stty echo"))))
|