/* ar.c - Archive modify and extract.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GNU Binutils.
#define EXT_NAME_LEN 6 /* Ditto for *NIX. */
#endif
-/* Kludge declaration from BFD! This is ugly! FIXME! XXX */
-
-struct ar_hdr *
- bfd_special_undocumented_glue (bfd * abfd, const char *filename);
-
/* Static declarations. */
static void mri_emul (void);
if (full_pathname)
return file;
- filename = strrchr (file, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
- char *bslash = strrchr (file, '\\');
-
- if (filename == NULL || (bslash != NULL && bslash > filename))
- filename = bslash;
- if (filename == NULL && file[0] != '\0' && file[1] == ':')
- filename = file + 1;
- }
-#endif
- if (filename != (char *) NULL)
- filename++;
- else
- filename = file;
+ filename = lbasename (file);
if (ar_truncate
&& abfd != NULL
if (is_ranlib < 0)
{
- char *temp;
+ const char *temp = lbasename (program_name);
- temp = strrchr (program_name, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
- char *bslash = strrchr (program_name, '\\');
-
- if (temp == NULL || (bslash != NULL && bslash > temp))
- temp = bslash;
- if (temp == NULL && program_name[0] != '\0' && program_name[1] == ':')
- temp = program_name + 1;
- }
-#endif
- if (temp == NULL)
- temp = program_name;
- else
- ++temp;
if (strlen (temp) >= 6
&& FILENAME_CMP (temp + strlen (temp) - 6, "ranlib") == 0)
is_ranlib = 1;