diff options
author | Ian Lance Taylor <ian@airs.com> | 1999-09-12 17:34:19 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1999-09-12 17:34:19 +0000 |
commit | fe84ea5db28793a9ec7bc78962f0c67afab54c59 (patch) | |
tree | 6a2c7fb930e334e7f6e37cdbcecc07d085718d70 /binutils/ar.c | |
parent | 71add731336d5a00710088c981edb9d6de3e2de9 (diff) | |
download | gdb-fe84ea5db28793a9ec7bc78962f0c67afab54c59.zip gdb-fe84ea5db28793a9ec7bc78962f0c67afab54c59.tar.gz gdb-fe84ea5db28793a9ec7bc78962f0c67afab54c59.tar.bz2 |
* ar.c (full_pathname): New static variable.
(map_over_members): Call normalize on command line parameter.
(usage): Mention P modifier.
(normalize): If full_pathname is true, don't do anything.
(main): Accept P modifier.
* binutils.texi, ar.1: Document P modifier.
Diffstat (limited to 'binutils/ar.c')
-rw-r--r-- | binutils/ar.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/binutils/ar.c b/binutils/ar.c index 3e9dcef..fa89f30 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -150,6 +150,11 @@ get_pos_bfd PARAMS ((bfd **, enum pos, const char *)); /* Whether to truncate names of files stored in the archive. */ static boolean ar_truncate = false; +/* Whether to use a full file name match when searching an archive. + This is convenient for archives created by the Microsoft lib + program. */ +static boolean full_pathname = false; + int interactive = 0; static void @@ -202,7 +207,7 @@ map_over_members (arch, function, files, count) bfd_stat_arch_elt (head, &buf); } if ((head->filename != NULL) && - (!strcmp (*files, head->filename))) + (!strcmp (normalize (*files, arch), head->filename))) { found = true; function (head); @@ -242,6 +247,7 @@ usage (help) fprintf (s, _(" [a] - put file(s) after [member-name]\n")); fprintf (s, _(" [b] - put file(s) before [member-name] (same as [i])\n")); fprintf (s, _(" [f] - truncate inserted file names\n")); + fprintf (s, _(" [P] - use full path names when matching\n")); fprintf (s, _(" [o] - preserve original dates\n")); fprintf (s, _(" [u] - only replace files that are newer than current archive contents\n")); fprintf (s, _(" generic modifiers:\n")); @@ -273,6 +279,9 @@ normalize (file, abfd) { const char *filename; + if (full_pathname) + return filename; + filename = strrchr (file, '/'); if (filename != (char *) NULL) filename++; @@ -501,6 +510,9 @@ main (argc, argv) case 'f': ar_truncate = true; break; + case 'P': + full_pathname = true; + break; default: /* xgettext:c-format */ fprintf (stderr, _("%s: illegal option -- %c\n"), program_name, c); |