]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix error message in replace-match for subexpressions
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 3 Aug 2019 14:00:20 +0000 (16:00 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 3 Aug 2019 14:00:20 +0000 (16:00 +0200)
* src/search.c (Freplace_match): Output a more understandable
error message when replacing a subexpression (bug#19208).

src/search.c

index 2fa8b277195766b2aac28c0b04c22b52bdba6a44..0e2ae059e81aaf3e97e99758a6517aa99d976c4d 100644 (file)
@@ -2404,6 +2404,12 @@ since only regular expressions have distinguished subexpressions.  */)
        args_out_of_range (subexp, make_fixnum (search_regs.num_regs));
     }
 
+  /* Check whether the subexpression to replace is greater than the
+     number of subexpressions in the regexp. */
+  if (sub > 0 && search_regs.start[sub] == -1)
+    args_out_of_range (build_string ("Attempt to replace regexp subexpression that doesn't exist"),
+                      subexp);
+
   /* Sanity check to see whether the text to replace is present in the
      buffer/string. */
   if (NILP (string))