iceman_k's define list for MakeNSISw
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2536 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
b06d2531d5
commit
3c08909d1d
7 changed files with 794 additions and 575 deletions
File diff suppressed because it is too large
Load diff
|
@ -80,7 +80,7 @@ BSC32=bscmake.exe
|
|||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 wsock32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"../../makensisw.exe" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
@ -137,6 +137,10 @@ SOURCE=.\utils.h
|
|||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE="..\Icons\adni18-installer-B.ico"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\logo.bmp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -160,5 +164,9 @@ SOURCE=.\shell.ico
|
|||
SOURCE=.\Readme.txt
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\makensisw.xml
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
|
|
|
@ -29,27 +29,28 @@
|
|||
#undef _RICHEDIT_VER
|
||||
|
||||
// Defines
|
||||
#define NSIS_DEV "http://nsis.sourceforge.net/"
|
||||
#define NSIS_URL "http://www.nullsoft.com/free/nsis/"
|
||||
#define NSIS_FOR "http://forums.winamp.com/forumdisplay.php?forumid=65"
|
||||
#define USAGE "Usage:\r\n\r\n - File | Load Script...\r\n - Drag the .nsi file into this window\r\n - Right click the .nsi file and choose \"Compile NSI\""
|
||||
#define COPYRIGHT "Copyright © 2002 Robert Rainwater"
|
||||
#define CONTRIB "Fritz Elfert, Justin Frankel, Amir Szekely"
|
||||
#define DOCPATH "http://nsis.sourceforge.net/Docs/"
|
||||
#define LOCALDOCS "\\docs\\index.html"
|
||||
#define NSISERROR "Unable to intialize MakeNSIS. Please verify that makensis.exe is in the same directory as makensisw.exe."
|
||||
#define DLGERROR "Unable to intialize MakeNSISW."
|
||||
#define REGSEC HKEY_LOCAL_MACHINE
|
||||
#define REGKEY "Software\\NSIS"
|
||||
#define REGLOC "MakeNSISWPlacement"
|
||||
#define EXENAME "makensis.exe"
|
||||
#define MAX_STRING 256
|
||||
#define TIMEOUT 100
|
||||
#define MINWIDTH 350
|
||||
#define MINHEIGHT 180
|
||||
#define REGSEC HKEY_LOCAL_MACHINE
|
||||
#define REGKEY "Software\\NSIS"
|
||||
#define REGLOC "MakeNSISWPlacement"
|
||||
#define NSIS_DEV "http://nsis.sourceforge.net/"
|
||||
#define NSIS_URL "http://www.nullsoft.com/free/nsis/"
|
||||
#define NSIS_FOR "http://forums.winamp.com/forumdisplay.php?forumid=65"
|
||||
#define USAGE "Usage:\r\n\r\n - File | Load Script...\r\n - Drag the .nsi file into this window\r\n - Right click the .nsi file and choose \"Compile NSI\""
|
||||
#define COPYRIGHT "Copyright © 2002 Robert Rainwater"
|
||||
#define CONTRIB "Fritz Elfert, Justin Frankel, Amir Szekely"
|
||||
#define DOCPATH "http://nsis.sourceforge.net/Docs/"
|
||||
#define LOCALDOCS "\\docs\\index.html"
|
||||
#define NSISERROR "Unable to intialize MakeNSIS. Please verify that makensis.exe is in the same directory as makensisw.exe."
|
||||
#define DLGERROR "Unable to intialize MakeNSISW."
|
||||
#define DEFINESERROR "Symbol cannot contain whitespace characters"
|
||||
#define REGSEC HKEY_LOCAL_MACHINE
|
||||
#define REGKEY "Software\\NSIS"
|
||||
#define REGLOC "MakeNSISWPlacement"
|
||||
#define EXENAME "makensis.exe"
|
||||
#define MAX_STRING 256
|
||||
#define TIMEOUT 100
|
||||
#define MINWIDTH 350
|
||||
#define MINHEIGHT 180
|
||||
#define REGSEC HKEY_LOCAL_MACHINE
|
||||
#define REGKEY "Software\\NSIS"
|
||||
#define REGLOC "MakeNSISWPlacement"
|
||||
|
||||
#define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
|
||||
|
||||
|
@ -61,53 +62,56 @@ enum {
|
|||
};
|
||||
|
||||
// Extern Variables
|
||||
extern const char* NSISW_VERSION;
|
||||
extern const char* NSISW_VERSION;
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmdShow);
|
||||
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
DWORD WINAPI MakeNSISProc(LPVOID p);
|
||||
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/);
|
||||
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
void CompileNSISScript();
|
||||
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmdShow);
|
||||
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
DWORD WINAPI MakeNSISProc(LPVOID p);
|
||||
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/);
|
||||
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
void CompileNSISScript();
|
||||
char* BuildDefines();
|
||||
|
||||
typedef struct NSISScriptData {
|
||||
bool script_alloced;
|
||||
char *script;
|
||||
char *output_exe;
|
||||
char *input_script;
|
||||
char *branding;
|
||||
char *brandingv;
|
||||
int retcode;
|
||||
DWORD logLength;
|
||||
DWORD warnings;
|
||||
BOOL appended;
|
||||
HINSTANCE hInstance;
|
||||
HWND hwnd;
|
||||
HMENU menu;
|
||||
HMENU submenu;
|
||||
HANDLE thread;
|
||||
HWND focused_hwnd;
|
||||
CHARRANGE textrange;
|
||||
bool script_alloced;
|
||||
char *script;
|
||||
char *output_exe;
|
||||
char *input_script;
|
||||
char *branding;
|
||||
char *brandingv;
|
||||
char **defines;
|
||||
int retcode;
|
||||
DWORD logLength;
|
||||
DWORD warnings;
|
||||
BOOL appended;
|
||||
HINSTANCE hInstance;
|
||||
HWND hwnd;
|
||||
HMENU menu;
|
||||
HMENU submenu;
|
||||
HANDLE thread;
|
||||
HWND focused_hwnd;
|
||||
CHARRANGE textrange;
|
||||
} NSCRIPTDATA;
|
||||
|
||||
typedef struct ResizeData {
|
||||
RECT resizeRect;
|
||||
RECT griprect;
|
||||
int dx;
|
||||
int dy;
|
||||
RECT resizeRect;
|
||||
RECT griprect;
|
||||
int dx;
|
||||
int dy;
|
||||
} NRESIZEDATA;
|
||||
|
||||
typedef struct FindReplaceDialog {
|
||||
FINDREPLACE fr;
|
||||
UINT uFindReplaceMsg;
|
||||
HWND hwndFind;
|
||||
FINDREPLACE fr;
|
||||
UINT uFindReplaceMsg;
|
||||
HWND hwndFind;
|
||||
} NFINDREPLACE;
|
||||
|
||||
typedef struct ToolTipStruct {
|
||||
HWND tip;
|
||||
HWND tip_p;
|
||||
HHOOK hook;
|
||||
HWND tip;
|
||||
HWND tip_p;
|
||||
HHOOK hook;
|
||||
} NTOOLTIP;
|
||||
|
||||
#endif
|
|
@ -11,11 +11,11 @@
|
|||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
*/
|
||||
|
@ -24,28 +24,28 @@
|
|||
|
||||
// kickik's clib methods
|
||||
char *my_strrchr(const char *string, int c) {
|
||||
for (int i=lstrlen(string); i>=0; i--)
|
||||
if (string[i]==c) return (char*)&string[i];
|
||||
return 0;
|
||||
for (int i=lstrlen(string); i>=0; i--)
|
||||
if (string[i]==c) return (char*)&string[i];
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *my_strstr(char *i, char *s) {
|
||||
if (lstrlen(i)>=lstrlen(s)) while (i[lstrlen(s)-1]) {
|
||||
int l=lstrlen(s)+1;
|
||||
char *ii=i;
|
||||
char *is=s;
|
||||
while (--l>0) {
|
||||
if (*ii != *is) break;
|
||||
ii++;
|
||||
is++;
|
||||
}
|
||||
if (l==0) return i;
|
||||
i++;
|
||||
if (lstrlen(i)>=lstrlen(s)) while (i[lstrlen(s)-1]) {
|
||||
int l=lstrlen(s)+1;
|
||||
char *ii=i;
|
||||
char *is=s;
|
||||
while (--l>0) {
|
||||
if (*ii != *is) break;
|
||||
ii++;
|
||||
is++;
|
||||
}
|
||||
return NULL;
|
||||
if (l==0) return i;
|
||||
i++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *my_memset(void *dest, int c, size_t count) {
|
||||
for (size_t i=0; i<count;i++) ((char*)dest)[i]=c;
|
||||
return dest;
|
||||
for (size_t i=0; i<count;i++) ((char*)dest)[i]=c;
|
||||
return dest;
|
||||
}
|
|
@ -9,6 +9,7 @@
|
|||
#define IDK_ACCEL 105
|
||||
#define IDI_SHELL 112
|
||||
#define IDB_LOGO 115
|
||||
#define DLG_DEFINES 116
|
||||
#define IDC_LOGWIN 402
|
||||
#define IDC_VERSION 405
|
||||
#define IDC_CLOSE 406
|
||||
|
@ -26,6 +27,11 @@
|
|||
#define IDC_CONTRIB 1009
|
||||
#define IDC_NSISVER 1010
|
||||
#define IDC_OTHERCONTRIB 1016
|
||||
#define IDC_SYMBOL 1017
|
||||
#define IDC_VALUE 1018
|
||||
#define IDRIGHT 1019
|
||||
#define IDLEFT 1020
|
||||
#define IDC_DEFINES 1021
|
||||
#define IDM_TEST 40002
|
||||
#define IDM_EDITSCRIPT 40003
|
||||
#define IDM_DOCS 40004
|
||||
|
@ -36,14 +42,15 @@
|
|||
#define IDM_BROWSESCR 40013
|
||||
#define IDM_NSISDEV 40014
|
||||
#define IDM_FORUM 40016
|
||||
#define IDM_DEFINES 40017
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 116
|
||||
#define _APS_NEXT_COMMAND_VALUE 40017
|
||||
#define _APS_NEXT_CONTROL_VALUE 1017
|
||||
#define _APS_NEXT_RESOURCE_VALUE 117
|
||||
#define _APS_NEXT_COMMAND_VALUE 40018
|
||||
#define _APS_NEXT_CONTROL_VALUE 1023
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -83,6 +83,7 @@ BEGIN
|
|||
POPUP "&Tools"
|
||||
BEGIN
|
||||
MENUITEM "&Recompile\tCtrl+R", IDM_RECOMPILE
|
||||
MENUITEM "&Define Symbols\tCtrl+D", IDM_DEFINES
|
||||
MENUITEM "Test &Installer\tCtrl+T", IDM_TEST
|
||||
MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT
|
||||
MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR
|
||||
|
@ -111,6 +112,7 @@ BEGIN
|
|||
"A", IDM_SELECTALL, VIRTKEY, CONTROL, NOINVERT
|
||||
"B", IDM_BROWSESCR, VIRTKEY, CONTROL, NOINVERT
|
||||
"C", IDM_COPYSELECTED, VIRTKEY, CONTROL, NOINVERT
|
||||
"D", IDM_DEFINES, VIRTKEY, CONTROL, NOINVERT
|
||||
"E", IDM_EDITSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
||||
"F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT
|
||||
"L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
||||
|
@ -160,6 +162,24 @@ BEGIN
|
|||
CONTROL 115,IDC_STATIC,"Static",SS_BITMAP,0,0,20,20
|
||||
END
|
||||
|
||||
DLG_DEFINES DIALOGEX 0, 0, 250, 127
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Define Symbols"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&OK",IDOK,145,106,48,14
|
||||
PUSHBUTTON "&Cancel",IDCANCEL,195,106,48,14
|
||||
EDITTEXT IDC_SYMBOL,7,37,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE
|
||||
EDITTEXT IDC_VALUE,7,63,74,12,ES_AUTOHSCROLL,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON ">",IDRIGHT,91,41,14,14
|
||||
PUSHBUTTON "<",IDLEFT,91,56,14,14
|
||||
LTEXT "Symbol",IDC_STATIC,7,28,24,8
|
||||
LTEXT "Value (optional)",IDC_STATIC,7,54,50,8
|
||||
LISTBOX IDC_DEFINES,117,16,121,79,LBS_NOINTEGRALHEIGHT |
|
||||
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
GROUPBOX "Defined Symbols List",IDC_STATIC,112,7,131,93
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -173,6 +193,14 @@ BEGIN
|
|||
BEGIN
|
||||
BOTTOMMARGIN, 121
|
||||
END
|
||||
|
||||
DLG_DEFINES, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 243
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 120
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
|
|
@ -83,6 +83,7 @@ void DisableItems(HWND hwnd) {
|
|||
EnableMenuItem(g_sdata.menu,IDM_EXIT,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_LOADSCRIPT,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_DEFINES,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_COPY,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_GRAYED);
|
||||
|
@ -95,14 +96,15 @@ void DisableItems(HWND hwnd) {
|
|||
|
||||
void EnableItems(HWND hwnd) {
|
||||
if (g_sdata.output_exe && !g_sdata.retcode) {
|
||||
EnableWindow(GetDlgItem(hwnd,IDC_TEST),1);
|
||||
EnableMenuItem(g_sdata.menu,IDM_TEST,MF_ENABLED);
|
||||
EnableWindow(GetDlgItem(hwnd,IDC_TEST),1);
|
||||
EnableMenuItem(g_sdata.menu,IDM_TEST,MF_ENABLED);
|
||||
}
|
||||
EnableWindow(GetDlgItem(hwnd,IDC_CLOSE),1);
|
||||
EnableMenuItem(g_sdata.menu,IDM_SAVE,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_EXIT,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_LOADSCRIPT,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_DEFINES,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_COPY,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_COPYSELECTED,MF_ENABLED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_ENABLED);
|
||||
|
@ -120,6 +122,7 @@ void CompileNSISScript() {
|
|||
if (lstrlen(g_sdata.script)==0) {
|
||||
LogMessage(g_sdata.hwnd,USAGE);
|
||||
EnableMenuItem(g_sdata.menu,IDM_RECOMPILE,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_DEFINES,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_EDITSCRIPT,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_TEST,MF_GRAYED);
|
||||
EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,MF_GRAYED);
|
||||
|
@ -129,8 +132,10 @@ void CompileNSISScript() {
|
|||
}
|
||||
if (!g_sdata.appended) {
|
||||
if (s) GlobalFree(s);
|
||||
s = (char *)GlobalAlloc(GPTR, lstrlen(g_sdata.script)+sizeof(EXENAME)+sizeof(" /NOTIFYHWND ")+16);
|
||||
wsprintf(s,"%s /NOTIFYHWND %d %s",EXENAME,g_sdata.hwnd,g_sdata.script);
|
||||
char *defines = BuildDefines();
|
||||
s = (char *)GlobalAlloc(GPTR, lstrlen(g_sdata.script)+lstrlen(defines)+sizeof(EXENAME)+sizeof(" /NOTIFYHWND ")+16);
|
||||
wsprintf(s,"%s %s /NOTIFYHWND %d %s",EXENAME,defines,g_sdata.hwnd,g_sdata.script);
|
||||
GlobalFree(defines);
|
||||
if (g_sdata.script_alloced) GlobalFree(g_sdata.script);
|
||||
g_sdata.script_alloced = true;
|
||||
g_sdata.script = s;
|
||||
|
@ -174,6 +179,15 @@ void SaveWindowPos(HWND hwnd) {
|
|||
}
|
||||
|
||||
void ResetObjects() {
|
||||
if(g_sdata.defines) {
|
||||
int i=0;
|
||||
while(g_sdata.defines[i]) {
|
||||
GlobalFree(g_sdata.defines[i]);
|
||||
i++;
|
||||
}
|
||||
GlobalFree(g_sdata.defines);
|
||||
g_sdata.defines = NULL;
|
||||
}
|
||||
g_sdata.appended = FALSE;
|
||||
g_sdata.warnings = FALSE;
|
||||
g_sdata.retcode = -1;
|
||||
|
@ -267,7 +281,7 @@ LRESULT CALLBACK TipHookProc(int nCode, WPARAM wParam, LPARAM lParam) {
|
|||
switch (((MSG*)lParam)->message) {
|
||||
case WM_MOUSEMOVE:
|
||||
if (IsChild(g_tip.tip_p,((MSG*)lParam)->hwnd))
|
||||
SendMessage(g_tip.tip, TTM_RELAYEVENT, 0,lParam);
|
||||
SendMessage(g_tip.tip, TTM_RELAYEVENT, 0,lParam);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -282,5 +296,33 @@ void ShowDocs() {
|
|||
if(path!=NULL) *path=0;
|
||||
lstrcat(pathf,LOCALDOCS);
|
||||
if ((int)ShellExecute(g_sdata.hwnd,"open",pathf,NULL,NULL,SW_SHOWNORMAL)<=32)
|
||||
ShellExecute(g_sdata.hwnd,"open",DOCPATH,NULL,NULL,SW_SHOWNORMAL);
|
||||
ShellExecute(g_sdata.hwnd,"open",DOCPATH,NULL,NULL,SW_SHOWNORMAL);
|
||||
}
|
||||
|
||||
char* BuildDefines()
|
||||
{
|
||||
char *buf = NULL;
|
||||
|
||||
if(g_sdata.defines) {
|
||||
int i=0;
|
||||
while(g_sdata.defines[i]) {
|
||||
if(buf) {
|
||||
char *buf3 = (char *)GlobalAlloc(GPTR,(lstrlen(buf)+lstrlen(g_sdata.defines[i])+6)*sizeof(char));
|
||||
wsprintf(buf3,"%s \"/D%s\"",buf,g_sdata.defines[i]);
|
||||
GlobalFree(buf);
|
||||
buf = buf3;
|
||||
}
|
||||
else {
|
||||
buf = (char *)GlobalAlloc(GPTR,(lstrlen(g_sdata.defines[i])+5)*sizeof(char));
|
||||
wsprintf(buf,"\"/D%s\"",g_sdata.defines[i]);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
buf = (char *)GlobalAlloc(GPTR, sizeof(char));
|
||||
lstrcpy(buf,"");
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue