From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Luc Teirlinck Newsgroups: gmane.emacs.devel Subject: Re: time values Date: Sun, 11 Jul 2004 10:13:09 -0500 (CDT) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <200407111513.i6BFD9T09204@raven.dms.auburn.edu> References: <200407110033.i6B0XLF08165@raven.dms.auburn.edu> <86llhrq7ed.fsf@rumba.de.uu.net> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1089558985 14743 80.91.224.253 (11 Jul 2004 15:16:25 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 11 Jul 2004 15:16:25 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Sun Jul 11 17:16:19 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1Bjg3v-0001yD-00 for ; Sun, 11 Jul 2004 17:16:19 +0200 Original-Received: from lists.gnu.org ([199.232.76.165]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1Bjg3v-0003lr-00 for ; Sun, 11 Jul 2004 17:16:19 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1Bjg6C-0000uC-K1 for emacs-devel@quimby.gnus.org; Sun, 11 Jul 2004 11:18:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1Bjg65-0000u7-SG for emacs-devel@gnu.org; Sun, 11 Jul 2004 11:18:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1Bjg64-0000tm-8O for emacs-devel@gnu.org; Sun, 11 Jul 2004 11:18:33 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1Bjg64-0000tc-1f for emacs-devel@gnu.org; Sun, 11 Jul 2004 11:18:32 -0400 Original-Received: from [131.204.53.104] (helo=manatee.dms.auburn.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1Bjg3Y-0003pj-Cp for emacs-devel@gnu.org; Sun, 11 Jul 2004 11:15:56 -0400 Original-Received: from raven.dms.auburn.edu (raven.dms.auburn.edu [131.204.53.29]) by manatee.dms.auburn.edu (8.12.10/8.12.10) with ESMTP id i6BFFkuE013556; Sun, 11 Jul 2004 10:15:46 -0500 (CDT) Original-Received: (from teirllm@localhost) by raven.dms.auburn.edu (8.11.6+Sun/8.11.6) id i6BFD9T09204; Sun, 11 Jul 2004 10:13:09 -0500 (CDT) X-Authentication-Warning: raven.dms.auburn.edu: teirllm set sender to teirllm@dms.auburn.edu using -f Original-To: kai@emptydomain.de In-reply-to: <86llhrq7ed.fsf@rumba.de.uu.net> (message from Kai Grossjohann on Sun, 11 Jul 2004 10:23:38 +0200) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:25580 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:25580 It would be great if there was a way for Tramp to find out whether the new-style or the old-style value should be returned. Then a single code base could be used to support Emacs 21.3 as well as 21.4. Like Andreas already pointed out, it depends on whether you actually have to construct time values that other functions are going to _believe to be return values of `visited-file-modtime'_. In as far as I know, all functions that accept time value arguments already can handle both conses and lists. If you have to construct such values, what about just using `emacs-version'? Otherwise, I believe the following patch should do. By the way, your current code seems to assume that `visited-file-modtime' is not 0. Are you sure of that? Of course, you know that (nth 5 attr) is not (0 0), but still. My patch still probably assumes that: can tramp-time-diff handle 0 as an argument? Otherwise, it is easy to rewrite the patch to transform 0 into (0 0), or maybe an integer N < 2**16 into (0 N), because, theoretically, `visited-file-modtime' can return such integers. (Even though probably not in practice). But maybe `tramp-time-diff' is the place to actually do that. ===File ~/tramp-diff-2====================================== *** tramp.el 26 Jun 2004 16:46:18 -0500 1.46 --- tramp.el 11 Jul 2004 09:35:00 -0500 *************** *** 2338,2349 **** (let* ((attr (file-attributes f)) (modtime (nth 5 attr))) (cond ((and attr (not (equal modtime '(0 0)))) - ;; Why does `file-attributes' return a list (HIGH - ;; LOW), but `visited-file-modtime' returns a cons - ;; (HIGH . LOW)? (let ((mt (visited-file-modtime))) (< (abs (tramp-time-diff ! modtime (list (car mt) (cdr mt)))) 2))) (attr (save-excursion (tramp-send-command --- 2338,2353 ---- (let* ((attr (file-attributes f)) (modtime (nth 5 attr))) (cond ((and attr (not (equal modtime '(0 0)))) (let ((mt (visited-file-modtime))) (< (abs (tramp-time-diff ! modtime ! ;; For compatibility, deal with both the old ! ;; (HIGH . LOW) and the new (HIGH LOW) ! ;; return values of `visited-file-modtime'. ! (if (and (consp mt) (atom (cdr mt))) ! (list (car mt) (cdr mt)) ! mt))) ! 2))) (attr (save-excursion (tramp-send-command ============================================================