61 lines
1.6 KiB
Diff
61 lines
1.6 KiB
Diff
|
From roland@redhat.com Sun Aug 12 15:45:49 2007
|
||
|
Date: Sun, 12 Aug 2007 05:45:16 -0700 (PDT)
|
||
|
From: Roland McGrath <roland@redhat.com>
|
||
|
To: Panu Matilainen <pmatilai@redhat.com>
|
||
|
Cc: Paul Nasrat <pnasrat@redhat.com>
|
||
|
Subject: Re: debugedit.c goof
|
||
|
|
||
|
> No need, already applied upstream HEAD, 4.4.x branch and rawhide build
|
||
|
> with the fix triggered.
|
||
|
|
||
|
Too quick! I have another fix. ;-)
|
||
|
|
||
|
This one is less trivial, and not tested. It should make it put names in
|
||
|
the -l file when they match the edit replace directory name as well as the
|
||
|
edit match directory name, the point being that it emits the same names
|
||
|
when run twice in a row.
|
||
|
|
||
|
Thanks,
|
||
|
Roland
|
||
|
|
||
|
|
||
|
diff -r fb1ee4c438c9 tools/debugedit.c
|
||
|
--- a/tools/debugedit.c Sun Aug 12 15:27:46 2007 +0300
|
||
|
+++ b/tools/debugedit.c Sun Aug 12 05:42:13 2007 -0700
|
||
|
@@ -567,23 +567,22 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
|
||
|
memcpy (s + comp_dir_len + 1 + dir_len + 1, file, file_len + 1);
|
||
|
}
|
||
|
canonicalize_path (s, s);
|
||
|
- if (base_dir == NULL ||
|
||
|
- has_prefix (s, base_dir))
|
||
|
- {
|
||
|
- char *p;
|
||
|
- size_t size;
|
||
|
- ssize_t ret;
|
||
|
- if (base_dir)
|
||
|
+ if (list_file_fd != -1)
|
||
|
+ {
|
||
|
+ char *p = NULL;
|
||
|
+ if (base_dir == NULL)
|
||
|
+ p = s;
|
||
|
+ else if (has_prefix (s, base_dir))
|
||
|
p = s + strlen (base_dir);
|
||
|
- else
|
||
|
- p = s;
|
||
|
-
|
||
|
- if (list_file_fd != -1)
|
||
|
+ else if (has_prefix (s, dest_dir))
|
||
|
+ p = s + strlen (dest_dir);
|
||
|
+
|
||
|
+ if (p)
|
||
|
{
|
||
|
- size = strlen (p) + 1;
|
||
|
+ size_t size = strlen (p) + 1;
|
||
|
while (size > 0)
|
||
|
{
|
||
|
- ret = write (list_file_fd, p, size);
|
||
|
+ ssize_t ret = write (list_file_fd, p, size);
|
||
|
if (ret == -1)
|
||
|
break;
|
||
|
size -= ret;
|