mirror of git://gcc.gnu.org/git/gcc.git
filename_cmp.c: New file.
* filename_cmp.c: New file.
* Makefile.in (CFILES): Add filename_cmp.c.
(REQUIRED_OFILES): Add filename_cmp.o
(filename_cmp.o): New rule.
* functions.texi: Regenerate.
From-SVN: r123342
This commit is contained in:
parent
7761c0db85
commit
cde515d9f3
|
|
@ -1,3 +1,11 @@
|
||||||
|
2007-03-29 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
|
* filename_cmp.c: New file.
|
||||||
|
* Makefile.in (CFILES): Add filename_cmp.c.
|
||||||
|
(REQUIRED_OFILES): Add filename_cmp.o
|
||||||
|
(filename_cmp.o): New rule.
|
||||||
|
* functions.texi: Regenerate.
|
||||||
|
|
||||||
2007-03-15 Geoffrey Keating <geoffk@apple.com>
|
2007-03-15 Geoffrey Keating <geoffk@apple.com>
|
||||||
|
|
||||||
* cp-demangle.c (d_encoding): Exit early on error.
|
* cp-demangle.c (d_encoding): Exit early on error.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#
|
#
|
||||||
# Makefile
|
# Makefile
|
||||||
# Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
# Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||||
# Free Software Foundation
|
# Free Software Foundation
|
||||||
#
|
#
|
||||||
# This file is part of the libiberty library.
|
# This file is part of the libiberty library.
|
||||||
|
|
@ -131,8 +131,8 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
|
||||||
calloc.c choose-temp.c clock.c concat.c cp-demangle.c \
|
calloc.c choose-temp.c clock.c concat.c cp-demangle.c \
|
||||||
cp-demint.c cplus-dem.c \
|
cp-demint.c cplus-dem.c \
|
||||||
dyn-string.c \
|
dyn-string.c \
|
||||||
fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c \
|
fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \
|
||||||
fopen_unlocked.c \
|
fnmatch.c fopen_unlocked.c \
|
||||||
getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \
|
getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \
|
||||||
gettimeofday.c \
|
gettimeofday.c \
|
||||||
hashtab.c hex.c \
|
hashtab.c hex.c \
|
||||||
|
|
@ -165,8 +165,8 @@ REQUIRED_OFILES = ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o \
|
||||||
./alloca.o ./argv.o \
|
./alloca.o ./argv.o \
|
||||||
./choose-temp.o ./concat.o ./cp-demint.o \
|
./choose-temp.o ./concat.o ./cp-demint.o \
|
||||||
./dyn-string.o \
|
./dyn-string.o \
|
||||||
./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o \
|
./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o \
|
||||||
./fopen_unlocked.o \
|
./fnmatch.o ./fopen_unlocked.o \
|
||||||
./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o \
|
./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o \
|
||||||
./hashtab.o ./hex.o \
|
./hashtab.o ./hex.o \
|
||||||
./lbasename.o ./lrealpath.o \
|
./lbasename.o ./lrealpath.o \
|
||||||
|
|
@ -651,6 +651,12 @@ $(CONFIGURED_OFILES): stamp-picdir
|
||||||
else true; fi
|
else true; fi
|
||||||
$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
|
$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
|
||||||
|
|
||||||
|
./filename_cmp.o: $(srcdir)/filename_cmp.c $(INCDIR)/filenames.h
|
||||||
|
if [ x"$(PICFLAG)" != x ]; then \
|
||||||
|
$(COMPILE.c) $(PICFLAG) $(srcdir)/filename_cmp.c -o pic/$@; \
|
||||||
|
else true; fi
|
||||||
|
$(COMPILE.c) $(srcdir)/filename_cmp.c $(OUTPUT_OPTION)
|
||||||
|
|
||||||
./floatformat.o: $(srcdir)/floatformat.c config.h $(INCDIR)/ansidecl.h \
|
./floatformat.o: $(srcdir)/floatformat.c config.h $(INCDIR)/ansidecl.h \
|
||||||
$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
|
$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
|
||||||
if [ x"$(PICFLAG)" != x ]; then \
|
if [ x"$(PICFLAG)" != x ]; then \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
/* File name comparison routine.
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
|
||||||
|
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
#include <string.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "filenames.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
@deftypefn Extension int filename_cmp (const char *@var{s1}, const char *@var{s2})
|
||||||
|
|
||||||
|
Return zero if the two paths @var{s1} and @var{s2} are equivalent.
|
||||||
|
If not equivalent, the returned value is similar to what strcmp would
|
||||||
|
return. In other words, it returns a negative value if @var{s1} is less
|
||||||
|
than @var{s2}, or a positive value if @var{s2} is greater than @var{s2}.
|
||||||
|
|
||||||
|
This function does not normalize path names. As a result, this function
|
||||||
|
will treat filenames that are spelled differently as different even in
|
||||||
|
the case when the two filenames point to the same underlying file.
|
||||||
|
However, it does handle the fact that on DOS-like file systems, forward
|
||||||
|
and backward slashes are equal.
|
||||||
|
|
||||||
|
@end deftypefn
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
int
|
||||||
|
filename_cmp (const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||||
|
return strcmp(s1, s2);
|
||||||
|
#else
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
int c1 = tolower (*s1);
|
||||||
|
int c2 = tolower (*s2);
|
||||||
|
|
||||||
|
/* On DOS-based file systems, the '/' and the '\' are equivalent. */
|
||||||
|
if (c1 == '/')
|
||||||
|
c1 = '\\';
|
||||||
|
if (c2 == '/')
|
||||||
|
c2 = '\\';
|
||||||
|
|
||||||
|
if (c1 != c2)
|
||||||
|
return (c1 - c2);
|
||||||
|
|
||||||
|
if (c1 == '\0')
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
s1++;
|
||||||
|
s2++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -268,6 +268,22 @@ value 1). If @var{valu} is zero, zero is returned.
|
||||||
|
|
||||||
@end deftypefn
|
@end deftypefn
|
||||||
|
|
||||||
|
@c filename_cmp.c:28
|
||||||
|
@deftypefn Extension int filename_cmp (const char *@var{s1}, const char *@var{s2})
|
||||||
|
|
||||||
|
Return zero if the two paths @var{s1} and @var{s2} are equivalent.
|
||||||
|
If not equivalent, the returned value is similar to what strcmp would
|
||||||
|
return. In other words, it returns a negative value if @var{s1} is less
|
||||||
|
than @var{s2}, or a positive value if @var{s2} is greater than @var{s2}.
|
||||||
|
|
||||||
|
This function does not normalize path names. As a result, this function
|
||||||
|
will treat filenames that are spelled differently as different even in
|
||||||
|
the case when the two filenames point to the same underlying file.
|
||||||
|
However, it does handle the fact that on DOS-like file systems, forward
|
||||||
|
and backward slashes are equal.
|
||||||
|
|
||||||
|
@end deftypefn
|
||||||
|
|
||||||
@c fnmatch.txh:1
|
@c fnmatch.txh:1
|
||||||
@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
|
@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue