The R Project SVN R

Rev

Rev 19066 | Rev 32888 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 19066 Rev 22229
Line 173... Line 173...
173
 * Add 20 to make application "invisible"
173
 * Add 20 to make application "invisible"
174
*/
174
*/
175
 
175
 
176
#include "run.h"
176
#include "run.h"
177
 
177
 
-
 
178
#define INTERN_BUFSIZE 8096
178
SEXP do_system(SEXP call, SEXP op, SEXP args, SEXP rho)
179
SEXP do_system(SEXP call, SEXP op, SEXP args, SEXP rho)
179
{
180
{
180
    rpipe *fp;
181
    rpipe *fp;
181
    char  buf[120];
182
    char  buf[INTERN_BUFSIZE];
182
    int   vis = 0, flag = 2, i = 0, j, ll;
183
    int   vis = 0, flag = 2, i = 0, j, ll;
183
    SEXP  tlist = R_NilValue, tchar, rval;
184
    SEXP  tlist = R_NilValue, tchar, rval;
184
 
185
 
185
    checkArity(op, args);
186
    checkArity(op, args);
186
    if (!isString(CAR(args)))
187
    if (!isString(CAR(args)))
Line 219... Line 220...
219
	    warning(runerror());
220
	    warning(runerror());
220
	    ll = NOLAUNCH;
221
	    ll = NOLAUNCH;
221
	} else {
222
	} else {
222
	    if (flag == 3)
223
	    if (flag == 3)
223
		PROTECT(tlist);
224
		PROTECT(tlist);
224
	    for (i = 0; rpipeGets(fp, buf, 120); i++) {
225
	    for (i = 0; rpipeGets(fp, buf, INTERN_BUFSIZE); i++) {
225
		if (flag == 3) {
226
		if (flag == 3) {
226
		    ll = strlen(buf) - 1;
227
		    ll = strlen(buf) - 1;
227
		    if ((ll >= 0) && (buf[ll] == '\n'))
228
		    if ((ll >= 0) && (buf[ll] == '\n'))
228
			buf[ll] = '\0';
229
			buf[ll] = '\0';
229
		    tchar = mkChar(buf);
230
		    tchar = mkChar(buf);