]> git.eshelyaron.com Git - emacs.git/commitdiff
(Freplace_match): Handle nonexistent back-references properly.
authorRichard M. Stallman <rms@gnu.org>
Tue, 27 Jan 2004 04:52:09 +0000 (04:52 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 27 Jan 2004 04:52:09 +0000 (04:52 +0000)
src/search.c

index 020573b75a1e6abfb8a4318c6cd1a9826fed96c6..c60d68b9374266735283f1400eaf6f57b9c56f69 100644 (file)
@@ -2366,13 +2366,21 @@ since only regular expressions have distinguished subexpressions.  */)
                      substart = search_regs.start[sub];
                      subend = search_regs.end[sub];
                    }
-                 else if (c >= '1' && c <= '9' && c <= search_regs.num_regs + '0')
+                 else if (c >= '1' && c <= '9')
                    {
-                     if (search_regs.start[c - '0'] >= 0)
+                     if (search_regs.start[c - '0'] >= 0
+                         && c <= search_regs.num_regs + '0')
                        {
                          substart = search_regs.start[c - '0'];
                          subend = search_regs.end[c - '0'];
                        }
+                     else
+                       {
+                         /* If that subexp did not match,
+                            replace \\N with nothing.  */
+                         substart = 0;
+                         subend = 0;
+                       }
                    }
                  else if (c == '\\')
                    delbackslash = 1;