Debugedit fixes.
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 4 Sep 2007 05:19:03 +0000 (08:19 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 4 Sep 2007 05:19:03 +0000 (08:19 +0300)
This makes debugedit's -l file get files that already match the -d rewrite
directory, not just those that match the -b build directory and get rewritten.

Patch from Roland McGrath

tools/debugedit.c

index 5b834fda622d1f753f47d3282be9982078919474..ad81813d4472ce7d53445ff0b3ab19a512870c62 100644 (file)
@@ -567,23 +567,22 @@ edit_dwarf2_line (DSO *dso, uint_32 off, char *comp_dir, int phase)
          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))
+      if (list_file_fd != -1)
        {
-         char *p;
-         size_t size;
-         ssize_t ret;
-         if (base_dir)
-           p = s + strlen (base_dir);
-         else
+         char *p = NULL;
+         if (base_dir == NULL)
            p = s;
-         
-         if (list_file_fd != -1)
+         else if (has_prefix (s, base_dir))
+           p = s + strlen (base_dir);
+         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;
This page took 0.045178 seconds and 5 git commands to generate.