aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2001-11-05 16:20:37 +0000
committerJakub Jelinek <jakub@redhat.com>2001-11-05 16:20:37 +0000
commit5e9520c87752aaf3f7920cc231ca50245c364a38 (patch)
tree1f931e9c2675531d0a4b51df3805fb338867e724
parent54589086a88ece0455faf23010d847b1c9fefa54 (diff)
downloadgdb-5e9520c87752aaf3f7920cc231ca50245c364a38.zip
gdb-5e9520c87752aaf3f7920cc231ca50245c364a38.tar.gz
gdb-5e9520c87752aaf3f7920cc231ca50245c364a38.tar.bz2
* arlex.l: Accept `\' in filenames. Patch by <earl_chew@agilent.com>.
* arsup.c (ar_open): Prepend tmp- to basename, not whole path.
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/arlex.l2
-rw-r--r--binutils/arsup.c3
3 files changed, 9 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 11f2b78..bc8fc57 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-05 Jakub Jelinek <jakub@redhat.com>
+
+ * arlex.l: Accept `\' in filenames. Patch by <earl_chew@agilent.com>.
+
+ * arsup.c (ar_open): Prepend tmp- to basename, not whole path.
+
2001-11-05 Martin Schwidefsky <schwidefsky@de.ibm.com>
* MAINTAINERS: Add self as s390/s390x maintainer.
diff --git a/binutils/arlex.l b/binutils/arlex.l
index 71ef56e..4e2895c 100644
--- a/binutils/arlex.l
+++ b/binutils/arlex.l
@@ -71,7 +71,7 @@ int linenumber;
"(" { return '('; }
")" { return ')'; }
"," { return ','; }
-[A-Za-z0-9/$:.\-\_]+ {
+[A-Za-z0-9/\\$:.\-\_]+ {
yylval.name = xstrdup (yytext);
return FILENAME;
}
diff --git a/binutils/arsup.c b/binutils/arsup.c
index 0058c0d..1e86479 100644
--- a/binutils/arsup.c
+++ b/binutils/arsup.c
@@ -160,10 +160,11 @@ DEFUN(ar_open,(name, t),
{
char *tname = (char *) xmalloc (strlen (name) + 10);
+ const char *bname = lbasename (name);
real_name = name;
/* Prepend tmp- to the beginning, to avoid file-name clashes after
truncation on filesystems with limited namespaces (DOS). */
- sprintf(tname, "tmp-%s", name);
+ sprintf(tname, "%.*stmp-%s", (int) (bname - name), name, bname);
obfd = bfd_openw(tname, NULL);
if (!obfd) {