changeset 1441:b44fe7cf2a6b

[project @ 1995-09-19 21:06:07 by jwe]
author jwe
date Tue, 19 Sep 1995 21:08:09 +0000
parents f18c5b5db882
children 4f2e40ba7f77
files readline/parens.c readline/readline.h src/input.cc
diffstat 3 files changed, 24 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/readline/parens.c	Tue Sep 19 19:57:32 1995 +0000
+++ b/readline/parens.c	Tue Sep 19 21:08:09 1995 +0000
@@ -28,6 +28,16 @@
 
 #include "rlconf.h"
 
+#if defined (HAVE_STRING_H)
+#  include <string.h>
+#else /* !HAVE_STRING_H */
+#  include <strings.h>
+#endif /* !HAVE_STRING_H */  
+
+/* List of characters treated as string delimiters if doing paren
+   matching.  By default this is "'\"". */
+char *rl_paren_string_delimiters = "'\"";
+
 #if !defined (PAREN_MATCHING)
 
 rl_insert_close (count, invoking_key)
@@ -131,10 +141,13 @@
 
   for (i = from; i > -1; i--)
     {
+      char *match = 0;
+
       if (delimiter && (string[i] == delimiter))
 	delimiter = 0;
-      else if ((string[i] == '\'') || (string[i] == '"'))
-	delimiter = rl_line_buffer[i];
+      else if (rl_paren_string_delimiters
+	       && (match = strchr (rl_paren_string_delimiters, string[i])))
+	delimiter = *match;
       else if (!delimiter && (string[i] == closer))
 	level++;
       else if (!delimiter && (string[i] == opener))
--- a/readline/readline.h	Tue Sep 19 19:57:32 1995 +0000
+++ b/readline/readline.h	Tue Sep 19 21:08:09 1995 +0000
@@ -172,6 +172,10 @@
    Nothing is added if this is '\0'. */
 extern char rl_completion_append_character;
 
+/* List of characters treated as string delimiters if doing paren
+   matching.  By default this is "'\"". */
+extern char *rl_paren_string_delimiters;
+
 /* List of characters that are word break characters, but should be left
    in TEXT when it is passed to the completion function.  The shell uses
    this to help determine what kind of completing to do. */
--- a/src/input.cc	Tue Sep 19 19:57:32 1995 +0000
+++ b/src/input.cc	Tue Sep 19 21:08:09 1995 +0000
@@ -945,6 +945,11 @@
 
   rl_add_defun ("operate-and-get-next",
 		(Function *) operate_and_get_next, CTRL ('O'));
+
+  // Don't treat single quotes as string delimiters when doing paren
+  // matching.
+
+  rl_paren_string_delimiters = "\"";
 }
 
 static int