From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#8306: copy-file should report chmod or chown failure Date: Sun, 20 Mar 2011 19:47:51 -0700 Organization: UCLA Computer Science Department Message-ID: <4D86BC57.7000908@cs.ucla.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1300676843 4977 80.91.229.12 (21 Mar 2011 03:07:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 21 Mar 2011 03:07:23 +0000 (UTC) To: 8306@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Mar 21 04:07:19 2011 Return-path: Envelope-to: geb-bug-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 1Q1VSh-00077r-07 for geb-bug-gnu-emacs@m.gmane.org; Mon, 21 Mar 2011 04:07:19 +0100 Original-Received: from localhost ([127.0.0.1]:48758 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q1VSg-0006kp-AU for geb-bug-gnu-emacs@m.gmane.org; Sun, 20 Mar 2011 23:07:18 -0400 Original-Received: from [140.186.70.92] (port=57275 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q1VSX-0006hP-GK for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 23:07:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q1VSW-0007Gs-FQ for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 23:07:09 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45414) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q1VSW-0007Gj-E3 for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 23:07:08 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Q1VB0-0006h8-Fk; Sun, 20 Mar 2011 22:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 21 Mar 2011 02:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 8306 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.130067568525671 (code B ref -1); Mon, 21 Mar 2011 02:49:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 21 Mar 2011 02:48:05 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q1VA5-0006fz-BJ for submit@debbugs.gnu.org; Sun, 20 Mar 2011 22:48:05 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Q1VA3-0006fY-4O for submit@debbugs.gnu.org; Sun, 20 Mar 2011 22:48:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q1V9x-0003xH-8O for submit@debbugs.gnu.org; Sun, 20 Mar 2011 22:47:58 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:48700) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q1V9x-0003x7-64 for submit@debbugs.gnu.org; Sun, 20 Mar 2011 22:47:57 -0400 Original-Received: from [140.186.70.92] (port=41530 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q1V9w-0000nB-DE for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 22:47:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q1V9v-0003wJ-0R for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 22:47:56 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:42824) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q1V9u-0003w1-Po for bug-gnu-emacs@gnu.org; Sun, 20 Mar 2011 22:47:54 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 2FBC039E80DC for ; Sun, 20 Mar 2011 19:47:52 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7iBHJTjWkJU9 for ; Sun, 20 Mar 2011 19:47:51 -0700 (PDT) Original-Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net [71.189.109.235]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id C0BEA39E80DA for ; Sun, 20 Mar 2011 19:47:51 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 20 Mar 2011 22:49:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:45213 Archived-At: On the Emacs trunk, (copy-file A B) does not report an error if A's permissions cannot be copied to B's, and (copy-file A B nil nil t) does not report an error if A's ownership info cannot be copied to B's. I plan to install the following patch so that Emacs reports errors in these cases. * fileio.c (Fcopy_file): Report error if fchown or fchmod fail. === modified file 'src/fileio.c' --- src/fileio.c 2011-03-15 21:14:06 +0000 +++ src/fileio.c 2011-03-21 02:38:48 +0000 @@ -1951,9 +1951,10 @@ owner and group. */ if (input_file_statable_p) { - if (! NILP (preserve_uid_gid)) - fchown (ofd, st.st_uid, st.st_gid); - fchmod (ofd, st.st_mode & 07777); + if (!NILP (preserve_uid_gid) && fchown (ofd, st.st_uid, st.st_gid) != 0) + report_file_error ("Doing chown", Fcons (newname, Qnil)); + if (fchmod (ofd, st.st_mode & 07777) != 0) + report_file_error ("Doing chmod", Fcons (newname, Qnil)); } #endif /* not MSDOS */