diff options
author | marha <marha@users.sourceforge.net> | 2009-11-05 17:54:55 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-11-05 17:54:55 +0000 |
commit | 17cd2280a71d7ae609961734b0aa750919147529 (patch) | |
tree | cffbeeecaafa816fefab27d75b85d88bcd255c93 /libwinmain | |
parent | f5e3ac8167abd20db9f19c8f8794d9c68596e284 (diff) | |
download | vcxsrv-17cd2280a71d7ae609961734b0aa750919147529.tar.gz vcxsrv-17cd2280a71d7ae609961734b0aa750919147529.tar.bz2 vcxsrv-17cd2280a71d7ae609961734b0aa750919147529.zip |
Move WinMain to seperate library.
Diffstat (limited to 'libwinmain')
-rw-r--r-- | libwinmain/makefile | 3 | ||||
-rw-r--r-- | libwinmain/winmain.c | 43 |
2 files changed, 46 insertions, 0 deletions
diff --git a/libwinmain/makefile b/libwinmain/makefile new file mode 100644 index 000000000..80292d3d3 --- /dev/null +++ b/libwinmain/makefile @@ -0,0 +1,3 @@ +LIBRARY = libwinmain + +CSRCS = winmain.c diff --git a/libwinmain/winmain.c b/libwinmain/winmain.c new file mode 100644 index 000000000..c4a8bf815 --- /dev/null +++ b/libwinmain/winmain.c @@ -0,0 +1,43 @@ +#include <windows.h> + +int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) +{ + int argc=1; + char ProgramName[255]; + #define MAXNRARGS 100 + char *argv[MAXNRARGS]={"plink"}; + char *pTmp=lpCmdLine; + + GetModuleFileName(NULL,ProgramName,255); + argv[0]=ProgramName; + while (*pTmp && argc<MAXNRARGS-1) + { + char *pEnd; + if (*pTmp=='"') + { + pEnd=strchr(pTmp+1,'"'); + } + else if (*pTmp!=' ') + { + pEnd=strchr(pTmp,' '); + } + else + { + pTmp++; + continue; + } + if (pEnd) + { + *pEnd=0; + argv[argc++]=pTmp; + pTmp=pEnd+1; + } + else + { + argv[argc++]=pTmp; + break; + } + } + + return main(argc,argv); +}
\ No newline at end of file |