version 1.5, 2013/11/27 04:23:07 |
version 1.8, 2013/11/28 18:53:32 |
|
|
/* $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/cmdasir.c,v 1.4 2013/11/05 23:59:20 takayama Exp $ */ |
/* $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/cmdasir.c,v 1.7 2013/11/27 15:47:18 ohara Exp $ */ |
// cl test.c user32.lib |
// cl test.c user32.lib |
|
|
#include <windows.h> |
#include <windows.h> |
|
|
#include <string.h> |
#include <string.h> |
#include <io.h> |
#include <io.h> |
#include <process.h> |
#include <process.h> |
|
#include <fcntl.h> |
|
|
char *winname2uxname(char winname[]); |
char *winname2uxname(char winname[]); |
FILE *findAsirHandler(); |
FILE *findAsirHandler(); |
Line 15 int loadFile(HWND hnd, char *uname); |
|
Line 16 int loadFile(HWND hnd, char *uname); |
|
int terminateAsir(HWND hnd); |
int terminateAsir(HWND hnd); |
int hasTemp(char *s); |
int hasTemp(char *s); |
int pasteFile(HWND hnd, char *uname); |
int pasteFile(HWND hnd, char *uname); |
|
int containEnd(char s[]); |
|
int abortAsir(HWND hnd); |
|
int main(int argc, char *argv[]); |
|
|
|
FILE *open_stdio(DWORD type) { |
|
HANDLE hnd; |
|
int fd; |
|
if((hnd = GetStdHandle(type)) != INVALID_HANDLE_VALUE && (fd = _open_osfhandle((intptr_t)hnd, _O_TEXT)) >= 0) { |
|
return _fdopen(fd, "w"); |
|
} |
|
return NULL; |
|
} |
|
|
|
int WINAPI WinMain(HINSTANCE hins, HINSTANCE prev, LPSTR arg, int show) { |
|
FILE *fp; |
|
#if (_WIN32_WINNT > 0x0500) |
|
if(AttachConsole(ATTACH_PARENT_PROCESS)) { |
|
if(fp = open_stdio(STD_OUTPUT_HANDLE)) { |
|
*stdout = *fp; |
|
setvbuf(stdout, NULL, _IONBF, 0); |
|
} |
|
} |
|
#endif |
|
main(__argc, __argv); |
|
return 0; |
|
} |
|
|
int main(int argc, char *argv[]) |
int main(int argc, char *argv[]) |
{ |
{ |
HWND hnd; |
HWND hnd; |
Line 31 int main(int argc, char *argv[]) |
|
Line 58 int main(int argc, char *argv[]) |
|
int abort=0; |
int abort=0; |
|
|
/* MessageBox(NULL,TEXT("test"),TEXT("Error in cmdasir.c"),MB_OK); */ |
/* MessageBox(NULL,TEXT("test"),TEXT("Error in cmdasir.c"),MB_OK); */ |
sprintf(snameWin,"%s\\cmdasir-%d.txt",getenv("TEMP"),getpid()); |
sprintf(snameWin,"%s\\cmdasir-%d.txt",getenv("TEMP"),_getpid()); |
snameUx = winname2uxname(snameWin); |
snameUx = winname2uxname(snameWin); |
if ((argc > 1) && (strcmp(argv[1],"--delete-tmp")==0)) { |
if ((argc > 1) && (strcmp(argv[1],"--delete-tmp")==0)) { |
sprintf(cmd,"del %s\\cmdasir-*",getenv("TEMP")); |
sprintf(cmd,"del %s\\cmdasir-*",getenv("TEMP")); |
Line 41 int main(int argc, char *argv[]) |
|
Line 68 int main(int argc, char *argv[]) |
|
|
|
fp = findAsirHandler(); |
fp = findAsirHandler(); |
if (fp == NULL) { |
if (fp == NULL) { |
fprintf(stderr,"handler file is not found.\n"); return(-1); |
printf("handler file is not found.\n"); return(-1); |
} |
} |
fscanf(fp,"%d",&hnd); |
fscanf(fp,"%d",&hnd); |
fclose(fp); |
fclose(fp); |
Line 72 int main(int argc, char *argv[]) |
|
Line 99 int main(int argc, char *argv[]) |
|
uname=snameUx; |
uname=snameUx; |
} |
} |
printf("filename=%s\n",argv[ii]); |
printf("filename=%s\n",argv[ii]); |
if(access(argv[ii],0)==0) { |
if(_access(argv[ii],0)==0) { |
if (paste_contents) return pasteFile(hnd, (uname != NULL)? uname: winname2uxname(argv[ii])); |
if (paste_contents) return pasteFile(hnd, (uname != NULL)? uname: winname2uxname(argv[ii])); |
else return loadFile(hnd, (uname != NULL)? uname: winname2uxname(argv[ii])); |
else return loadFile(hnd, (uname != NULL)? uname: winname2uxname(argv[ii])); |
} |
} |
Line 240 int containEnd(char s[]) { |
|
Line 267 int containEnd(char s[]) { |
|
return(0); |
return(0); |
} |
} |
|
|
int abortAsir(int hnd) { |
int abortAsir(HWND hnd) { |
int c; |
int c; |
int result; |
int result; |
result=MessageBox(NULL,TEXT("Do you abort this computation?"),TEXT("Abort"),MB_OKCANCEL); |
result=MessageBox(NULL,TEXT("Do you abort this computation?"),TEXT("Abort"),MB_OKCANCEL); |