From roland@redhat.com Sun Aug 12 15:45:49 2007 Date: Sun, 12 Aug 2007 05:45:16 -0700 (PDT) From: Roland McGrath To: Panu Matilainen Cc: Paul Nasrat 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;