From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andreas Politz Newsgroups: gmane.emacs.help Subject: Re: Auto-Prompt for Password and Raise Privilegies when needed Date: Tue, 04 May 2010 22:11:45 +0200 Organization: FH-Trier Message-ID: <87ocgv2zr2.fsf@fh-trier.de> References: <146fc610-6a5e-4607-b61d-248c926f1d67@b7g2000yqk.googlegroups.com> <87bpcwsncr.fsf@fh-trier.de> <87eihrvjj4.fsf@fh-trier.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1273067501 7382 80.91.229.12 (5 May 2010 13:51:41 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 5 May 2010 13:51:41 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed May 05 15:51:41 2010 connect(): No such file or directory Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O9f0m-0002rI-DX for geh-help-gnu-emacs@m.gmane.org; Wed, 05 May 2010 15:51:40 +0200 Original-Received: from localhost ([127.0.0.1]:47887 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O9f0l-0003lv-Ta for geh-help-gnu-emacs@m.gmane.org; Wed, 05 May 2010 09:51:39 -0400 Original-Path: usenet.stanford.edu!newsserver.news.garr.it!kanaga.switch.ch!switch.ch!news.belwue.de!news.uni-kl.de!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 44 Original-NNTP-Posting-Host: 143-93-54-11.arno.fh-trier.de Original-X-Trace: news.uni-kl.de 1273003905 6500 143.93.54.11 (4 May 2010 20:11:45 GMT) Original-X-Complaints-To: usenet@news.uni-kl.de Original-NNTP-Posting-Date: Tue, 4 May 2010 20:11:45 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:anLHrsnQyVJjWBABzBGGZLwgruM= Cache-Post-Path: arno.fh-trier.de!unknown@dslb-088-068-208-226.pools.arcor-ip.net X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) Original-Xref: usenet.stanford.edu gnu.emacs.help:177927 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:73453 Archived-At: Andreas Politz writes: > quodlibetor writes: > >>> Sounds trivial. Though this may not scale well with other hooks. >>> >>> (defun find-file-maybe-change-me () >>> (when (not (file-writable-p buffer-file-name)) >>> (find-alternate-file >>> (format "/sudo::%s" buffer-file-name)))) >>> >>> (add-hook 'find-file-hook 'find-file-maybe-change-me) >> >> I think what Per was looking for was more something along the lines of >> >> (defun edit-read-only-file-maybe () >> (when (y-or-n-p "file is read-only, raise privileges to edit? ") >> (find-alternate-file >> (format "/sudo::%s" buffer-file-name)))) >> >> (add-hook 'first-edit-read-only-file-hook 'edit-read-only-file-maybe) >> >> with the main problem being that `first-edit-read-only-file-hook' >> doesn't exist, and there don't seem to be any analogs. Or at least I >> can't find them. > We can try to implement one. I have not tested this, but the idea should clear. (add-hook 'find-file-hook (unless (file-readable-p buffer-file-name) (toggle-read-only -1) (add-hook 'before-change-functions 'first-edit-hook nil t))) (defvar first-edit-hook nil) (defun first-edit-hook (&rest _) (unwind-protect (run-hooks 'first-edit-hook) (remove-hook 'before-change-functions 'before-change-magic))) -ap