simplify substitute_path_rule_matches using filename_ncmp
authorJoel Brobecker <brobecker@adacore.com>
Mon, 2 Jun 2014 15:34:25 +0000 (08:34 -0700)
committerJoel Brobecker <brobecker@adacore.com>
Mon, 2 Jun 2014 15:39:02 +0000 (08:39 -0700)
At the time this function was written, there was no filename_ncmp,
only FILENAME_CMP. So, in order to do an n-cmp, we had to make a local
copy of the first n characters of our string and use that to perform
the comparison. This patch simplifies the function's implementation,
now that we have filename_ncmp.

gdb/ChangeLog:

        * source.c (substitute_path_rule_matches): Simplify using
        filename_ncmp instead of FILENAME_CMP.

Tested on x86_64-linux.

gdb/ChangeLog
gdb/source.c

index aa56a106dbe99f9f447a9ecbc4873ab289d77b86..6faa689b48c73c6b8209894c734532618e2f48fc 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-02  Joel Brobecker  <brobecker@adacore.com>
+
+       * source.c (substitute_path_rule_matches): Simplify using
+       filename_ncmp instead of FILENAME_CMP.
+
 2014-06-02  Joel Brobecker  <brobecker@adacore.com>
 
        * source.c (substitute_path_rule_matches): Remove trailing spaces.
index cb05939710e92e1c9e69faa342b946af81aa36b3..c985a1b1fea6f87a76a71bb055fc73b194dc626f 100644 (file)
@@ -932,21 +932,14 @@ substitute_path_rule_matches (const struct substitute_path_rule *rule,
 {
   const int from_len = strlen (rule->from);
   const int path_len = strlen (path);
-  char *path_start;
 
   if (path_len < from_len)
     return 0;
 
   /* The substitution rules are anchored at the start of the path,
-     so the path should start with rule->from.  There is no filename
-     comparison routine, so we need to extract the first FROM_LEN
-     characters from PATH first and use that to do the comparison.  */
+     so the path should start with rule->from.  */
 
-  path_start = alloca (from_len + 1);
-  strncpy (path_start, path, from_len);
-  path_start[from_len] = '\0';
-
-  if (FILENAME_CMP (path_start, rule->from) != 0)
+  if (filename_ncmp (path, rule->from, from_len) != 0)
     return 0;
 
   /* Make sure that the region in the path that matches the substitution