Imported from ../bash-2.05a.tar.gz.
[platform/upstream/bash.git] / lib / readline / histexpand.c
index 1c8a1d9..04f6478 100644 (file)
@@ -56,7 +56,7 @@
 #define HISTORY_WORD_DELIMITERS                " \t\n;&()|<>"
 #define HISTORY_QUOTE_CHARACTERS       "\"'`"
 
-typedef int _hist_search_func_t __P((const char *, int));
+typedef int _hist_search_func_t PARAMS((const char *, int));
 
 static char error_pointer;
 
@@ -65,10 +65,10 @@ static char *subst_rhs;
 static int subst_lhs_len;
 static int subst_rhs_len;
 
-static char *get_history_word_specifier __P((char *, char *, int *));
-static char *history_find_word __P((char *, int));
+static char *get_history_word_specifier PARAMS((char *, char *, int *));
+static char *history_find_word PARAMS((char *, int));
 
-static char *quote_breaks __P((char *));
+static char *quote_breaks PARAMS((char *));
 
 /* Variables exported by this file. */
 /* The character that represents the start of a history expansion
@@ -212,7 +212,7 @@ get_history_event (string, caller_index, delimiting_quote)
       break;
 
   which = i - local_index;
-  temp = xmalloc (1 + which);
+  temp = (char *)xmalloc (1 + which);
   if (which)
     strncpy (temp, string + local_index, which);
   temp[which] = '\0';
@@ -314,7 +314,7 @@ quote_breaks (s)
        len += 2;
     }
 
-  r = ret = xmalloc (len);
+  r = ret = (char *)xmalloc (len);
   *r++ = '\'';
   for (p = s; p && *p; )
     {
@@ -379,7 +379,7 @@ hist_error(s, start, current, errtype)
       break;
     }
 
-  temp = xmalloc (ll + elen + 3);
+  temp = (char *)xmalloc (ll + elen + 3);
   strncpy (temp, s + start, ll);
   temp[ll] = ':';
   temp[ll + 1] = ' ';
@@ -415,7 +415,7 @@ get_subst_pattern (str, iptr, delimiter, is_rhs, lenptr)
 
   if (si > i || is_rhs)
     {
-      s = xmalloc (si - i + 1);
+      s = (char *)xmalloc (si - i + 1);
       for (j = 0, k = i; k < si; j++, k++)
        {
          /* Remove a backslash quoting the search string delimiter. */
@@ -442,13 +442,13 @@ postproc_subst_rhs ()
   char *new;
   int i, j, new_size;
 
-  new = xmalloc (new_size = subst_rhs_len + subst_lhs_len);
+  new = (char *)xmalloc (new_size = subst_rhs_len + subst_lhs_len);
   for (i = j = 0; i < subst_rhs_len; i++)
     {
       if (subst_rhs[i] == '&')
        {
          if (j + subst_lhs_len >= new_size)
-           new = xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
+           new = (char *)xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
          strcpy (new + j, subst_lhs);
          j += subst_lhs_len;
        }
@@ -458,7 +458,7 @@ postproc_subst_rhs ()
          if (subst_rhs[i] == '\\' && subst_rhs[i + 1] == '&')
            i++;
          if (j >= new_size)
-           new = xrealloc (new, new_size *= 2);
+           new = (char *)xrealloc (new, new_size *= 2);
          new[j++] = subst_rhs[i];
        }
     }
@@ -485,7 +485,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
   char *event, *temp, *result, *tstr, *t, c, *word_spec;
   int result_len;
 
-  result = xmalloc (result_len = 128);
+  result = (char *)xmalloc (result_len = 128);
 
   i = start;
 
@@ -698,7 +698,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
              if (STREQN (temp+si, subst_lhs, subst_lhs_len))
                {
                  int len = subst_rhs_len - subst_lhs_len + l_temp;
-                 new_event = xmalloc (1 + len);
+                 new_event = (char *)xmalloc (1 + len);
                  strncpy (new_event, temp, si);
                  strncpy (new_event + si, subst_rhs, subst_rhs_len);
                  strncpy (new_event + si + subst_rhs_len,
@@ -759,7 +759,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
 
   n = strlen (temp);
   if (n >= result_len)
-    result = xrealloc (result, n + 2);
+    result = (char *)xrealloc (result, n + 2);
   strcpy (result, temp);
   free (temp);
 
@@ -790,7 +790,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
              { \
                while (j >= result_len) \
                  result_len += 128; \
-               result = xrealloc (result, result_len); \
+               result = (char *)xrealloc (result, result_len); \
              } \
            strcpy (result + j - sl, s); \
          } \
@@ -800,7 +800,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
        do \
          { \
            if (j >= result_len - 1) \
-             result = xrealloc (result, result_len += 64); \
+             result = (char *)xrealloc (result, result_len += 64); \
            result[j++] = c; \
            result[j] = '\0'; \
          } \
@@ -834,7 +834,7 @@ history_expand (hstring, output)
     }
     
   /* Prepare the buffer for printing error messages. */
-  result = xmalloc (result_len = 256);
+  result = (char *)xmalloc (result_len = 256);
   result[0] = '\0';
 
   only_printing = modified = 0;
@@ -851,7 +851,7 @@ history_expand (hstring, output)
      that is the substitution that we do. */
   if (hstring[0] == history_subst_char)
     {
-      string = xmalloc (l + 5);
+      string = (char *)xmalloc (l + 5);
 
       string[0] = string[1] = history_expansion_char;
       string[2] = ':';
@@ -960,7 +960,7 @@ history_expand (hstring, output)
                hist_string_extract_single_quoted (string, &i);
 
                slen = i - quote + 2;
-               temp = xmalloc (slen);
+               temp = (char *)xmalloc (slen);
                strncpy (temp, string + quote, slen);
                temp[slen - 1] = '\0';
                ADD_STRING (temp);
@@ -974,7 +974,7 @@ history_expand (hstring, output)
        case -2:                /* history_comment_char */
          if (i == 0 || member (string[i - 1], history_word_delimiters))
            {
-             temp = xmalloc (l - i + 1);
+             temp = (char *)xmalloc (l - i + 1);
              strcpy (temp, string + i);
              ADD_STRING (temp);
              free (temp);
@@ -1006,7 +1006,7 @@ history_expand (hstring, output)
            {
              if (result)
                {
-                 temp = xmalloc (1 + strlen (result));
+                 temp = (char *)xmalloc (1 + strlen (result));
                  strcpy (temp, result);
                  ADD_STRING (temp);
                  free (temp);
@@ -1140,7 +1140,14 @@ get_history_word_specifier (spec, from, caller_index)
          i++;
          last = '$';
        }
-      else if (!spec[i] || spec[i] == ':')  /* could be modifier separator */
+#if 0
+      else if (!spec[i] || spec[i] == ':')
+       /* check against `:' because there could be a modifier separator */
+#else
+      else
+       /* csh seems to allow anything to terminate the word spec here,
+          leaving it as an abbreviation. */
+#endif
        last = -1;              /* x- abbreviates x-$ omitting word `$' */
     }
 
@@ -1196,7 +1203,7 @@ history_arg_extract (first, last, string)
     {
       for (size = 0, i = first; i < last; i++)
        size += strlen (list[i]) + 1;
-      result = xmalloc (size + 1);
+      result = (char *)xmalloc (size + 1);
       result[0] = '\0';
 
       for (i = first, offset = 0; i < last; i++)
@@ -1329,7 +1336,7 @@ history_tokenize_internal (string, wind, indp)
       len = i - start;
       if (result_index + 2 >= size)
        result = (char **)xrealloc (result, ((size += 10) * sizeof (char *)));
-      result[result_index] = xmalloc (1 + len);
+      result[result_index] = (char *)xmalloc (1 + len);
       strncpy (result[result_index], string + start, len);
       result[result_index][len] = '\0';
       result[++result_index] = (char *)NULL;