mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 12:03:41 +08:00
merge from gcc
This commit is contained in:
parent
483367eebc
commit
9c577e8950
@ -1,3 +1,8 @@
|
||||
2007-03-29 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* filenames.h (FILENAME_CMP): Adjust define to call filename_cmp
|
||||
regardless of the type of file system.
|
||||
|
||||
2007-03-06 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New.
|
||||
|
@ -5,7 +5,7 @@
|
||||
use forward- and back-slash in path names interchangeably, and
|
||||
some of them have case-insensitive file names.
|
||||
|
||||
Copyright 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright 2000, 2001, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -38,14 +38,15 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
want to know whether to prepend the current working directory to
|
||||
a file name, which should not be done with a name like d:foo. */
|
||||
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':')))
|
||||
#define FILENAME_CMP(s1, s2) strcasecmp(s1, s2)
|
||||
|
||||
#else /* not DOSish */
|
||||
|
||||
#define IS_DIR_SEPARATOR(c) ((c) == '/')
|
||||
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]))
|
||||
#define FILENAME_CMP(s1, s2) strcmp(s1, s2)
|
||||
|
||||
#endif /* not DOSish */
|
||||
|
||||
extern int filename_cmp (const char *s1, const char *s2);
|
||||
#define FILENAME_CMP(s1, s2) filename_cmp(s1, s2)
|
||||
|
||||
#endif /* FILENAMES_H */
|
||||
|
@ -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>
|
||||
|
||||
* cp-demangle.c (d_encoding): Exit early on error.
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# 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 \
|
||||
cp-demint.c cplus-dem.c \
|
||||
dyn-string.c \
|
||||
fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c \
|
||||
fopen_unlocked.c \
|
||||
fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \
|
||||
fnmatch.c fopen_unlocked.c \
|
||||
getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \
|
||||
gettimeofday.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 \
|
||||
./choose-temp.o ./concat.o ./cp-demint.o \
|
||||
./dyn-string.o \
|
||||
./fdmatch.o ./fibheap.o ./floatformat.o ./fnmatch.o \
|
||||
./fopen_unlocked.o \
|
||||
./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o \
|
||||
./fnmatch.o ./fopen_unlocked.o \
|
||||
./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o \
|
||||
./hashtab.o ./hex.o \
|
||||
./lbasename.o ./lrealpath.o \
|
||||
@ -651,6 +651,12 @@ $(CONFIGURED_OFILES): stamp-picdir
|
||||
else true; fi
|
||||
$(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 \
|
||||
$(INCDIR)/floatformat.h $(INCDIR)/libiberty.h
|
||||
if [ x"$(PICFLAG)" != x ]; then \
|
||||
|
73
libiberty/filename_cmp.c
Normal file
73
libiberty/filename_cmp.c
Normal file
@ -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
|
||||
|
||||
@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
|
||||
@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user