Michael, any idea what the case behind this patch was? It's not that I object to it or anything, I just have no clue what this is supposed to be doing :)

        - Panu -

---

Include compilation directory in source file list if used.

---
 tools/debugedit.c |   28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

--- tools/debugedit.c.orig      2007-04-08 22:55:58.000000000 +0200
+++ tools/debugedit.c   2007-04-09 01:34:51.000000000 +0200
@@ -488,6 +488,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
   uint_32 value, dirt_cnt;
   size_t comp_dir_len = strlen (comp_dir);
   size_t abs_file_cnt = 0, abs_dir_cnt = 0;
+  int comp_dir_used = 0;

   if (phase != 0)
     return 0;
@@ -586,6 +587,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
        }
       else
        {
+         comp_dir_used = 1;
          memcpy (s, comp_dir, comp_dir_len);
          s[comp_dir_len] = '/';
          memcpy (s + comp_dir_len + 1, dirt[value], dir_len);
@@ -624,7 +626,31 @@ edit_dwarf2_line (DSO *dso, uint_32 off,
       read_uleb128 (ptr);
     }
   ++ptr;
- +
+  if (comp_dir_used && list_file_fd != -1
+      && (base_dir == NULL || has_prefix (comp_dir, base_dir)))
+    {
+      char *p;
+      size_t size;
+      ssize_t ret;
+
+      size = comp_dir_len + 1;
+      p = comp_dir;
+      if (base_dir)
+       {
+         p += strlen (base_dir);
+         size -= strlen (base_dir);
+       }
+      while (size > 0)
+       {
+         ret = write (list_file_fd, p, size);
+         if (ret == -1)
+           break;
+         size -= ret;
+         p += ret;
+       }
+    }
+
   if (dest_dir)
     {
       unsigned char *srcptr, *buf = NULL;
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to