rem: sprintf(RErrorString, "could not open PPM file \"%s\"", file_name);
add: RErrorCode = RERR_OPEN;
context: RLoadPPM(RContext *context, char *file_name, int index){    FILE *file;    RImage *image = NULL;    char buffer[256];    int w, h, m;    int type;#define GETL() if (!fgets(buffer, 255, file)) goto short_file        RErrorString[0] = 0;    file = fopen(file_name, "r");    if (!file) {	sprintf(RErrorString, "could not open PPM file \"%s\"", file_name);	return NULL;    }        /* get signature */    GETL();    /* only accept raw pixmaps or graymaps */    if (buffer[0] != 'P' || (buffer[1] != '5' && buffer[1] != '6')) {	sprintf(RErrorString, "unknown PPM format in \"%s\"", file_name);	fclose(file);	return NULL;    }        type = buffer[1];        /* skip comments */    while (1) {	GETL();		if (buffer[0]!='#')	    break;    }        /* get size */    if (sscanf(buffer, "%i %i", &w, &h)!=2)	goto bad_file;        GETL();    if (sscanf(buffer, "%i", &m)!=1 || m < 1)	goto bad_file;    if (type=='5')	image = load_graymap(file_name, file, w, h, m, type=='5');    else if (type=='6')	image = load_pixmap(file_name, file, w, h, m, type=='6');    fclose(file);    return image;      bad_file:    sprintf(RErrorString, "PPM file \"%s\" seems to be corrupted", file_name);    fclose(file);    return NULL;      short_file:    sprintf(RErrorString, "PPM file \"%s\" seems to be truncated", file_name);    fclose(file);    return NULL;}