delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/01/20/11:48:29

X-Spam-Check-By: sourceware.org
Date: Fri, 20 Jan 2006 18:48:16 +0200
Message-Id: <ulkxargkv.fsf@gnu.org>
From: Eli Zaretskii <eliz AT gnu DOT org>
To: Eric Blake <ebb9 AT byu DOT net>
CC: cygwin AT cygwin DOT com, henman AT it DOT to-be DOT co DOT jp, emacs-devel AT gnu DOT org
In-reply-to: <43D0F12A.4000202@byu.net> (message from Eric Blake on Fri, 20 Jan 2006 07:18:18 -0700)
Subject: Re: New platform independent problem
Reply-to: Eli Zaretskii <eliz AT gnu DOT org>
References: <43D0797C DOT 1030604 AT it DOT to-be DOT co DOT jp> <ur773qhq5 DOT fsf AT gnu DOT org> <Pine DOT GSO DOT 4 DOT 63 DOT 0601200821540 DOT 17119 AT access1 DOT cims DOT nyu DOT edu> <uoe27q9y6 DOT fsf AT gnu DOT org> <43D0F12A DOT 4000202 AT byu DOT net>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

> Date: Fri, 20 Jan 2006 07:18:18 -0700
> From: Eric Blake <ebb9 AT byu DOT net>
> CC: cygwin AT cygwin DOT com,  henman AT it DOT to-be DOT co DOT jp,  emacs-devel AT gnu DOT org
> 
> Which is why it is prohibitively expensive for cygwin to populate it with
> the correct value on WinNT and Win2K; too few applications use d_ino to
> make it worth doing the Windows equivalent of stat during the readdir() to
> correctly populate the d_ino member.  But if we are going to populate
> d_ino, it had better either be st_ino (so we aren't lying), or a sentinel
> that makes it obvious that st_ino should be used instead (either 0 or -1).
>  Fortunately, Win9x and WinXP had non-prohibitive costs to making d_ino
> match st_ino.

You could have a flag that, if set, will instruct readdir to do the
expensive processing.  Applications that need the real inode will set
that flag.

> > What is bad is to have dirent.h, but not some of the struct members it
> > calls for.
> 
> POSIX permits implementations to not have d_ino.  In other words, when it
> comes to dirent.h, cygwin is fully POSIX-compliant to not have a d_ino
> member, and applications had better not assume that d_ino exists.

That may be so, but I don't think I've seen packages that check
whether d_ino exist in their configury.  They assume it does, AFAICS.

> > It's bad mantra for an application to use a symbol that starts with
> > "__", since those symbols are reserved for the library implementation.
> 
> My understanding is that leading __ is reserved for the IMPLEMENTATION in
> general, not just the library implementation; cygwin is part of the
> implementation.

I was responding to a suggestion to use __deprecated_d_ino in the
Emacs code.  Emacs is certainly _not_ a part of implementation.

> What platforms use d_ino==0 to mean an empty entry, rather than an entry
> where st_ino must be checked?

I see it in Emacs, Corinna shows another example from rcp and scp.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019