# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1341085998 0 # Node ID 15414cbe857f29ead260cf2e629b7e9a8fab042f # Parent 5ffeea4a2a4ba858a61a2b242a560af305cfbe98 Fix warnings with Visual C largely in debug mode. Switched to using _sntprintf() and pointer arithmetic in dw_file_browse(). diff -r 5ffeea4a2a4b -r 15414cbe857f dwtest.c --- a/dwtest.c Sat Jun 30 18:34:19 2012 +0000 +++ b/dwtest.c Sat Jun 30 19:53:18 2012 +0000 @@ -846,7 +846,7 @@ if(test) { - dw_clipboard_set_text(test, strlen(test)); + dw_clipboard_set_text(test, (int)strlen(test)); dw_free(test); } return TRUE; diff -r 5ffeea4a2a4b -r 15414cbe857f win/dw.c --- a/win/dw.c Sat Jun 30 18:34:19 2012 +0000 +++ b/win/dw.c Sat Jun 30 19:53:18 2012 +0000 @@ -11716,6 +11716,8 @@ dst[x] = 0; } +#define BROWSEBUFSIZE 1000 + /* * Opens a file dialog and queries user selection. * Parameters: @@ -11731,8 +11733,8 @@ char * API dw_file_browse(char *title, char *defpath, char *ext, int flags) { OPENFILENAME of = {0}; - TCHAR filenamebuf[1001] = {0}, *fbuf = filenamebuf; - TCHAR filterbuf[1001] = {0}; + TCHAR filenamebuf[BROWSEBUFSIZE+1] = {0}, *fbuf = filenamebuf; + TCHAR filterbuf[BROWSEBUFSIZE+1] = {0}; TCHAR *exten = UTF8toWide(ext); TCHAR *dpath = UTF8toWide(defpath); int rc; @@ -11760,7 +11762,7 @@ { if (SHGetPathFromIDList(pidl,szDir)) { - _tcsncpy(filenamebuf,szDir,1000); + _tcsncpy(filenamebuf,szDir,BROWSEBUFSIZE); } /* In C++: pMalloc->Free(pidl); pMalloc->Release(); */ @@ -11775,7 +11777,7 @@ -1, (LPCTSTR)UTF8toWide(title), (LPTSTR)filenamebuf, - 1000, + BROWSEBUFSIZE, FALSE ) ) { return _strdup( WideToUTF8(fbuf) ); @@ -11794,13 +11796,15 @@ */ int len; TCHAR *ptr = filterbuf; - len = _stprintf( ptr, TEXT("%s Files (*.%s)"), exten, exten ); + TCHAR *start = filterbuf; + + len = _sntprintf( ptr, BROWSEBUFSIZE - (ptr - start), TEXT("%s Files (*.%s)"), exten, exten ); ptr = ptr + len + 1; /* past first \0 */ - len = _stprintf( ptr, TEXT("*.%s"), exten ); + len = _sntprintf( ptr, BROWSEBUFSIZE - (ptr - start), TEXT("*.%s"), exten ); ptr = ptr + len + 1; /* past next \0 */ - len = _stprintf( ptr, TEXT("All Files") ); + len = _sntprintf( ptr, BROWSEBUFSIZE - (ptr - start), TEXT("All Files") ); ptr = ptr + len + 1; /* past next \0 */ - len = _stprintf( ptr, TEXT("*.*") ); + len = _sntprintf( ptr, BROWSEBUFSIZE - (ptr - start), TEXT("*.*") ); } memset( &of, 0, sizeof(OPENFILENAME) ); @@ -11817,7 +11821,7 @@ of.lpstrFile = filenamebuf; of.lpstrFilter = filterbuf; of.nFilterIndex = 1; - of.nMaxFile = 1000; + of.nMaxFile = BROWSEBUFSIZE; /*of.lpstrDefExt = ext;*/ of.Flags = OFN_NOCHANGEDIR;