From 764bdc8f87a6e866fc8e58541709d153ef6c1a16 Mon Sep 17 00:00:00 2001 From: eccles Date: Sat, 1 Nov 2003 00:17:19 +0000 Subject: [PATCH] A backslash typed into a Text field with MULTILINE flag was not being escaped when saved back to State. git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3082 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 56 +++++++++++--------- Plugins/InstallOptions.dll | Bin 13312 -> 13312 bytes 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index ae7ea6b0..249a95ba 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -18,7 +18,7 @@ #include "../exdll/exdll.h" #undef popstring -static int popstring(char *str) +static int WINAPI popstring(char *str) { stack_t *th; if (!g_stacktop || !*g_stacktop) return 1; @@ -46,10 +46,10 @@ typedef struct { #define stricmp(x,y) lstrcmpi(x,y) //#define abs(x) ((x) < 0 ? -(x) : (x)) -void *MALLOC(int len) { return (void*)GlobalAlloc(GPTR,len); } -void FREE(void *d) { if (d) GlobalFree((HGLOBAL)d); } +void *WINAPI MALLOC(int len) { return (void*)GlobalAlloc(GPTR,len); } +void WINAPI FREE(void *d) { if (d) GlobalFree((HGLOBAL)d); } -char *STRDUP(const char *c) +char *WINAPI STRDUP(const char *c) { char *t=(char*)MALLOC(lstrlen(c)+1); return lstrcpy(t,c); @@ -120,10 +120,10 @@ struct TableEntry { int nValue; }; -int LookupToken(TableEntry*, char*); -int LookupTokens(TableEntry*, char*); +int WINAPI LookupToken(TableEntry*, char*); +int WINAPI LookupTokens(TableEntry*, char*); -void ConvertNewLines(char *str); +void WINAPI ConvertNewLines(char *str); struct FieldType { char *pszText; @@ -185,7 +185,7 @@ int nRectId = 0; int nNumFields = 0; int g_done; -int FindControlIdx(UINT id) +int WINAPI FindControlIdx(UINT id) { for (int nIdx = 0; nIdx < nNumFields; nIdx++) if (id == pFields[nIdx].nControlID) @@ -195,7 +195,7 @@ int FindControlIdx(UINT id) // array of HWNDs and window styles used to make the main NSIS controls invisible while this program runs. -bool BrowseForFile(int nControlIdx) { +bool WINAPI BrowseForFile(int nControlIdx) { OPENFILENAME ofn={0,}; HWND hControl; BOOL bResult; @@ -260,7 +260,7 @@ int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) { } -bool BrowseForFolder(int nControlIdx) { +bool WINAPI BrowseForFolder(int nControlIdx) { BROWSEINFO bi; bi.hwndOwner = hConfigWindow; @@ -311,7 +311,7 @@ bool BrowseForFolder(int nControlIdx) { return true; } -bool ValidateFields() { +bool WINAPI ValidateFields() { int nIdx; int nLength; @@ -337,7 +337,7 @@ bool ValidateFields() { return true; } -bool SaveSettings(void) { +bool WINAPI SaveSettings(void) { static char szField[25]; int nIdx; HWND hwnd; @@ -414,20 +414,24 @@ bool SaveSettings(void) { char *pszBuf2 = (char*)MALLOC(nBufLen*2); // double the size, consider the worst case, all chars are \r\n char *p1, *p2; for (p1=pszBuffer,p2=pszBuf2; *p1; p1++, p2++) { - if (*p1 == '\r') { + switch (*p1) { + case '\r': *p2++ = '\\'; *p2 = 'r'; - } - else if (*p1 == '\n') { + break; + case '\n': *p2++ = '\\'; *p2 = 'n'; - } - else if (*p1 == '\t') { + break; + case '\t': *p2++ = '\\'; *p2 = 't'; - } - else + break; + case '\\': + *p2++ = '\\'; + default: *p2=*p1; + } } *p2 = 0; nBufLen = nBufLen*2; @@ -472,7 +476,7 @@ UINT WINAPI myGetProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault) return GetPrivateProfileInt(lpAppName, lpKeyName, nDefault, pszFilename); } -int ReadSettings(void) { +int WINAPI ReadSettings(void) { static char szField[25]; int nIdx, nCtrlIdx; @@ -667,7 +671,7 @@ int ReadSettings(void) { } -LRESULT WMCommandProc(HWND hWnd, UINT id, HWND hwndCtl, UINT codeNotify) { +LRESULT WINAPI WMCommandProc(HWND hWnd, UINT id, HWND hwndCtl, UINT codeNotify) { switch (codeNotify) { case BN_CLICKED: { @@ -837,7 +841,7 @@ int WINAPI StaticLINKWindowProc(HWND hWin, UINT uMsg, LPARAM wParam, WPARAM lPar int old_cancel_visible; -int createCfgDlg() +int WINAPI createCfgDlg() { UINT nAddMsg, nFindMsg, nSetSelMsg; @@ -1228,7 +1232,7 @@ int createCfgDlg() return 0; } -void showCfgDlg() +void WINAPI showCfgDlg() { lpWndProcOld = (void *) SetWindowLong(hMainWindow,DWL_DLGPROC,(long)ParentWndProc); @@ -1344,7 +1348,7 @@ extern "C" BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call } -int LookupToken(TableEntry* psTable_, char* pszToken_) +int WINAPI LookupToken(TableEntry* psTable_, char* pszToken_) { for (int i = 0; psTable_[i].pszName; i++) if (!stricmp(pszToken_, psTable_[i].pszName)) @@ -1352,7 +1356,7 @@ int LookupToken(TableEntry* psTable_, char* pszToken_) return 0; } -int LookupTokens(TableEntry* psTable_, char* pszTokens_) +int WINAPI LookupTokens(TableEntry* psTable_, char* pszTokens_) { int n = 0; char *pszStart = pszTokens_; @@ -1373,7 +1377,7 @@ int LookupTokens(TableEntry* psTable_, char* pszTokens_) return n; } -void ConvertNewLines(char *str) { +void WINAPI ConvertNewLines(char *str) { char *p1, *p2; if (!str) return; for (p1=p2=str; *p1; p1++, p2++) { diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 159fc5e61700df88a115b0d85792eb0877d74e36..bf0fd813bb04f23be6107c8b0cc0ad92f5ad9156 100644 GIT binary patch delta 3426 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 PK@{#62%^2n+86gf>3%j0 delta 3618 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