# HG changeset patch # User jwe # Date 811544889 0 # Node ID b44fe7cf2a6b329830742f09bb157dcf922550fa # Parent f18c5b5db882ac222a0397e230faaf597e6233b2 [project @ 1995-09-19 21:06:07 by jwe] diff -r f18c5b5db882 -r b44fe7cf2a6b readline/parens.c --- 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 +#else /* !HAVE_STRING_H */ +# include +#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)) diff -r f18c5b5db882 -r b44fe7cf2a6b readline/readline.h --- 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. */ diff -r f18c5b5db882 -r b44fe7cf2a6b src/input.cc --- 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