www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/04/20/18:31:34

Sender: nate AT cartsys DOT com
Message-ID: <371D0D4D.D5FC2E20@cartsys.com>
Date: Tue, 20 Apr 1999 16:27:09 -0700
From: Nate Eldredge <nate AT cartsys DOT com>
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.5 i586)
MIME-Version: 1.0
To: djgpp-workers AT delorie DOT com
Subject: Re: fnmatch: GNU's and ours
References: <Pine DOT SUN DOT 3 DOT 91 DOT 990420120205 DOT 841H-100000 AT is>
Reply-To: djgpp-workers AT delorie DOT com

Eli Zaretskii wrote:
> 
> On Mon, 19 Apr 1999, Alain Magloire wrote:
> 
> > > > GNU fnmatch uses FNM_CASEFOLD, while we define FNM_NOCASE.  DJ, didn't
> > > > you tell that FNM_NOCASE is Posix?  If so, does it mean that GNU's
> > > > version doesn't comply?  I find that hard to believe.
> > >
> >
> > Extensions, for example my Solaris box has:
> > #define FNM_IGNORECASE  0x08    /* Ignore case when making comparisons */
> 
> I will add both FNM_CASEFOLD and FNM_IGNORECASE to the non-Posix
> portion of fnmatch.h, then.
> 
> > It makes porting a nightmare, sigh same goes for glob()
> 
> What are the constants used by `glob' on different platforms?  I'd
> like to add them as well.

glibc uses:

#define GLOB_ERR        (1 << 0)/* Return on read errors.  */
#define GLOB_MARK       (1 << 1)/* Append a slash to each name.  */
#define GLOB_NOSORT     (1 << 2)/* Don't sort the names.  */
#define GLOB_DOOFFS     (1 << 3)/* Insert PGLOB->gl_offs NULLs.  */
#define GLOB_NOCHECK    (1 << 4)/* If nothing matches, return the
pattern.  */
#define GLOB_APPEND     (1 << 5)/* Append to results of a previous
call.  */
#define GLOB_NOESCAPE   (1 << 6)/* Backslashes don't quote
metacharacters.  */
#define GLOB_PERIOD     (1 << 7)/* Leading `.' can be matched by
metachars.  */

and some extensions:

# define GLOB_MAGCHAR    (1 << 8)/* Set in gl_flags if any metachars
seen.  */
# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions.  */
# define GLOB_BRACE      (1 << 10)/* Expand "{a,b}" to "a" "b".  */
# define GLOB_NOMAGIC    (1 << 11)/* If no magic chars, return the
pattern.  */
# define GLOB_TILDE      (1 << 12)/* Expand ~user and ~ to home
directories. */
# define GLOB_ONLYDIR    (1 << 13)/* Match only directories.  */
# define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an
error
                                      if the user name is not
available.  */

Their error returns are:

#define GLOB_NOSPACE    1       /* Ran out of memory.  */
#define GLOB_ABORTED    2       /* Read error.  */
#define GLOB_NOMATCH    3       /* No matches found.  */
#define GLOB_NOSYS      4       /* Not implemented.  */

HTH
-- 

Nate Eldredge
nate AT cartsys DOT com

- Raw text -


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