diff options
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 |