Fix build with !USE_WIDE_UPPER_LOWER
authorPeter Eisentraut <[email protected]>
Thu, 21 Sep 2017 18:42:10 +0000 (14:42 -0400)
committerPeter Eisentraut <[email protected]>
Fri, 22 Sep 2017 13:26:38 +0000 (09:26 -0400)
The placement of the ifdef blocks in formatting.c was pretty bogus, so
the code failed to compile if USE_WIDE_UPPER_LOWER was not defined.

Reported-by: Peter Geoghegan <[email protected]>
Reported-by: Noah Misch <[email protected]>
src/backend/utils/adt/formatting.c

index 46f45f665417b8d55dbea43bc398119383a62b80..2bf484cda3178c22393336e94963e557bc0d4ef5 100644 (file)
@@ -1528,7 +1528,6 @@ str_tolower(const char *buff, size_t nbytes, Oid collid)
    {
        result = asc_tolower(buff, nbytes);
    }
-#ifdef USE_WIDE_UPPER_LOWER
    else
    {
        pg_locale_t mylocale = 0;
@@ -1566,6 +1565,7 @@ str_tolower(const char *buff, size_t nbytes, Oid collid)
        else
 #endif
        {
+#ifdef USE_WIDE_UPPER_LOWER
            if (pg_database_encoding_max_length() > 1)
            {
                wchar_t    *workspace;
@@ -1603,8 +1603,8 @@ str_tolower(const char *buff, size_t nbytes, Oid collid)
                wchar2char(result, workspace, result_size, mylocale);
                pfree(workspace);
            }
-#endif                         /* USE_WIDE_UPPER_LOWER */
            else
+#endif                         /* USE_WIDE_UPPER_LOWER */
            {
                char       *p;
 
@@ -1652,7 +1652,6 @@ str_toupper(const char *buff, size_t nbytes, Oid collid)
    {
        result = asc_toupper(buff, nbytes);
    }
-#ifdef USE_WIDE_UPPER_LOWER
    else
    {
        pg_locale_t mylocale = 0;
@@ -1690,6 +1689,7 @@ str_toupper(const char *buff, size_t nbytes, Oid collid)
        else
 #endif
        {
+#ifdef USE_WIDE_UPPER_LOWER
            if (pg_database_encoding_max_length() > 1)
            {
                wchar_t    *workspace;
@@ -1727,8 +1727,8 @@ str_toupper(const char *buff, size_t nbytes, Oid collid)
                wchar2char(result, workspace, result_size, mylocale);
                pfree(workspace);
            }
-#endif                         /* USE_WIDE_UPPER_LOWER */
            else
+#endif                         /* USE_WIDE_UPPER_LOWER */
            {
                char       *p;
 
@@ -1777,7 +1777,6 @@ str_initcap(const char *buff, size_t nbytes, Oid collid)
    {
        result = asc_initcap(buff, nbytes);
    }
-#ifdef USE_WIDE_UPPER_LOWER
    else
    {
        pg_locale_t mylocale = 0;
@@ -1815,6 +1814,7 @@ str_initcap(const char *buff, size_t nbytes, Oid collid)
        else
 #endif
        {
+#ifdef USE_WIDE_UPPER_LOWER
            if (pg_database_encoding_max_length() > 1)
            {
                wchar_t    *workspace;
@@ -1864,8 +1864,8 @@ str_initcap(const char *buff, size_t nbytes, Oid collid)
                wchar2char(result, workspace, result_size, mylocale);
                pfree(workspace);
            }
-#endif                         /* USE_WIDE_UPPER_LOWER */
            else
+#endif                         /* USE_WIDE_UPPER_LOWER */
            {
                char       *p;