From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?ISO-8859-1?Q?Nordl=F6w?= Newsgroups: gmane.emacs.help Subject: Re: Auto-Prompt for Password and Raise Privilegies when needed Date: Tue, 4 May 2010 07:56:09 -0700 (PDT) Organization: http://groups.google.com Message-ID: <24fcd660-4b96-4491-8d67-facf370f219f@d39g2000yqa.googlegroups.com> References: <146fc610-6a5e-4607-b61d-248c926f1d67@b7g2000yqk.googlegroups.com> <87bpcwsncr.fsf@fh-trier.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1273017682 13067 80.91.229.12 (5 May 2010 00:01:22 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 5 May 2010 00:01:22 +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 02:01:20 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 1O9S3B-0006LJ-OJ for geh-help-gnu-emacs@m.gmane.org; Wed, 05 May 2010 02:01:18 +0200 Original-Received: from localhost ([127.0.0.1]:59581 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O9S3B-0000OL-59 for geh-help-gnu-emacs@m.gmane.org; Tue, 04 May 2010 20:01:17 -0400 Original-Path: usenet.stanford.edu!postnews.google.com!d39g2000yqa.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 40 Original-NNTP-Posting-Host: 150.227.15.253 Original-X-Trace: posting.google.com 1272984969 14970 127.0.0.1 (4 May 2010 14:56:09 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Tue, 4 May 2010 14:56:09 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: d39g2000yqa.googlegroups.com; posting-host=150.227.15.253; posting-account=ytJKAgoAAAA1tg4ScoRszebXiIldA5vg User-Agent: G2/1.0 X-HTTP-Via: 1.1 ip1-w.foi.se:8080 (IronPort-WSA/6.3.3-015) X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.7 (KHTML, like Gecko) Chrome/5.0.391.0 Safari/533.7,gzip(gfe) Original-Xref: usenet.stanford.edu gnu.emacs.help:177907 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:73314 Archived-At: On May 4, 4:00=A0pm, quodlibetor wrote: > > Sounds trivial. Though this may not scale well with other hooks. > > > (defun find-file-maybe-change-me () > > =A0 (when (not (file-writable-p buffer-file-name)) > > =A0 =A0 (find-alternate-file > > =A0 =A0 =A0(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 () > =A0 (when (y-or-n-p "file is read-only, raise privileges to edit? ") > =A0 =A0 (find-alternate-file > =A0 =A0 =A0(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. You are right! This is what I was looking for. But as you say, the first-edit-read-only-file-hook still remains to be implemented. For now we could advice - self-insert-command - delete-char, delete-word, etc. - tranpose, etc. of course it is impossible to keep track of all these functions. We should add a hook somewhere in the c sources that detects any buffer modifications. Something for the Emacs developers... We could of course also make the query a bit more clever; Query for permission-change only if we open a that is read-only by me but writable by another user or group. But