The R Project SVN R

Rev

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

Rev 46864 Rev 47481
Line 71... Line 71...
71
	context[i-1] = '\0';
71
	context[i-1] = '\0';
72
	SET_STRING_ELT(ans, nread-1, mkChar(context + last));
72
	SET_STRING_ELT(ans, nread-1, mkChar(context + last));
73
	last = i;
73
	last = i;
74
    }
74
    }
75
    /* get rid of empty line after last newline */
75
    /* get rid of empty line after last newline */
76
    if (nread && !length(STRING_ELT(ans, nread-1))) nread--;
76
    if (nread && !length(STRING_ELT(ans, nread-1))) {
-
 
77
    	nread--;
-
 
78
    	R_ParseContextLine--;
-
 
79
    }
77
    PROTECT(ans2 = allocVector(STRSXP, nread));
80
    PROTECT(ans2 = allocVector(STRSXP, nread));
78
    for(i = 0; i < nread; i++)
81
    for(i = 0; i < nread; i++)
79
	SET_STRING_ELT(ans2, i, STRING_ELT(ans, i));
82
	SET_STRING_ELT(ans2, i, STRING_ELT(ans, i));
80
    UNPROTECT(2);
83
    UNPROTECT(2);
81
    return ans2;
84
    return ans2;
Line 98... Line 101...
98
    SEXP context = getParseContext();
101
    SEXP context = getParseContext();
99
    int len = length(context);
102
    int len = length(context);
100
    char filename[128];
103
    char filename[128];
101
    if (linenum) {
104
    if (linenum) {
102
	getParseFilename(filename, sizeof(filename)-2);
105
	getParseFilename(filename, sizeof(filename)-2);
103
	if (strlen(filename)) strcpy(filename + strlen(filename), ": ");
106
	if (strlen(filename)) strcpy(filename + strlen(filename), ":");
104
 
107
 
105
	switch (len) {
108
	switch (len) {
106
	case 0:
109
	case 0:
107
	    error(_("%s%s on line %d"),
110
	    error(_("%s%d:%d: %s"),
108
		  filename, R_ParseErrorMsg, linenum);
111
		  filename, linenum, R_ParseErrorCol, R_ParseErrorMsg);
109
	    break;
112
	    break;
110
	case 1:
113
	case 1:
111
	    error(_("%s%s at\n%d: %s"),
114
	    error(_("%s%d:%d: %s\n%d: %s"),
112
		  filename, R_ParseErrorMsg, linenum,
115
		  filename, linenum, R_ParseErrorCol, R_ParseErrorMsg,
113
		  CHAR(STRING_ELT(context, 0)));
116
		  R_ParseContextLine, CHAR(STRING_ELT(context, 0)));
114
	    break;
117
	    break;
115
	default:
118
	default:
116
	    error(_("%s%s at\n%d: %s\n%d: %s"),
119
	    error(_("%s%d:%d: %s\n%d: %s\n%d: %s"),
117
		  filename, R_ParseErrorMsg, linenum-1,
120
		  filename, linenum, R_ParseErrorCol, R_ParseErrorMsg,
118
		  CHAR(STRING_ELT(context, len-2)),
121
		  R_ParseContextLine-1, CHAR(STRING_ELT(context, len-2)),
119
		      linenum, CHAR(STRING_ELT(context, len-1)));
122
		  R_ParseContextLine, CHAR(STRING_ELT(context, len-1)));
120
	    break;
123
	    break;
121
	}
124
	}
122
    } else {
125
    } else {
123
	switch (len) {
126
	switch (len) {
124
	case 0:
127
	case 0: