diff -c psqlodbc.orig\setup.c psqlodbc\setup.c *** psqlodbc.orig\setup.c Sat Dec 10 08:39:31 2005 --- psqlodbc\setup.c Wed Dec 14 02:21:26 2005 *************** *** 345,351 **** else if (*lpsz == '=') break; /* Valid key found */ } ! /* Determine the key's index in the key table (-1 if not found) */ cbKey = lpsz - lpszStart; if (cbKey < sizeof(aszKey)) { --- 345,351 ---- else if (*lpsz == '=') break; /* Valid key found */ } ! /* Determine the key */ cbKey = lpsz - lpszStart; if (cbKey < sizeof(aszKey)) { *************** *** 353,365 **** aszKey[cbKey] = '\0'; } ! /* Locate end of key value */ lpszStart = ++lpsz; ! for (; *lpsz; lpsz++) ; ! /* lpsetupdlg->aAttr[iElement].fSupplied = TRUE; */ ! _fmemcpy(value, lpszStart, MIN(lpsz - lpszStart + 1, MAXPGPATH)); mylog("aszKey='%s', value='%s'\n", aszKey, value); --- 353,367 ---- aszKey[cbKey] = '\0'; } ! /* Locate end of key value - added support for delimiter ; */ lpszStart = ++lpsz; ! for (; *lpsz && *lpsz != ';'; lpsz++) ; ! /* Determine the value */ ! cbKey = MIN(lpsz - lpszStart, MAXPGPATH); ! _fmemcpy(value, lpszStart, cbKey); ! value[cbKey] = '\0'; mylog("aszKey='%s', value='%s'\n", aszKey, value);