delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/02/10/22:55:53

X-Spam-Check-By: sourceware.org
Message-ID: <029001c62ebf$032b7a10$0201a8c0@homelarrie>
From: "Larrie Carr" <larrie AT telus DOT net>
To: "Larrie Carr" <larrie AT telus DOT net>, "John W. Eaton" <jwe AT bevo DOT che DOT wisc DOT edu>
Cc: <cygwin AT cygwin DOT com>
References: <017b01c62daf$7696d140$0201a8c0 AT homelarrie> <17387 DOT 42303 DOT 91508 DOT 260685 AT segfault DOT lan> <01a501c62dba$18fc1b20$0201a8c0 AT homelarrie>
Subject: [octave ] LOADPATH recurses only one level of subdirectories (on network drives)
Date: Fri, 10 Feb 2006 19:55:35 -0800
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
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

John W. Eaton wrote
> Probably the code you are looking for is the function do_subdir in
> liboctave/kpse.cc.  This file contains a stripped-down version of the
> kpathsearch library.  Most modifications were to remove TeX-specific
> stuff and to convert it to use std::string instead of plain C strings
> which historically leaked memory.  In any case, that function may use
> an optimization to decide when to check for subdirectories.  The
> optimization looks at the link count of the current directory.  If it
> is 2, then the assumption is that the current directory does not
> contain any subdirectories.  That seems to work fine for Unixy
> systems.  Does that assumption not hold for Cygwin?  If so, then I
> think the fix is fairly simple as there is also Windows-specific code
> in that function.  Whether the optimization is performed depends on
> what is #defined at compile time, so you'll probably have to do some
> checking on a Cygwin system to see what is really going on.


Well, after some more experimenting, the problem appears related to using 
the recursive search feature of LOADPATH on a *network* drive.  That is,

If the path is located within a physically attached hard drive, octave 
operates as expected.  For instance, /cygdrive/c/test// works all the way 
down to /cygdrive/c/test/a/b/c/d/e/

If the path is located on a network drive created using windows "Map Network 
Drive" menu option under "My Computer", octave will only recurse down 1 
level of subdirectory.  For instance "/usr/share/octave/site/m// does not 
work.

And if I use a cygwin windows mapping instead 
"/cygdrive/x/cygwin/usr/share/octave/site/m//, it still does not work 
correctly and recurses down only one level.

In my installation, the entire cygwin root is located on a network drive 
(and no one else uses it).  Works just fine for everything else.

John, it you got any other hints, I would appreciate it as I'm diving in.

Larrie. 



--
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