Visual C++ correctly catches this.  The fragment

  struct IcuScalar {
    const char *zName;                        /* Function name */
    int nArg;                                 /* Number of arguments */
    int enc;                                  /* Optimal text encoding */
    void *pContext;                           /* sqlite3_user_data() context */
    void (*xFunc)(sqlite3_context*,int,sqlite3_value**);
  } scalars[] = {
    {"regexp", 2, SQLITE_ANY|SQLITE_DETERMINISTIC,          0, icuRegexpFunc},

    {"lower",  1, SQLITE_UTF16|SQLITE_DETERMINISTIC,        0, icuCaseFunc16},
    {"lower",  2, SQLITE_UTF16|SQLITE_DETERMINISTIC,        0, icuCaseFunc16},
    {"upper",  1, SQLITE_UTF16|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16},
    {"upper",  2, SQLITE_UTF16|SQLITE_DETERMINISTIC, (void*)1, icuCaseFunc16},

    {"lower",  1, SQLITE_UTF8|SQLITE_DETERMINISTIC,         0, icuCaseFunc16},
    {"lower",  2, SQLITE_UTF8|SQLITE_DETERMINISTIC,         0, icuCaseFunc16},
    {"upper",  1, SQLITE_UTF8|SQLITE_DETERMINISTIC,  (void*)1, icuCaseFunc16},
    {"upper",  2, SQLITE_UTF8|SQLITE_DETERMINISTIC,  (void*)1, icuCaseFunc16},

    {"like",   2, SQLITE_UTF8|SQLITE_DETERMINISTIC,         0, icuLikeFunc},
    {"like",   3, SQLITE_UTF8|SQLITE_DETERMINISTIC,         0, icuLikeFunc},

    {"icu_load_collation",  2, SQLITE_UTF8, (void*)db, icuLoadCollation},
  };

  int rc = SQLITE_OK;
  int i;

should read

       struct IcuScalar {
              const char *zName;                        /* Function name */
              int nArg;                                 /* Number of arguments 
*/
              int enc;                                  /* Optimal text 
encoding */
              void *pContext;                           /* sqlite3_user_data() 
context */
              void(*xFunc)(sqlite3_context*, int, sqlite3_value**);
       } scalars[] = {
              { "regexp", 2, SQLITE_ANY | SQLITE_DETERMINISTIC,          0, 
icuRegexpFunc },

              { "lower",  1, SQLITE_UTF16 | SQLITE_DETERMINISTIC,        0, 
icuCaseFunc16 },
              { "lower",  2, SQLITE_UTF16 | SQLITE_DETERMINISTIC,        0, 
icuCaseFunc16 },
              { "upper",  1, SQLITE_UTF16 | SQLITE_DETERMINISTIC, (void*)1, 
icuCaseFunc16 },
              { "upper",  2, SQLITE_UTF16 | SQLITE_DETERMINISTIC, (void*)1, 
icuCaseFunc16 },

              { "lower",  1, SQLITE_UTF8 | SQLITE_DETERMINISTIC,         0, 
icuCaseFunc16 },
              { "lower",  2, SQLITE_UTF8 | SQLITE_DETERMINISTIC,         0, 
icuCaseFunc16 },
              { "upper",  1, SQLITE_UTF8 | SQLITE_DETERMINISTIC,  (void*)1, 
icuCaseFunc16 },
              { "upper",  2, SQLITE_UTF8 | SQLITE_DETERMINISTIC,  (void*)1, 
icuCaseFunc16 },

              { "like",   2, SQLITE_UTF8 | SQLITE_DETERMINISTIC,         0, 
icuLikeFunc },
              { "like",   3, SQLITE_UTF8 | SQLITE_DETERMINISTIC,         0, 
icuLikeFunc },

              { "icu_load_collation",  2, SQLITE_UTF8, 0, icuLoadCollation }
       };

       int rc = SQLITE_OK;
       int i;

       scalars[11].pContext = (void*)db;

Thank you,

--Zem
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to