Changeset 239
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/con_os2.cpp ¶
r201 r239 1479 1479 } 1480 1480 1481 int GUI::RunProgram(int mode, char *Command, bool PM)1481 int GUI::RunProgram(int mode, char *Command, char *CommandLine, bool PM) 1482 1482 { 1483 1483 int rc, W, H, W1, H1; -
TabularUnified trunk/src/e_os2.cpp ¶
r115 r239 15 15 { 16 16 char file[MAXPATH] = ""; 17 char cmd[1024]; 17 char cmd[MAXPATH] = {0}; 18 char cmdline[1024] = {0}; 18 19 int rc; 19 20 … … 33 34 word = wordAsk; 34 35 } 35 sprintf(cmd, "%s %s %s", HelpCommand, file, word); 36 sprintf(cmd, "%s", HelpCommand); 37 sprintf(cmdline, "%s %s", file, word); 36 38 #ifdef OS2 37 rc = gui->RunProgram(RUN_WAIT, cmd, 1);39 rc = gui->RunProgram(RUN_WAIT, cmd, cmdline, 1); 38 40 #else 39 41 rc = system(cmd); -
TabularUnified trunk/src/e_unix.cpp ¶
r201 r239 23 23 { 24 24 char options[128] = ""; 25 char command[1024] ;25 char command[1024]= (0); 26 26 char file[MAXPATH]; 27 27 -
TabularUnified trunk/src/egui.cpp ¶
r206 r239 604 604 if (view->GetStr("Run", sizeof(Cmd), Cmd, HIST_COMPILE) == 0) 605 605 return 0; 606 gui->RunProgram(RUN_WAIT, Cmd, 0);606 gui->RunProgram(RUN_WAIT, Cmd, NULL, 0); 607 607 return 1; 608 608 } … … 618 618 if (view->GetStr("Run", sizeof(Cmd), Cmd, HIST_COMPILE) == 0) 619 619 return 0; 620 gui->RunProgram(RUN_ASYNC, Cmd, 0);620 gui->RunProgram(RUN_ASYNC, Cmd, NULL, 0); 621 621 return 1; 622 622 } -
TabularUnified trunk/src/g_pm.cpp ¶
r227 r239 55 55 #include "exceptq.h" 56 56 57 //#define __PMPRINTF__ 58 //#include "PMPRINTF.H" 57 #if 0 58 #define __PMPRINTF__ 59 #include "PMPRINTF.H" 60 #endif 59 61 60 62 #define PM_STACK_SIZE (96 * 1024) … … 4102 4104 } 4103 4105 4104 int GUI::RunProgram(int mode, char *Command, bool PM)4106 int GUI::RunProgram(int mode, char *Command, char *CommandLine, bool PM) 4105 4107 { 4106 4108 char FailBuf[256]; 4107 4109 char *Args; 4108 4110 char *Prog; 4109 int rc ;4111 int rc = 0; 4110 4112 PID pid; 4111 4113 ULONG sid; 4112 4114 int ArgsSize; 4113 4114 Prog = getenv("COMSPEC"); 4115 4116 ArgsSize = 3 + strlen(Command) + 1; 4117 4115 int ProgSize; 4116 4117 if (PM) { 4118 ProgSize = strlen(Command) + 1; 4119 Prog = (char *)malloc(ProgSize); 4120 if (Prog == NULL) { 4121 return -1; 4122 } 4123 memset(Prog, 0, ProgSize); 4124 if (*Command != 0) 4125 strlcpy(Prog, Command, ProgSize ); 4126 ArgsSize = strlen(CommandLine) + 1; 4127 } 4128 else { 4129 Prog = getenv("COMSPEC"); 4130 ArgsSize = 3 + strlen(Command) + 1; 4131 } 4118 4132 Args = (char *)malloc(ArgsSize); 4119 4133 if (Args == NULL) { 4120 4134 return -1; 4121 4135 } 4122 4123 if (*Command != 0) { 4124 strlcpy(Args, "/c ", ArgsSize); 4125 strlcat(Args, Command, ArgsSize); 4136 memset(Args, 0, ArgsSize); 4137 if (PM) { 4138 if (*CommandLine != 0) 4139 strlcat(Args, CommandLine, ArgsSize); 4140 else { 4141 Args[0] = 0; 4142 } 4126 4143 } 4127 4144 else { 4128 Args[0] = 0; 4129 } 4130 4145 if (*Command != 0) { 4146 strlcpy(Args, "/c ", ArgsSize); 4147 strlcat(Args, Command, ArgsSize); 4148 } 4149 else { 4150 Args[0] = 0; 4151 } 4152 } 4131 4153 { 4132 4154 STARTDATA sd; … … 4136 4158 sd.Related = SSF_RELATED_INDEPENDENT; 4137 4159 sd.FgBg = SSF_FGBG_FORE; 4138 sd.TraceOpt = SSF_TRACEOPT_NONE;4160 sd.TraceOpt = /*SSF_TRACEOPT_TRACEALL;*/ SSF_TRACEOPT_NONE; 4139 4161 sd.PgmTitle = (Command && Command[0] != 0) ? Command : 0; 4140 4162 sd.PgmName = Prog; … … 4146 4168 sd.IconFile = 0; 4147 4169 sd.PgmHandle = 0; 4148 sd.PgmControl = SSF_CONTROL_VISIBLE; 4170 sd.PgmControl = SSF_CONTROL_VISIBLE; // | ((Command && Command[0] != 0) ? SSF_CONTROL_NOAUTOCLOSE : 0); 4149 4171 sd.ObjectBuffer = FailBuf; 4150 4172 sd.ObjectBuffLen = sizeof(FailBuf); 4151 rc = DosStartSession(&sd, &sid, &pid); 4152 } 4153 4173 rc = DosStartSession(&sd, &sid, &pid); 4174 } 4175 if (PM) 4176 free(Prog); 4154 4177 free(Args); 4155 4178 -
TabularUnified trunk/src/gui.h ¶
r115 r239 137 137 void StopLoop(); 138 138 139 int RunProgram(int mode, char *Command, bool PM);139 int RunProgram(int mode, char *Command, char *CommandLine, bool PM); 140 140 141 141 int OpenPipe(char *Command, EModel *notify);
Note:
See TracChangeset
for help on using the changeset viewer.