rem: } 
context: function read(filename){	if (arguments.length == 0) {		ReadDialog();		return;	}	if (! arguments.length) {		perror("read filename is missing");		return;	}	var fichier = new File(filename,"read"); 	if (fichier.isopen) {		RedrawEnable = 0;		AllowEdit = 0;		var tmpLine = LectureNextLigne(fichier);		if (tmpLine != "ej.function format") {			perror("can't read this file format");			return;		}						// Lecture de la premire ligne du fichier		tmpLine = LectureNextLigne(fichier);		tmpLine = tmpLine.split(" ");		var idx = 0;		var c, i;		var OldNp;				var FunctionVersionCheck = tmpLine[idx++];	// stocke le numro de version		var OldNbCourbes = NbCourbes;		NbCourbes = parseFloat(tmpLine[idx++]);				while (OldNbCourbes < NbCourbes) {		// cration des courbes si ncessaire			fctns[OldNbCourbes] = new Courbe();			MyThings2Zoom(fctns[OldNbCourbes]);			pixel2machin(fctns[OldNbCourbes++]);		}		while (OldNbCourbes > NbCourbes) {		// suppression des courbes si ncessaire			fctns.splice(--OldNbCourbes, 1);			if (current >= NbCourbes)				current = 0;		}				for (c = 0; c < NbCourbes; c++) {			OldNp = fctns[c].np;			fctns[c].np = parseFloat(tmpLine[idx++]);			// cration ou suppression de points			while (OldNp < fctns[c].np) { fctns[c]["pa"][OldNp++] = new Point(); }			while (OldNp > fctns[c].np) { fctns[c]["pa"].splice(--OldNp, 1); }		}			c = 0;		while ( fichier.position < fichier.eof ) {			tmpLine = LectureNextLigne(fichier);			if (tmpLine == "")				break;			tmpLine = tmpLine.split(" ");			idx = 0;			var p;			var NeedUpdate = 0;			fctns[c].name = tmpLine[idx++];						// depuis la version 1.52 domaine contient deux limites.			if (FunctionVersionCheck == 1 )				fctns[c].domain[0] = 0;			else				fctns[c].domain[0] = parseFloat(tmpLine[idx++]);			fctns[c].domain[1] = parseFloat(tmpLine[idx++]);						fctns[c].range[0] = parseFloat(tmpLine[idx++]);			fctns[c].range[1] = parseFloat(tmpLine[idx++]);			MyThings2Zoom(fctns[c]);						fctns[c].GridStep = parseFloat(tmpLine[idx++]);			fctns[c].display = parseFloat(tmpLine[idx++]);			idx = 0;			tmpLine = LectureNextLigne(fichier);			tmpLine = tmpLine.split(" ");			for (j=0; j < 3; j++) { fctns[c].brgb[j] = tmpLine[idx++] / 255; }			for (j=0; j < 3; j++) { fctns[c].frgb[j] = tmpLine[idx++] / 255; }			for (j=0; j < 3; j++) { fctns[c].rgb2[j] = tmpLine[idx++] / 255; }			for (j=0; j < 3; j++) { fctns[c].rgb3[j] = tmpLine[idx++] / 255; }			for (j=0; j < 3; j++) { fctns[c].rgb4[j] = tmpLine[idx++] / 255; }			for (j=0; j < 3; j++) { fctns[c].rgb5[j] = tmpLine[idx++] / 255; }			for (p = 0; p < fctns[c].np; p++) {				idx = 0;				tmpLine = LectureNextLigne(fichier);				tmpLine = tmpLine.split(" ");				if (tmpLine.length != 3) {					perror("bad file contents");					break;				}				fctns[c]["pa"][p].valx = parseFloat(tmpLine[idx++]);				fctns[c]["pa"][p].valy = parseFloat(tmpLine[idx++]);				fctns[c]["pa"][p].sustain = tmpLine[idx] & 2 ? 1 : 0; // pas d'incrmentation				fctns[c]["pa"][p].fix = tmpLine[idx++] & 1;	// elle est faite ici.			}			c++;		}		AllPixel2Machin();		ValRecalculate();		RedrawEnable = 1;		AllowEdit = 1;		PattrInterpError.flag = 0;		UpdateDisplay();		outlet(DUMPOUT, "read", filename, 1);		fichier.close();	} else {		perror("could not read file: ", filename, "... don't ask why :-)\n");		outlet(DUMPOUT, "read", filename, -1);	}		if (OpendialogPrepend) {			DeleteReadThings();	}}
meta: 6421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/6421/88df6a0b8b4a2372a89baf38cb59b5676710537b/ej.function.js/buggy/ejies-jsui/ej.function.js