/*
* Edmund Mergl <E.Mergl@bawue.de>
*
- * $Id: oracle_compat.c,v 1.9 1997/09/08 02:30:57 momjian Exp $
+ * $Id: oracle_compat.c,v 1.20 1999/07/15 15:20:19 momjian Exp $
*
*/
#include <ctype.h>
#include "postgres.h"
-
-text *lower(text * string);
-text *upper(text * string);
-text *initcap(text * string);
-text *lpad(text * string1, int4 len, text * string2);
-text *rpad(text * string1, int4 len, text * string2);
-text *btrim(text * string, text * set);
-text *ltrim(text * string, text * set);
-text *rtrim(text * string, text * set);
-text *substr(text * string, int4 m, int4 n);
-text *translate(text * string, char from, char to);
+text *lower(text *string);
+text *upper(text *string);
+text *initcap(text *string);
+text *lpad(text *string1, int4 len, text *string2);
+text *rpad(text *string1, int4 len, text *string2);
+text *btrim(text *string, text *set);
+text *ltrim(text *string, text *set);
+text *rtrim(text *string, text *set);
+text *substr(text *string, int4 m, int4 n);
+text *translate(text *string, char from, char to);
/********************************************************************
*
********************************************************************/
-text *
-lower(text * string)
+text *
+lower(text *string)
{
text *ret;
char *ptr,
ptr_ret = VARDATA(ret);
while (m--)
- {
- *ptr_ret++ = tolower(*ptr++);
- }
+ *ptr_ret++ = tolower((unsigned char) *ptr++);
return ret;
}
*
********************************************************************/
-text *
-upper(text * string)
+text *
+upper(text *string)
{
text *ret;
char *ptr,
ptr_ret = VARDATA(ret);
while (m--)
- {
- *ptr_ret++ = toupper(*ptr++);
- }
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
return ret;
}
*
********************************************************************/
-text *
-initcap(text * string)
+text *
+initcap(text *string)
{
text *ret;
char *ptr,
ptr = VARDATA(string);
ptr_ret = VARDATA(ret);
- *ptr_ret++ = toupper(*ptr++);
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
--m;
while (m--)
{
if (*(ptr_ret - 1) == ' ' || *(ptr_ret - 1) == ' ')
- {
- *ptr_ret++ = toupper(*ptr++);
- }
+ *ptr_ret++ = toupper((unsigned char) *ptr++);
else
- {
- *ptr_ret++ = tolower(*ptr++);
- }
+ *ptr_ret++ = tolower((unsigned char) *ptr++);
}
return ret;
*
********************************************************************/
-text *
-lpad(text * string1, int4 len, text * string2)
+text *
+lpad(text *string1, int4 len, text *string2)
{
text *ret;
char *ptr1,
ptr1 = VARDATA(string1);
while (n--)
- {
*ptr_ret++ = *ptr1++;
- }
return ret;
}
*
********************************************************************/
-text *
-rpad(text * string1, int4 len, text * string2)
+text *
+rpad(text *string1, int4 len, text *string2)
{
text *ret;
char *ptr1,
ptr_ret = VARDATA(ret);
while (n--)
- {
*ptr_ret++ = *ptr1++;
- }
ptr2 = VARDATA(string2);
*
********************************************************************/
-text *
-btrim(text * string, text * set)
+text *
+btrim(text *string, text *set)
{
text *ret;
char *ptr,
while (ptr2 <= end2)
{
if (*ptr == *ptr2)
- {
break;
- }
++ptr2;
}
- if (*ptr != *ptr2)
- {
+ if (ptr2 > end2)
break;
- }
ptr++;
ptr2 = VARDATA(set);
}
while (ptr2 <= end2)
{
if (*end == *ptr2)
- {
break;
- }
++ptr2;
}
- if (*end != *ptr2)
- {
+ if (ptr2 > end2)
break;
- }
--end;
ptr2 = VARDATA(set);
}
memcpy(VARDATA(ret), ptr, m);
return ret;
-} /* btrim() */
+} /* btrim() */
/********************************************************************
*
********************************************************************/
-text *
-ltrim(text * string, text * set)
+text *
+ltrim(text *string, text *set)
{
text *ret;
char *ptr,
while (ptr2 <= end2)
{
if (*ptr == *ptr2)
- {
break;
- }
++ptr2;
}
- if (*ptr != *ptr2)
- {
+ if (ptr2 > end2)
break;
- }
ptr++;
ptr2 = VARDATA(set);
}
*
********************************************************************/
-text *
-rtrim(text * string, text * set)
+text *
+rtrim(text *string, text *set)
{
text *ret;
char *ptr,
while (ptr2 <= end2)
{
if (*ptr == *ptr2)
- {
break;
- }
++ptr2;
}
- if (*ptr != *ptr2)
- {
+ if (ptr2 > end2)
break;
- }
--ptr;
ptr2 = VARDATA(set);
}
ret = (text *) palloc(VARHDRSZ + m);
VARSIZE(ret) = VARHDRSZ + m;
-#if FALSE
+#ifdef NOT_USED
memcpy(VARDATA(ret), ptr - VARSIZE(ret) + m, m);
#endif
ptr_ret = VARDATA(ret) + m - 1;
while (m--)
- {
*ptr_ret-- = *ptr--;
- }
return ret;
}
*
********************************************************************/
-text *
-substr(text * string, int4 m, int4 n)
+#ifdef NOT_USED
+text *
+substr(text *string, int4 m, int4 n)
{
text *ret;
char *ptr,
if ((string == (text *) NULL) ||
(m <= 0) || (n <= 0) ||
- ((len = VARSIZE(string) - VARHDRSZ - m) <= 0))
+ ((len = VARSIZE(string) - VARHDRSZ - m + 1) <= 0))
return string;
len = len + 1 < n ? len + 1 : n;
ptr_ret = VARDATA(ret);
while (len--)
- {
*ptr_ret++ = *ptr++;
- }
return ret;
}
-
+#endif
/********************************************************************
*
*
********************************************************************/
-text *
-translate(text * string, char from, char to)
+text *
+translate(text *string, char from, char to)
{
text *ret;
char *ptr,