$OpenBSD: patch-src_common_dbtable_cpp,v 1.1.1.1 2004/07/16 21:01:35 todd Exp $
--- src/common/dbtable.cpp.orig	Mon Dec 16 23:56:26 2002
+++ src/common/dbtable.cpp	Tue Apr 29 22:22:20 2003
@@ -2148,11 +2148,8 @@ void wxDbTable::SetColDefs(UWORD index, 
     if (!colDefs)  // May happen if the database connection fails
         return;
 
-    if (fieldName.Length() > (unsigned int) DB_MAX_COLUMN_NAME_LEN)
+    if (strlcpy(colDefs[index].ColName, fieldName, DB_MAX_COLUMN_NAME_LEN) >= DB_MAX_COLUMN_NAME_LEN)
     {
-        wxStrncpy(colDefs[index].ColName, fieldName, DB_MAX_COLUMN_NAME_LEN);
-        colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0;
-
 #ifdef __WXDEBUG__
         wxString tmpMsg;
         tmpMsg.Printf(_T("Column name '%s' is too long. Truncated to '%s'."),
@@ -2160,8 +2157,6 @@ void wxDbTable::SetColDefs(UWORD index, 
         wxFAIL_MSG(tmpMsg);
 #endif // __WXDEBUG__
     }
-    else
-        wxStrcpy(colDefs[index].ColName, fieldName);
 
     colDefs[index].DbDataType       = dataType;
     colDefs[index].PtrDataObj       = pData;
@@ -2604,14 +2599,6 @@ wxVariant wxDbTable::GetCol(const int co
 }  // wxDbTable::GetCol()
 
 
-void csstrncpyt(char *s, const char *t, int n)
-{
-    while ( (*s++ = *t++) != '\0' && --n )
-        ;
-
-    *s = '\0';
-}
-
 void wxDbTable::SetCol(const int colNo, const wxVariant val)
 {
     //FIXME: Add proper wxDateTime support to wxVariant..
@@ -2634,9 +2621,9 @@ void wxDbTable::SetCol(const int colNo, 
         {
             case SQL_CHAR:
             case SQL_VARCHAR:
-                csstrncpyt((char *)(colDefs[colNo].PtrDataObj),
+                strlcpy((char *)(colDefs[colNo].PtrDataObj),
                            val.GetString().c_str(),
-                           colDefs[colNo].SzDataObj-1);
+                           colDefs[colNo].SzDataObj);
                 break;
             case SQL_C_LONG:
             case SQL_C_SLONG:
