Sat Jun 15 20:30:01 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
authorRoland McGrath <roland@redhat.com>
Sat, 22 Jun 1996 19:26:13 +0000 (19:26 +0000)
committerRoland McGrath <roland@redhat.com>
Sat, 22 Jun 1996 19:26:13 +0000 (19:26 +0000)
* read.c (find_char_unquote): Avoid calling strlen on every call
just to throw away the value most of the time.

read.c

diff --git a/read.c b/read.c
index 7668162..c2de63b 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1509,7 +1509,7 @@ find_char_unquote (string, stopchars, blank)
      char *stopchars;
      int blank;
 {
-  unsigned int string_len = strlen (string);
+  unsigned int string_len = 0;
   register char *p = string;
 
   while (1)
@@ -1527,6 +1527,9 @@ find_char_unquote (string, stopchars, blank)
          while (&p[i] >= string && p[i] == '\\')
            --i;
          ++i;
+         /* Only compute the length if really needed.  */
+         if (string_len == 0)
+           string_len = strlen (string);
          /* The number of backslashes is now -I.
             Copy P over itself to swallow half of them.  */
          bcopy (&p[i / 2], &p[i], (string_len - (p - string)) - (i / 2) + 1);