Imported from ../bash-2.01.tar.gz.
[platform/upstream/bash.git] / bracecomp.c
index c07e15d..47f6bc3 100644 (file)
    with Bash; see the file COPYING.  If not, write to the Free Software
    Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
 
+#include "config.h"
+#if defined (BRACE_EXPANSION) && defined (READLINE)
+
 #include <stdio.h>
 
-#if defined (HAVE_STRING_H)
-#  include <string.h>
-#else /* !HAVE_STRING_H */
-#  include <strings.h>
-#endif /* !HAVE_STRING_H */
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
 
 #include "shell.h"
 #include <readline/readline.h>
@@ -71,7 +74,7 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
         return (savestring (array[0]));
     }
 
-  result = (char *) xmalloc (result_size = 1);
+  result = xmalloc (result_size = 1);
   *result = '\0';
 
   for (start = real_start; start < real_end; start = end + 1)
@@ -95,8 +98,8 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
          /* In this case, add in a leading '{', because we are at
             top level, and there isn't a consistent prefix. */
          result_size += 1;
-         result = (char *) xrealloc (result, result_size);
-         strcpy (result, "{");
+         result = xrealloc (result, result_size);
+         result[0] = '{'; result[1] = '\0';
          flag++;
        }
 
@@ -107,7 +110,7 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
          /* If there is more than one element in the subarray,
             insert the prefix and an opening brace. */
          result_size += gcd - gcd_zero + 1;
-         result = (char *) xrealloc (result, result_size);
+         result = xrealloc (result, result_size);
          strncat (result, array[start] + gcd_zero, gcd - gcd_zero);
          strcat (result, "{");
          subterm = really_munge_braces (array, start, end + 1, gcd);
@@ -115,7 +118,7 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
        }
 
       result_size += strlen (subterm) + 1;
-      result = (char *) xrealloc (result, result_size);
+      result = xrealloc (result, result_size);
       strcat (result, subterm);
       strcat (result, ",");
       free (subterm);
@@ -164,3 +167,4 @@ bash_brace_completion ()
   rl_attempted_completion_function = orig_attempt_func;
   rl_completion_entry_function = orig_entry_func;
 }
+#endif /* BRACE_EXPANSION && READLINE */